Guten Abend,
ich bin erst seit dieser Woche mit TypoScript beschäftigt.
Ich habe für die verschiedenen Inhalte zusätzliche Stylesheets definiert. Diese sind nach der gewählten Seite (title) benannt. Diese will ich dynamisch einbinden lassen.
page = PAGE
page {
includeCSS {
1 = fileadmin/Layouts/Standard/Css/Core.css
2 = fileadmin/Layouts/Standard/Css/Index.css
3 = COA
3 {
1 = TEXT
1.value = fileadmin/Layouts/Standard/Css/Content/
2 = TEXT
2.value = title
3 = TEXT
3.value = .css
}
}
}
Durch meine Referenz bin ich auf COA gestoßen. Dieses sollte mir eigentlich Objekte verknüpfen können. Aber scheinbar ist das für includeStylesheet nicht möglich.
Die ersten beiden Stylesheets sind immer im Template enthalten. Das 3. Stylesheet soll abhängig von der angezeigten Seite geladen werden.
Eine zweite getestete (ebenfalls nicht funktionierende Variante) ist ...
includeCSS {
1 = fileadmin/Layouts/Standard/Css/Core.css
2 = fileadmin/Layouts/Standard/Css/Index.css
3 = TEXT
3 {
value = fileadmin/Layouts/Standard/Css/Content/
append = title
append = .css
}
}
Wie kann ich in includeCSS dynamisch ein weiteres Stylesheet einbinden?
Danke
Christian
Zunächst muss überlegt werden, ob das eine gute Idee ist: wenn der Seitentitel umbenannt wird, muss man auch den Namen der CSS Datei anpassen. Und wenn der Seitentitel z.B. Leerzeichen oder Umlaute enthält, funktioniert es auch nicht.
Eine bessere Lösung wäre es zum Beispiel, wenn man die Zeile page.includeCSS auf den entsprechenden Seiten in einem Extension Template einfügt.
Falls es aber doch unbedingt mit dem gezeigtem Weg geschehen soll, wird mit der Zuordnung 2.value = title immer der feste Text "title" zugewiesen.
Um den Seitentitel dynamisch einzufügen ist folgende Variante zu verwenden:
3 = TEXT
3.value = fileadmin/Layouts/Standard/CSS/Content/{page:title}.css
3.insertData = 1
Jochen Weiland
jweiland schrieb
Um den Seitentitel dynamisch einzufügen ist folgende Variante zu verwenden:
3 = TEXT
3.value = fileadmin/Layouts/Standard/CSS/Content/{page:title}.css
3.insertData = 1
Das wird auch nicht funktionieren, jedenfalls nicht mit includeCSS, weil die Array-Elemente von includeCSS nicht vom Typ TEXT sein können (auch nicht COA).
Es würde mit headerData funktionnieren. Da musst du aber das ganze Tag zusammenbasteln, also inklusive
<link rel="stylesheet" type="text/css" href="..." media="...">
da ich auch noch nicht ganz sicher bin,
aber denke das wird klappen:
page.headerData.500 = TEXT
page.headerData.500.vakue = fileadmin/Layouts/Standard/CSS/Content/{page:title}.css
page.headerData.500.insertData = 1
page.headerData.500.wrap = <link rel="stylesheet" type="text/css" media="screen" href="|" />