gelöst Eigenes JS auf jeder Seite des Admins ausführen

Thema wurde von adi_gerd, 12. Juli 2018 erstellt.

  1. adi_gerd
    adi_gerd Mitglied
    Registriert seit:
    8. März 2018
    Beiträge:
    6
    Danke erhalten:
    0
    Danke vergeben:
    3
    Hallo,

    ich möchte eine eigene JS-Datei im Head-Bereich aller Admin-Seiten einbinden. Mein Ansatz war (ist) nun einen Extender in AdminApplicationTopExtenderComponent anzulegen. Dieser wird auch soweit ausgeführt. Die Frage ist nun, wie ich die JS-Datei nun aber "richtig" einbinde.

    Die von mir versuchten Möglichkeiten:

    - über $this->html_output_array['xxx] = ...; wird nicht ausgegeben
    - über $this->v_output_buffer['xxx] = ...; wird ebenso nicht ausgegeben
    - direkt ausgeben (z.B. per Echo): Funktioniert zwar ist aber sicherlich nicht die richtige Lösung und wirft eine "header already sent" Warnung.

    Was übersehe ich hier? Oder wie ginge es richtig? Für Hilfe wäre ich sehr dankbar.

    Gruß, Christian
     
  2. MJ
    MJ Erfahrener Benutzer
    Registriert seit:
    28. April 2011
    Beiträge:
    546
    Danke erhalten:
    56
    Danke vergeben:
    102
    Du könntest die AdminMenuContentView überladen. Dann hättest du es auf allen Seiten und wärst nicht zu früh wie bei der AdminApplicationTopExtenderComponent.
     
  3. adi_gerd
    adi_gerd Mitglied
    Registriert seit:
    8. März 2018
    Beiträge:
    6
    Danke erhalten:
    0
    Danke vergeben:
    3
    Das hat geholfen. Vielen Dank!
     
  4. Anonymous
    Anonymous Administrator
    Mitarbeiter
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    Hi,

    wir haben in der Entwicklung beschlossen, dass es einen
    AdminHeaderExtender geben wird, der es dann möglich macht im <head> weitere Dateien wie CSS und JavaScripte auf allen Admin Seiten zu laden.

    Dies wird dann mit der kommenden Shopversion zur Verfügung stehen.
     
  5. MJ
    MJ Erfahrener Benutzer
    Registriert seit:
    28. April 2011
    Beiträge:
    546
    Danke erhalten:
    56
    Danke vergeben:
    102
    Woohooo .. Super! *thumbsup*
     
  6. MJ
    MJ Erfahrener Benutzer
    Registriert seit:
    28. April 2011
    Beiträge:
    546
    Danke erhalten:
    56
    Danke vergeben:
    102
    Was ist daraus geworden?
     
  7. Anonymous
    Anonymous Administrator
    Mitarbeiter
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    Den AdminHeaderExternder gibt es und kann ganz normal wie alle anderen Klassen auch überladen werden

    Lege dazu eine Datei im Ordner /GXModules/meineFirma/meinModul/Admin/Overloads/
    AdminHeaderExtenderComponent/ mit dem Namen "Mein
    AdminHeaderExtender.inc.php" und folgendem Inhalt an:

    PHP:
    class MeinAdminHeaderExtender extends MeinAdminHeaderExtender_parent
    {
    function 
    proceed()
    {
    $html "Mein HTML oder CSS oder JavaScript Tag";
    $this->v_output_buffer[] = $html;
    }
    }
     
  8. MJ
    MJ Erfahrener Benutzer
    Registriert seit:
    28. April 2011
    Beiträge:
    546
    Danke erhalten:
    56
    Danke vergeben:
    102
    #8 MJ, 22. Januar 2020
    Zuletzt bearbeitet: 22. Januar 2020
    Hallo Till (und alle anderen)

    Dankeschön, ich hab noch zwei Fragen dazu

    1. Muss da nicht auch ein parent:: proceed(); mit rein?
    2. Wenn man im Shop eine css reinladen möchte - muss der Ordner dann Styles oder Css heißen?

    Also
    GXModules/Modulhersteller/Modulname/Shop/Templates/Honeygrid/Styles/ oder
    GXModules/Modulhersteller/Modulname/Shop/Templates/Honeygrid/Css/

    Und noch eine dritte Frage
    3. Ist GXUserComponents jetzt deprecated und man soll stattdessen nur noch GXModules verwenden?

    Vielen Dank
     
  9. ff-webdesigner
    ff-webdesigner Erfahrener Benutzer
    Registriert seit:
    22. Januar 2014
    Beiträge:
    548
    Danke erhalten:
    53
    Danke vergeben:
    60
  10. ff-webdesigner
    ff-webdesigner Erfahrener Benutzer
    Registriert seit:
    22. Januar 2014
    Beiträge:
    548
    Danke erhalten:
    53
    Danke vergeben:
    60
    das funktioniert immernoch ganz hervorragend auf admin unterseiten wie z.b.
    /admin/categories.php?page=1&cPath=0&pID=5&action=new_product
    auf der admin startseite nicht. gibts da einen anderen trick/code?
    mein kunden möchte gambio news komplett raus haben.
    und die start.php kann man ja nicht updatesicher anpassen, oder?
     
  11. barbara
    barbara G-WARD 2014-2020
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    Ich weiß nicht ob man die Startseite überladen kann (die admin/start.php dürfte aber die falsche Adresse sein), aber wenn das Ganze von Gambio weg ist, bleibt nur die Statistik.
    Da könnte man vielleicht auch einfach den Admin-Button auf die Seite /statistics/overview lenken und die Startseite so umgehen.
     
  12. ff-webdesigner
    ff-webdesigner Erfahrener Benutzer
    Registriert seit:
    22. Januar 2014
    Beiträge:
    548
    Danke erhalten:
    53
    Danke vergeben:
    60
  13. ff-webdesigner
    ff-webdesigner Erfahrener Benutzer
    Registriert seit:
    22. Januar 2014
    Beiträge:
    548
    Danke erhalten:
    53
    Danke vergeben:
    60
    nochwas: mein overload baut js und css super ein in alle seiten wie z.b. /admin/categories.php?cPath=0&action=new_product
    aber nicht in /admin/admin.php?do=OrdersOverview
    warum?