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)

  1. css = PAGE
  2. css {
  3.         typeNum = 22
  4.         config{
  5.                 additionalHeaders = Content-type: text/css
  6.                 disableAllHeaderCode = 1
  7.         }
  8.         10 = TEXT
  9.         10.value (
  10.                 body {
  11.                         margin: 0px;
  12.                         padding: 0px;
  13.                 }
  14.                 h5 {
  15.                         text-decoration: none;
  16.                         font-weight: bold;
  17.                         font-size: 40px;
  18.                         color: red;
  19.                         background-color: silver;
  20.                         display: box;
  21.                 }
  22.         )
  23. }
  24. page.headerData.775 = TEXT
  25. 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:

Kommentar von: Helger

23. 02. 2007, 10:18
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.

Profil

Kommentar von: Flummi

03. 12. 2006, 20:25
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?


Profil



Seite drucken
 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Espelkamp:
Montag, 02.06.
in Berlin:
Montag, 07.07.

TYPO3 Intensivschulung
in Würzburg:
Mi., 28.05. - Fr., 30.05.
in Espelkamp:
Mi., 04.06. - Fr., 06.06.
in Köln:
Mi., 18.06. - Fr., 20.06.
in Berlin:
Mi., 09.07. - Fr., 11.07.


TYPO3 Extensionschulung
in Berlin:
Mo., 19.05. - Mi., 21.05.
in Espelkamp:
Mo., 09.06. - Mi., 11.06.