seitenabhängiges (dynamisches) Stylesheet?

Diskussionen zur Smarty-Template-Engine
Locked
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

seitenabhängiges (dynamisches) Stylesheet?

Post by nicmare »

Ich möchte dass bestimmte Elemente (, etc) in einer bestimmten Farbe dargestellt werden. Und zwar auf jeder Seite in einer anderen Farbe.
Mir steht dafür schonmal ne Variable zur Verfügung:
{capture assign=colorscheme}style{$position|truncate:1:""}{/capture}
Also colorscheme enthält bspw style1 wenn man auf der 1. Seite ist oder style5 wenn man auf der 5 ist.
Ich habe ne recht primitive Abfrage direkt im Stylesheet versucht:

Code: Select all

a {
    text-decoration:none;
    color:[[if $colorscheme == "style1"]][[$color1]][[elseif $colorscheme == "style2"]][[$color2]][[elseif $colorscheme == "style3"]][[$color3]][[elseif $colorscheme == "style4"]][[$color4]][[elseif $colorscheme == "style5"]][[$color5]][[elseif $colorscheme == "style6"]][[$color6]][[elseif $colorscheme == "style7"]][[$color7]][[/if]];}
und im stylesheet:

Code: Select all

[[assign var=color1 value="#ae7777"]]
[[assign var=color2 value="#cbbea4"]]
[[assign var=color3 value="#4e4942"]]
[[assign var=color4 value="#998b6e"]]
[[assign var=color5 value="#9f2f2e"]]
[[assign var=color6 value="#446e69"]]
[[assign var=color7 value="#e2a36c"]]
Aber solche Abfragen sind unpraktikabel und problematisch direkt im Stylesheet da das CSS ja neuerdings gecached wird und dadurch nicht immer die Abfrage glückt. Nun dachte ich mir dass man vielleicht direkt im Templateheader eine Abfrage schreiben kann?! Ich brauche hier mal einen Denkanstoß! Das muss man irgendwie außerdem halb vom styleseheet abfragen. Vielleicht mit mehreren Stylesheets?
Danke
uniqu3

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by uniqu3 »

Warum verwendest Du nicht einfach so kannst ja im Stylesheet einfach .deinalias h3 irgendwas verwenden?
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by nicmare »

ja mensch perfekt! na so einer simplen lösung habe ich gesucht. manchmal denkt man eben doch zu kompliziert bzw habe ich erst einen kaffee heute getrunken ^^. danke !
uniqu3

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by uniqu3 »

nicmare wrote: ja mensch perfekt! na so einer simplen lösung habe ich gesucht. manchmal denkt man eben doch zu kompliziert bzw habe ich erst einen kaffee heute getrunken ^^. danke !
Ja das mit kompliziert denken, habe ich eigentlich ziemlich gut drauf hab aber heute schon dritten Kaffee da funktioniert das denken schon etwas besser  :)
cyberman

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by cyberman »

Alternativ könntest du auch für jede Seite die veränderliche CSS über den name-Parameter des Stylesheet-Tags für jede Seite separat einbinden.

Also

Code: Select all

{stylesheet}
{stylesheet name=$page_alias}
Ist zwar ein Request mehr, aber die CSS wird nicht unnötig aufgebläht (Stichwort PageSpeed ;)).
User avatar
dc2
Forum Members
Forum Members
Posts: 116
Joined: Tue Jun 02, 2009 8:21 pm

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by dc2 »

Was haltet ihr eigentlich davon, seitenspezifische ( Tag einzubinden?
Bin gerade dabei, solchen seitenspezifischen Kram aus dem globalen Stylesheet zu nehmen, weil das dadurch schon ziemlich aufgebläht wird. Aber ein extra Request ist mir das ganze auch nicht wert - aus pragmatischer Sicht tendiere ich also zum Style-Tag - wie seht ihr das? (Ich lasse mich gern umstimmen^^).
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by nockenfell »

Naja, wenn das ganze gecached wird, spielt die Grösse meines erachtens keine Rolle mehr. Wenn du die Stylesheets seitenspezifisch einbindest, hast du einfach mehr Arbeit und kannst dies keinem Redaktor übertragen.

Ich persönlich setze http://code.google.com/p/minify/ ein um meine Stylesheets und JavaScripts zu optimieren. Dadurch spart man jeweils auch schon einiges. Als Modul kannst du hier z.B. ScriptDeploy einsetzen.
[this message is written with 100% recycled bits]
uniqu3

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by uniqu3 »

@dc2
Ich denke mit abfragen direkt im Template werden ebenso unnötige Ressourcen verbraucht, also verwende ich persönlich doch lieber die body id Methode mit zusätzlichen Zeilen im Stylesheet, das ich sowieso immer mit ScriptDeploy optimiere und ehrlich gesagt wenn Du keine Seite mit 1000000 tägliche Besucher betreibst sind die 5kb auch kein Weltuntergang.
User avatar
dc2
Forum Members
Forum Members
Posts: 116
Joined: Tue Jun 02, 2009 8:21 pm

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by dc2 »

Ich verwende eh komplett statische Stylesheets (also nicht den {stylesheet}-Tag)..
Aber erstmal hab ich noch genug anderes zu tun, bis ich mich wieder hier dran setzen kann^^
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: seitenabhängiges (dynamisches) Stylesheet?

Post by nockenfell »

dc2 wrote: Ich verwende eh komplett statische Stylesheets (also nicht den {stylesheet}-Tag)..
Aber erstmal hab ich noch genug anderes zu tun, bis ich mich wieder hier dran setzen kann^^
Dann würde ich mir minify mal anschauen
http://code.google.com/p/minify/

Ich setze bei mir auch statische Stylesheets ein, welche ich auf dem Server dynamisch mit minify minimieren lasse.
[this message is written with 100% recycled bits]
Locked

Return to “Smarty-Tipps und -Tricks”