Dynamisch eine CSS-Datei erstellen
Wenn Sie seitenabhängig CSS-Definitionen brauchen und diese allerdings nicht im Head-Bereich, sondern in einer seperaten Datei stehen sollen, können Sie sich mit einem Trick helfen.
Sie müssen dazu nur die Ausgabe einer Seite wie im folgenden Beispiel definieren:
TypoScript (Setup)
- css = PAGE
- css {
- typeNum = 22
- config{
- additionalHeaders = Content-type: text/css
- disableAllHeaderCode = 1
- }
- 10 = TEXT
- 10.value (
- body {
- margin: 0px;
- padding: 0px;
- }
- h5 {
- text-decoration: none;
- font-weight: bold;
- font-size: 40px;
- color: red;
- background-color: silver;
- display: box;
- }
- )
- }
- page.headerData.775.dataWrap = <link rel="stylesheet" type="text/css" href="index.php?id={field:uid}&type=22" />|
TypoScript-Erläuterung
Von Zeile 1-23 wird die Ausgabe der CSS-"Datei" konfiguriert. Damit die Ausgabe auch als Text ausgeliefert wird, wird in Zeile 5 die Headerinformation modifiziert.
Die CSS-Datei darf natürlich nicht den Head- und Body-Bereich einer normalen Webseite haben. Aus diesem Grund wird der Header-Code in Zeile 6 komplett gelöscht.
In Zeile 8-22 wird die Ausgabe noch relativ starr (hier mit Beispieldaten) angegeben - allerdings können Sie die CSS-Daten ja auch aus einem zuvor mit dem Kickstarter ergänzten Datenbankfeld der pages-Tabelle auslesen und hier dynamisch einfügen lassen.
Zeile 24 und 25 fügt jetzt in der normalen Webseite noch den Link zur
Stylesheet-"Datei" ein.
Die TypeNum-Angabe ist überigens nicht zwingend 22.
Sie müssen nur eine freie typeNum verwenden.
Kommentare von registrierten Benutzern:
In den Seiteneigenschaften unter TS
Oder du erstellst ein +extensions Template und bindest dort die CSS Datei ein, welche als externe Datei im Fileadmin liegt.
Wo genau muss ich denn das TypoScript eintragen? In die Seiteneigenschaften der Seite, dessen CSS-Definition unterschiedlich sein soll?
Oder in eine neue Seite?
Oder als neues Template?






