Page 1 of 3

simple IF Abfrage

Posted: Wed Nov 03, 2010 9:49 am
by nicmare
Aber irgendwie stehe ich total aufm Schlauch.
Ich habe die Variable $imagevar die standardmäßig den wert "-1" besitzt.
Man kann aber der Variable durch das Backend verschiedene Werte zuweisen.
Nun möchte ich also das abfragen:

Code: Select all

{if $imagevar != '-1'}
<style type="text/css">
{literal}.wrapper { 
    background-image:url({/literal}{$imagevar}{literal})}{/literal}
</style>
{/if}
Also wenn die Variable NICHT -1 enthält, soll das Stylesheet kommen aber es kommt trotzdem das dabei raus:

Code: Select all

<style type="text/css">
.wrapper { 
    background-image:url(-1)}
</style>
WIESO?!

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 9:51 am
by nicmare
Und wenn ich zum Testen

Code: Select all

{if $imagevar == '-1'}
<style type="text/css">
{literal}.wrapper { 
    background-image:url({/literal}{$imagevar}{literal})}{/literal}
</style>
{/if}
mache, also wenn die Variable -1 enthält, dann komme garkeine Ausgabe. Ich bin verwirrt

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 10:09 am
by nicmare
es scheint so als wenn das nen htaccess problem war / ist. Ich hatte als rewritebase /cmsms/ angegeben. Wenn ich es auf /cmsms ändere, scheint es zu gehen. supernervig. Muss da noch ein wenig testen

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 10:14 am
by Rolf
Hallo Nicmare.

Die {literal} tags mussen rundum die style tags, wie

{if $imagevar != '-1'}
{literal}

.wrapper {
    background-image:url({$imagevar});
}

{/literal}
{/if}

Grüss, Rolf  :)

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 10:15 am
by nicmare
aber dann wird doch {$imagevar} nicht mehr geparst?!

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 10:52 am
by Rolf
Hoppla, etwas zu schnell  :D

{if $imagevar != '-1'}
{literal}

.wrapper {
    background-image:url({/literal}{$imagevar}{literal})}

{/literal}
{/if}

Grüss, Rolf

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 10:58 am
by cyberman
Zum Glück wird es mit Smarty 3 einfacher ... anstatt literal einfach dem Tag Leerzeichen hinzufügen, also

Code: Select all

{ nicht_parsen }


anstatt

Code: Select all

{literal}{nicht_parsen}{/literal}
Mal sehen, wie lange wir bei CMSms auf Smarty 3 warten müssen ...

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 12:49 pm
by nicmare
leider ist das Problem nicht in den Griff zu kriegen. Irgendwo isn Bug. Entweder beim Server oder in CMSms (1.6.8). Mag sich das einer vielleicht mal angucken? Ich weiß da einfach nicht mehr weiter. Am besten per Skype: nicmare01

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 1:23 pm
by Rolf
Hab es versucht mit:

Code: Select all

{capture assign=imagevar}uploads/images/bild.jpg{/capture}
{if $imagevar != '-1'}
{literal}
<style type="text/css">
.wrapper { 
    background-image:url({/literal}{$imagevar}{literal});
}
</style>
{/literal}
{/if}
Es resultiert in:

Code: Select all

<style type="text/css">
.wrapper { 
    background-image:url(uploads/images/bild.jpg);
}
</style>
Mit

Code: Select all

{capture assign=imagevar}-1{/capture}
...
Is die code verschwunden.

So die Code hieroben is gut...
Controlieren Sie ihre "imagevar" Code, vielleicht ist das Problem dar.

Grüss, Rolf  :)

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 1:26 pm
by nicmare
nein. es funktioniert ja bei mir. aber nicht immer. manchmal ist imagevar -1 und manchmal nicht. ich weiß, ihr werdet mir nicht glauben. aber wenn ihr es testet, werdet ihr schon sehen! einfach mal bei dem angegebenen link durch die Seiten klicken (auch durch die Sprachen oben rechts) und früher oder später wird dann die Headergrafik (Regenbogen) nicht mehr angezeigt. Und das ist das Mysterium!

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 1:56 pm
by Rolf
nicmare wrote: Und das ist das Mysterium!
Ach soo...  :-\ Ich sah es nur einmal passieren...  :-\
Ich weiss es nicht :-\ vielleicht Server Geschwindigkeit Probleme

Schwierig  :-[
Aber schöne website  ;)

Rolf

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 2:48 pm
by NaN
Das liegt daran, dass $imagevar nie -1 ist.
Selbst wenn Du das im Backend so einstellst.
Es ist dann bestenfalls http://livingafrica2010.gtis.org/cmsms/-1
Manchmal ist es auch einfach nur http://livingafrica2010.gtis.org/cmsms/
Es wird also immer dir Root-URL vorangestellt.
Zumindest sehe ich das so im Firebug.

Es passiert bei mir übrigens nur, nachdem die Sprache gewechselt wurde.
Innerhalb der Sprachen muss ich dann alle Seiten einmal durchklicken und danach kann ich rumklicken wie ich will, das Bild ist immer zu sehen.

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 2:57 pm
by nicmare
na das ist doch merkwürdig oder NaN?
die Variable:

Code: Select all

{content_image urlonly='true' block='Headerimage'  label='Headerimage' dir='images/backgrounds' assign='imagevar'}
das Auslesen:

Code: Select all

<style type="text/css">
{if $imagevar != '-1' AND $imagevar != ''}
.wrapper {literal}{{/literal}
background-image:url({root_url}/{$imagevar}){literal}}{/literal}
{/if}
</style>
wie du siehst, versuche ich bereits "-1" und "leer" abzufragen

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 3:07 pm
by NaN
Versuch mal folgendes:

Code: Select all


<style type="text/css">
{if $imagevar|strip !== '-1' && $imagevar|strip !==-1 && $imagevar|strip != ''}
.wrapper {literal}{{/literal}
background-image:url({root_url}/{$imagevar}){literal}}{/literal}
{/if}
</style>

(also etwas präziser; es darf weder der string '-1' noch exakt die zahl -1 und auch nicht leer sein. ferner werden alle leerzeichen vonr und hinten abgeschnitten)

Re: simple IF Abfrage

Posted: Wed Nov 03, 2010 3:21 pm
by nicmare
ändert leider garnichts