simple IF Abfrage

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

simple IF Abfrage

Post 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?!
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: simple IF Abfrage

Post 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
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: simple IF Abfrage

Post 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
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7759
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: simple IF Abfrage

Post 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  :)
Image
- + - + - + - + - + -
Latest CMSMS tutorial: FormBuilder WatchGuard
- + - + - + - + - + -
Did my post help you solving a problem at your (customers) website and it saved you many hours of work?
Great!! Buy me a cup of coffee in return as a small token of appreciation!
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: simple IF Abfrage

Post by nicmare »

aber dann wird doch {$imagevar} nicht mehr geparst?!
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7759
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: simple IF Abfrage

Post by Rolf »

Hoppla, etwas zu schnell  :D

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

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

{/literal}
{/if}

Grüss, Rolf
Image
- + - + - + - + - + -
Latest CMSMS tutorial: FormBuilder WatchGuard
- + - + - + - + - + -
Did my post help you solving a problem at your (customers) website and it saved you many hours of work?
Great!! Buy me a cup of coffee in return as a small token of appreciation!
cyberman

Re: simple IF Abfrage

Post 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 ...
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: simple IF Abfrage

Post 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
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7759
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: simple IF Abfrage

Post 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  :)
Image
- + - + - + - + - + -
Latest CMSMS tutorial: FormBuilder WatchGuard
- + - + - + - + - + -
Did my post help you solving a problem at your (customers) website and it saved you many hours of work?
Great!! Buy me a cup of coffee in return as a small token of appreciation!
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: simple IF Abfrage

Post 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!
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7759
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: simple IF Abfrage

Post 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
Image
- + - + - + - + - + -
Latest CMSMS tutorial: FormBuilder WatchGuard
- + - + - + - + - + -
Did my post help you solving a problem at your (customers) website and it saved you many hours of work?
Great!! Buy me a cup of coffee in return as a small token of appreciation!
NaN

Re: simple IF Abfrage

Post 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.
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: simple IF Abfrage

Post 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
NaN

Re: simple IF Abfrage

Post 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)
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: simple IF Abfrage

Post by nicmare »

ändert leider garnichts
Locked

Return to “Smarty-Tipps und -Tricks”