NN - Plugin um den Head aufzuräumen für Joomla 3.x - Tester gesucht

  • Hallo zusammen,


    Joomla oder irgendeine 3rd Party Extension laden gerne mal CSS oder JS Dateien in den Head, welche man aber nicht haben will.


    Mit dem Plugin könnt ihr über Komma getrennt den Dateipfad angeben und das File wird nicht mehr geladen.


    Ein anderes Problem ist das ab und zu manche Scripte geladen werden die jQuery oder ähnliches benötigen.
    Binden man jQuery über das Template ein, aber das 3rd Party Script wird davor eingebunden kommt es zu Fehlern.


    Mit dem Plugin könnt ihr noch angeben welche JS-Datei immer als erstes geladen werden soll.


    Wer Zeit und Lust hat kann gerne das Plugin testen und mir Feedback geben. beer


    Download:
    https://github.com/nn-medienag…stem_nncleanhead/releases


    EDIT: ich hab mal ein Video aufgenommen zum Thema

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Äh, falscher Thread, aber nicht ganz unpassend, hoffe ich.


    Ja, also es wäre toll, wenn JUI in Joomla dafür ein Interface hätte, um die Reihenfolge zu bestimmen und vor allem, was nun das einzige auserwählte jQuery sein soll.


    Das Plugin JCH wurde überarbeitet und bietet schon recht viel, ist nur für den Laien nicht handlebar.


    Ich stelle jQuery im Template nach oben.


  • Hi Addi,


    hatte ich vorher auch in meinem Kicktemp. Aber das Template wird von der Reihenfolge leider ab und zu übergangen. Deswegen sollte man es per Plugin lösen, welches direkt vor dem erstellen des Heads zum Einsatz kommt.


    Aber in 95% der Fälle reicht es, wenn man es über das Template erledigt.


    EDIT: Ach so warum ein Plugin auch besser ist, weil man nicht an Quellcode vom Template dran muss ;) und es für den Laien bedienbar ist.

  • Aber das Template wird von der Reihenfolge leider ab und zu übergangen. Deswegen sollte man es per Plugin lösen, welches direkt vor dem erstellen des Heads zum Einsatz kommt.


    In welchen Fällen? Wird denn das Template nicht nach onBeforeCompileHead gerendert?


    Als das eigentliche Problem sehe ich inline CSS und nicht über das Joomla API eingebundene Scripte und Styles an. Schaut man in JCH rein, so findet dieses Plugin daher auch nicht wirklich alles. Im Grund müsste man ein Reperatur-Plugin durchs System jagen, was die Scripte und Styles aus den Modulen und der Komponente extrahiert und konform einbindet.

  • Als das eigentliche Problem sehe ich inline CSS und nicht über das Joomla API eingebundene Scripte und Styles an


    Da stimme ich dir vollkommen zu.


    Das Template wird immer nach onBeforeCompileHead gerendert. Ich hatte einmal einen Fall wo irgendein Script drin war, welches nicht von meinem Template ausgeschlossen wurde, deswegen hatte ich von Robert das Pluign im Einsatz gehabt.


    Nun hab ich das ganze Geraffel aus meinem Template geschmissen und sauber per Plugin gelöst und für Jeden wiederverwendbar.

  • Zitat

    Mit dem Plugin könnt ihr über Komma getrennt den Dateipfad angeben und das File wird nicht mehr geladen.


    Schön, dass auch ohne kompletten Dateipfad geht, also einfach bootstrap.min.js oder (wohl besser) /bootstrap.min.js und es wird auch /templates/protostar/js/jui/bootstrap.min.js entfernt...


    Ich fänd's angenehmer, wenn man die Eingaben zeilenweise statt kommasepariert machen könnte. Schon beim Testen hatte ich extreme Schwierigkeiten...

  • Ich fänd's angenehmer, wenn man die Eingaben zeilenweise statt kommasepariert machen könnte.


    Du kannst kannst einfach folgende in Zeile 34 in der nncleanhead.php ersetzen
    https://github.com/nn-medienag…aster/nncleanhead.php#L34

    Code
    $filesjs = explode(',', $fnjs);


    Code
    $filesjs = explode('\n', str_replace('\r', '', $fnjs));


    Dann kannst du es mit einer neuen Zeile trennen.

  • Hallo zusammen,


    ich frage mich um ehrlich zu sein warum das ganze nicht über Joomla selbst z. B. aus dem backend zu lösen ist?! Ich bin gestern Abend zufällig auf das Plugin gestoßen da ich selbst nach einer Lösung gesucht habe die Ausgabe im "head" zu ändern.


    Ich nutze für mein Projekt das Helix 3 Framework und hab versucht es über das Template zu lösen. Leider ohne erfolg.


    Das Plugin werde ich nun Testen.


    Danke

  • ich frage mich um ehrlich zu sein warum das ganze nicht über Joomla selbst


    Weil, wie Du selber feststellen konntest, es templateabhängig ist und welche Erweiterungen eingesetzt werden. Vielleicht findet Niels Plugin irgendwann mal den Weg in den Core?
    Vom Core gibt es da andere Prioritäten. Von daher ist eh schon viel im Joomla-Core, was Du in anderen CMS immer erst mit Plugins erweitern musst.

  • Von daher ist eh schon viel im Joomla-Core, was Du in anderen CMS immer erst mit Plugins erweitern musst.


    Genau aus dem Grund arbeite ich auch mit Joomla :D


    Dann werde ich noch mal den JoomShaper Support befragen wegen meinem Problem! Aber das Plugin erfüllt schon mal seinen Zweck und das zuverlässig. Danke dafür!

  • Was es braucht ist die Möglichkeit, jQuery immer zuerst zu laden, per Core Plugin.


    Nun wird allerdings von Joomla mit JUI auch die jQuery-Version aktualisiert. Das ist ein Schnitzer, denn wer sagt denn bitte, dass alle Erweiterungen da einfach so mitziehen?

  • Dann ist es auch ein Schnitzer, Joomla zu aktualisieren oder bestimmte PHP-Versionen zu verlangen, damit man auf Stand der Zeit bleibt.
    Die JQuery-Version wird immer wieder innerhalb Version 1 aktualisiert und mir sind diesbzgl. nie Probleme aufgefallen. Dafür gibt es jquery.migrate, das Joomla ebenfalls lädt.


    Halte es für vollkommen falsch im Joomla-Core Zeugs unterzubringen, damit Erweiterungsentwickler nicht kompatibel programmieren können. Sollen lieber ihre Erweiterungen richtig machen.

  • Da ist natürlich auch was dran. Nur, es kann doch nicht sein, dass ich drei Plugins brauche um eine mittelgroße Seite zu optimieren.


    Mit der Joomla-Aktualisierung kann man das wirklich nicht vergleichen, da jQuery im Browser läuft und eine ältere Version nicht unbedingt ein Sicherheitsrisiko birgt. Außerdem könnte man sehr wohl Joomla mit anderen Javascript-Frameworks betreiben oder betreiben wollen. Zur Klarstellung: Wir reden hier nur vom FE.


    Es wäre nicht übel, wenn man in einem Plugin die zu ladende jQuery-Version einstellen könnte. Im Moment hat man keine Kontrolle darüber, ob JUI geladen wird. Zusätzlich sind viele Dritterweiterungen auch noch schlampig programmiert.

  • Wordpress ist doch kein Maßstab.


    Auf jeden Fall ist das ein hilfreiches Plugin von Niels!


    Mir ist bei einer Seite aufgefallen, dass ein Inline Script JCaptions starten möchte, wahrscheinlich, weil es die Erweiterung standardmässig einbindet, ein solcher Inline-Code ist praktisch nicht zu entfernen und viel besser wäre es, er entsteht gar nicht erst.


    Würde man Scripte registrieren und über verschiedene Wrapper an unterschiedlichen Stellen einbinden und mit unterschniedlichen Methoden, z.B. document ready, wäre das Problem gelöst. Vorbildlich geht das bei Yii2.