Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 09. Januar 2011 14:33

Andiministrator
Kabeljungwerker
Ort: Plauen / Vogtland
Registriert: 09. November 2010
Beiträge: 264
Webseite

Smarty in CSS Stylesheets mit cms_stylesheet

Seit CMSms 1.8 kann ja auch Smarty in Stylesheets verwendet werden.
Das ist nützlich, um z.B. Farben, Schriften, etc. am Anfang zu definieren und dann via Variable zu verwenden.

Voraussetzung ist, dass man die Stylesheets in das entsprechende Template nicht wie bisher mit {stylesheet} einbindet, sondern {cms_stylesheet} verwendet.

Die Variablen kann man im Stylesheet dann so definieren:
[[assign var=VARIABLEN_NAME value='VARIABLEN_WERT']]

Verwenden kann man die Variable dann so:
[[$VARIABLEN_NAME]]

Dabei können natürlich auch UDT's, Plugins und andere Smarty-Werte eingesetzt werden. Wenn man z.B. das Plugin "root_url" einsetzen möchte, kann man das so machen:
[[root_url]]

Hier einmal ein kleines Beispiel, wie das dann aussehen könnte:

[[assign var=fontsize value='9pt']]
[[assign var=lineheight value='12pt']]
[[assign var=fontfamily value='Verdana,Arial,Geneva,Helvetica']]
[[assign var=color value='#ad6a38']]
body {
    font-family:[[$fontfamily]];
    font-size:[[$fontsize]];
    line-height:[[$lineheight]];
    color:[[$color]];
    background:transparent url([[root_url]]/uploads/images/background.png) no-repeat top center;
}

Mit der Mischung UDT's und cms_stylesheet sind dann interessante Sachen möglich.
Beachten sollte man dabei, dass die Stylesheets gecached werden. Wenn sich also ein verwendetes UDT ändert, muss zunächst der Cache gelöscht werden, damit die Änderung auch im Stylesheet ankommt. Eine Änderung im Stylesheet abhängig von einer sich ändernden Template-Variable (z.B. für Sprachauswahl) ist also (meines Wissens) nicht möglich.

Wenn man seine CSS Regeln auf mehrere Stylesheets aufteilt, kann man bei der Einbindung den name-Parameter verwenden, um immer nur die Stylesheets einzubinden, die auch tatsächlich benötigt werden, z.B.:
{cms_stylesheet name='main_css'}
{cms_stylesheet name='news_css'}


Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de

Offline