Zum Inhalt springen

Browserweiche bei CONSTANTS im Template?

Erstellt am 12. September 2007 · 11 Antworten · letzte Antwort am 13. September 2007

Tags: Frage

fstruck ·

Hallo,

kann mir jemand sagen, ob es möglich ist in den CONSTANTS eines Templates ebenfalls eine Browserweiche, ähnlich wie im SETUP einzusetzen?

Ich würde gerne den Header und Bodytext des Contents in Abhängigkeit vom Browser formatieren.

So etwas wie:

[browser = msie]
content.wrap.header1 = <font face="arial" size="3"><b>|</b></font>
content.wrap.bodytext = <font face="arial" size=2 |</font><br>

[browser = netscape]
content.wrap.header1 = <font face="arial" size="4"><b>|</b></font>
content.wrap.bodytext = <font face="arial" size=3 |</font><br>

[global]

Aber so funkts ja leider nicht.

Wie könnte das sonst gelöst werden?
Vielen dank für die vielen Tipps im voraus. 😉

Tschöö
Frank

einpraegsam.​net ·

Conditions kannst du auch in den Konstanten verwenden, dann aber die Bedingungen wieder schließen, wenn du diese öffnest...

[browser = msie]
content.wrap.header1 = <font face="arial" size="3"><b>|</b></font>
content.wrap.bodytext = <font face="arial" size=2 |</font><br>
[global]

[browser = netscape]
content.wrap.header1 = <font face="arial" size="4"><b>|</b></font>
content.wrap.bodytext = <font face="arial" size=3 |</font><br>
[global]
einpraegsam.​net ·

Stimmt, daher mache ich standard für Mozilla und alle weiteren per Conditions:

# Mozilla Firefox
page.stylesheet = fileadmin/css/main.css
[browser = msie] && [version =< 7.0]
page.stylesheet = fileadmin/css/main_ie6.css
[END]
[browser = msie] && [version => 6.9]
page.stylesheet = fileadmin/css/main_ie7.css
[END]
[browser = opera]
page.stylesheet = fileadmin/css/main_opera.css
[END]
[useragent=*Safari*]
page.stylesheet = fileadmin/css/main_safari.css
[END]
fstruck ·

Danke. Das werde ich 'mal versuchen. Welcher Unterschied besteht denn in der Benutzung von [global] und [end]?

Tschöö
Frank

einpraegsam.​net ·
fstruck schrieb

Welcher Unterschied besteht denn in der Benutzung von [global] und [end]?

Ein extrem wichtiger Unterschied: "end" lässt sich viel schneller schreiben als "global"
#giggle#

fstruck ·

😃 😃

wenn's keine anderen Unterschiede sind, geht's ja. Soweit funktioniert's in etwa, den Rest wusel ich mir zusammen.

Wo wir aber schon einmal bei den Konditionen sind, hätte ich da noch eine Frage für den Setup-Bereich im Template.

Momentan habe ich so etwas im Einsatz:

[usergroup = *]
blablabla
[else]
blablabla
[global]

Wie ließe sich denn hier noch eine unterschiedliche Anzeige in Abhängigkeit vom Browser einbauen? Verschachteln scheint ja nicht zu gehen, oder?

Tschöö
Frank

fstruck ·

Mahlzeit,

ich habe jetzt mal versucht, das umzusetzen, leider auch nur mit mäßigem Erfolg. Entweder bin ich mal wieder nicht in der Lage das ganze richtig nachzuvollziehen, oder habe vorher nicht eindeutig schildern können, was ich eigentlich möchte. Deshalb hier noch einmal vielleicht etwas deutlicher:

Angezeigt werden soll standardmäßig eine Login-Box, bei Eingabe Username und Passwort -> Einloggen, keine Loginbox, dafür mehrere Buttons.

Realisiert im Template durch:

[usergroup = *]
Anzeige Username + Buttons
[else] /* Standard-Case */
Anzeige Loginbox
[global]

Das funktioniert einwandfrei.

Gewünscht: unterschiedliche Anzeigeformattierung in Anhängigkeit vom benutzten Browser.

Wenn ich nun das so umsetze:

Versuch 1:

[usergroup = *] && [browser = netscape]
 Anzeige Username + Buttons
[else]                                   
  Anzeige Loginbox   
[end]

Bis hierher funktioniert's. Interessant wird's erst wenn der 2. Browser ins Spiel kommt.

[usergroup = *] && [browser = msie]
 Anzeige Username + Buttons
[else]                                   
  Anzeige Loginbox   
[end]

Jetzt wird nur noch die Formattierung des 2. Browsers benutzt, egal welcher als 1. deklariert wurde (msie oder moz). ???

Versuch 2:

[usergroup = *] && [browser = netscape]
  Anzeige User + Buttons
[end] 
[usergroup = *] || [browser = netscape]
  Anzeige Loginbox
[end]
[usergroup = *] && [browser = msie]
  Anzeige User + Buttons
[end] 
[usergroup = *] || [browser = msie]
  Anzeige Loginbox
[end]

Ergebnis: In beiden Browser wird es entsprechend der gewünschten Formatierung angezeigt, nur ...... er bleibt im Standard-Case und zeigt trotz eingeloggten User die Login-Box an.

das ... [usergroup = *] || [browser = netscape] .... wird wohl für die ELSE nicht ok sein, oder? Wie müßte es denn richtig aussehen?

Tschöö
Frank

fstruck ·

Got it,

viel Versuch macht kluch #giggle#

Es muss heißen:

[browser = netscape]
  Anzeige Loginbox
[end]
[browser = netscape] && [usergroup = *] 
  Anzeige User + Buttons
[end]
[browser = msie]
  Anzeige Loginbox
[end]
[browser = msie] && [usergroup = *]  
  Anzeige User + Buttons
[end]

Danke für die Tipps.

Tschöö
Frank