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 Neues Mitglied

    Registriert seit:
    8. März 2018
    Beiträge:
    3
    Danke erhalten:
    0
    Danke vergeben:
    1
    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:
    499
    Danke erhalten:
    50
    Danke vergeben:
    69
    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 Neues Mitglied

    Registriert seit:
    8. März 2018
    Beiträge:
    3
    Danke erhalten:
    0
    Danke vergeben:
    1
    Das hat geholfen. Vielen Dank!
     
  4. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.282
    Danke erhalten:
    974
    Danke vergeben:
    260
    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:
    499
    Danke erhalten:
    50
    Danke vergeben:
    69
    Woohooo .. Super! *thumbsup*
     
  6. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    499
    Danke erhalten:
    50
    Danke vergeben:
    69
    Was ist daraus geworden?
     
  7. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.282
    Danke erhalten:
    974
    Danke vergeben:
    260
    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:
    499
    Danke erhalten:
    50
    Danke vergeben:
    69
    #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:
    299
    Danke erhalten:
    30
    Danke vergeben:
    34