Hallöchen,
ich möchte, das nur bei Auswahl eines bestimmten Contentelement Layouts Javascript Dateien geladen werden.
Andere Änderungen am Content mache ich übers Typoscript mit override.
Bei page wollte ich es eigentlich über die Conditions machen, aber irgendwie klappt es nicht.
Aktiviere ich die Condtion [globalVar = TSFE:tt_content|field:layout = 1] wird includeJS auch angezeigt.
Auf der Seite, in der das Contentelement mit dem Layout 1 liegt, hat die JS Dateien allerdings nicht im Quellcode.
Mir gehen die Ideen aus.
[globalVar = TSFE:tt_content|field:layout = 1]
page.includeJS {
file101 = typo3conf/ext/.../res/js/jquery.gallery.js
file102 = typo3conf/ext/.../res/js/jquery.gallery_start.js
}
page.includeCSS {
file101 = typo3conf/ext/.../res/css/jquery.gallery.css
}
[global]
LG
Charly
hallo Charly,
ich glaube, das funktioniert so nicht, da
ja jedes Content-Element auf layout geprüft werden müsste.
Evtl. kannst du das ja über das Layout der jeweiligen Seite machen.
Das kannst du nämlich per
[globalVar = TSFE:page|layout=1]
abfragen.
Hallo Charly,
ich hatte ein ähnliches Problem mal so gelöst.
temp.add_js = COA
temp.add_js {
10 = LOAD_REGISTER
10 {
js_dateien.cObject = TEXT
js_dateien.cObject.value (
<script src="fileadmin/admin/scripts/jquery-1.6.2.min.js"></script>
<script src="fileadmin/admin/scripts/jquery.easing.1.2.js"></script>
)
}
20 = TEXT
20 {
data = register:js_dateien
if.isTrue.numRows {
pidInList = this
table = tt_content
select.where = layout = 1
}
}
}
page.headerData.100 < temp.add_js
Du schreibst erst die benötigten Zeilen in ein Register, welches mit data = register:js_dateien ausgelesen wird, wenn auf der Seite Contentelemente mit dem layout 1 existieren. Das geht über numRows.
Zum Schluss noch in den Pageheader einbinden. Da stimmt was nicht mit der Darstellung im TS-Code durch das Parsing vom Forum bedingt. Die Zeile bei numRows muss nur "if.isTrue.numRows {" heißen und nicht :" if.isTrue.numRows/">numRows {". Der Parser fügt da ungewollt /">numRows hinzu.
Hallo udowald,
danke für den Hinweis, das sieht sehr gut aus.
Es sollte ja im Interesse vom CMS sein, das nur dann Daten geladen werden, wenn man sie auch wirklich braucht.
LG
Charly
@Chrissli: Über das Seitenlayout lässt sich das leider nicht entscheiden, da ich abhängig vom CE Layout Inhalte anders darstellen möchte: wie im code zu erkennen ist, soll eine Gallery generiert werden.