[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • CSS/JS-Einbindung über Modul steuern
Seite 1 von 1

CSS/JS-Einbindung über Modul steuern

Verfasst: 24. Feb 2017, 16:38
von harrybrader
Gibt es eine Möglichkeit CSS oder JS einzubinden (im Frontend und Backend), nur wenn ein bestimmtes Modul geladen wurde?

Re: CSS/JS-Einbindung über Modul steuern

Verfasst: 24. Feb 2017, 17:09
von RexDude
Du kannst dein Modul-Output mit einem <div class="my-module"> umwrappen. Dann hast du per CSS Zugriff drauf. Frontend Einbindung machst du so wie du sonst auch Sachen einbindest. Backend über das project Addon was für solche Fälle immer mit an Bord ist (yippeee :)).

Re: CSS/JS-Einbindung über Modul steuern

Verfasst: 24. Feb 2017, 17:16
von harrybrader
Hallo REXDUDE,

ich glaube du hast mich falsch verstanden.
Ich möchte bestimmte CSS oder JS-Dateien nur laden, wenn ein bestimmtes Modul geladen wird.
Z.B. Das Modul erstellt eine Bildergalerie. Es sollen die CSS und JS nur geladen werden, wenn auch eine Galerie benutzt wird.

Re: CSS/JS-Einbindung über Modul steuern

Verfasst: 24. Feb 2017, 17:24
von RexDude
Achso. Na dann musst du dir in deinem Haupttemplate sowas basteln: hol mir alles den aktuellen artikel. hol mir davon alles slices. gehe alle durch und befülle ja nach modul id ein array mit den zu ladenden css und js. diese gibst dann weiter unten in <head> aus.

aber weisst net ob sich dass lohnt dr ganze aufriss wenns um performance geht...

Re: CSS/JS-Einbindung über Modul steuern

Verfasst: 24. Feb 2017, 18:23
von harrybrader
Ich dachte das macht was aus. Man schleppt ja sonst unnötigen Ballast mit.

Re: CSS/JS-Einbindung über Modul steuern

Verfasst: 25. Feb 2017, 09:44
von Marshall
Guten Morgen,
das könnte man auch so lösen:

Im Template irgendwo am Anfang eine Variable als array setzen:

Code: Alles auswählen

rex::setProperty('JSLIBS', []);
Dann in den jeweiligen Modul(en) (Ausgabe) diese Variable abrufen und zurückschreiben:

Code: Alles auswählen

$JSLIBS = rex::getProperty('JSLIBS');
$JSLIBS['meinSliderLib'] = '/assets/js/vendor/whatever.min.js';
rex::setProperty('JSLIBS', $JSLIBS);
Im Template am Ende dann dieses array abholen und ausgeben/weiterverarbeiten:

Code: Alles auswählen

$JSLIBS = rex::getProperty('JSLIBS');
foreach($JSLIBS as $path) {
	// ausgeben - oder zu einem File zusammenmanschen
}
Grüße
Marshall

Re: CSS/JS-Einbindung über Modul steuern

Verfasst: 25. Feb 2017, 11:58
von RexDude
elegant gelöst was die js sache angeht.