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

#1 15. September 2011 16:36

Rincewind
hat von CMSMS gehört
Registriert: 15. September 2011
Beiträge: 14

Re:

Hallo.

Ich versuche mich jetzt schon seit Stunden an folgender (doch eignetlich simplen) Herausforderung.

Ich habe eine neue Felddefinition im Modul Gallery hinzugefügt (Kontrollkästchen). Diese heißt "photos" und ist öffentlich.
Da ich die Checkboxen nutzen möchte um verschiedenartige Bilder zu unterscheiden (photos, paintings,...) möchte ich auslesen welche Checkbox angehakt ist und dann in den (untergeordneten) Galerien entsprechend Klassen benamen.

Meine momentane Lösung (die leider nicht funktioniert) sieht so aus:


{if $image->fields.photos.value=="true"}
dies ist ein photo
{else}
kein photo
{/if}


Es wird immer "kein photo" ausgegeben, egal ob eine Gallery den Haken bei "photos" gesetzt hat.
Funktioniert das für untergeordnete Gallerien vielleicht nicht? Oder eben anders?

Genauso habe ich schonmal mit einem anderen Modul gearbeitet - da hat es problemlos funktioniert.
Kann mir jemand weiterhelfen?

Viele Grüße
Jan

Offline

#2 15. September 2011 17:09

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re:

Statt true nehme 1 ;-)

Offline

#3 15. September 2011 21:50

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.058

Re:

Hallo Rincewind,

willkommen im Forum.
Mögest Du in interessanten Zeiten leben wink

Offline

#4 16. September 2011 08:01

Rincewind
hat von CMSMS gehört
Registriert: 15. September 2011
Beiträge: 14

Re:

Vielen Dank.

Oh Menno!!!! Da hätte ich auch echt von selbst drauf kommen können!!!!!! Habe mich wohl zu sehr davon blenden lassen, dass es mit true in einem anderen Modul ging.
Ich liebe CMSMS ja wirklich, aber die Dokus bzw. die Hilfen könnten wirklich etwas umfangreicher sein. Soweit ich sehe steht das mit dem 1 anstelle von true, bzw. wie man überhaupt ein Kontrollkästchen anspricht nirgends, oder?

Zum Glück gibt es dieses Forum hier.

@Nan. Vielen Dank, ich lebe in interessanten Zeiten :-)

Offline

#5 16. September 2011 08:26

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re:

Mit print_r kommst Du weit.
Zum beispiel im Gallery Template <pre>{$images|print_r}</pre> einfügen und schon kannst Du sehen was es so gibt und {$image->fields.photos.value} hätte dir auch Antwort geliefert, denn value wäre wohl als 1 angezeigt.

Offline

#6 16. September 2011 10:05

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.058

Re:

Das mit dem true/1 ist ein generelles Problem bei nicht typisierten Sprachen. Bei PHP gilt alles was nicht leer oder Null ist als true. D.h. der Text "halligalli" würde ebenfalls als true interpretiert werden. Ebenso sollen ja "true" und "1" irgendwie dasselbe sein. Das Dumme ist nur, dass "true", wenn es in Anführungszeichen steht, als String ( = Text) behandelt wird. Und das Wort "true" steht so nunmal nicht in dem Feld. Dort steht die Zahl (oder auch das "Wort") "1" was beides nicht dem Wort "true" entspricht. Wenn Du stattdessen keine Anführungszeichen

{if $image->fields.photos.value == true}

verwendet hättest, hätte das auch funktioniert.
Dann wäre allerdings egal was wirklich in dem Feld steht, Hauptsache es ist nicht leer oder Null.
Das nurmal so als Erklärung.
Bei CMSms werden manche Kenntnisse einfach nur vorrausgesetzt.
Aber dafür geben wir uns ja hier alle Mühe, die Lücken zu füllen wink

Offline

#7 16. September 2011 11:42

dc2
arbeitet mit CMSMS
Registriert: 26. November 2010
Beiträge: 140
Webseite

Re:

Kleiner Tipp am Rande: da if-Abfragen ohnehin einen boolschen Ausdruck erwarten kann (und sollte) man das == true ganz weglassen (anders sieht es natürlich bei schwach typisierten Sprachen wie PHP aus, wenn man mit === typsicher prüft).
Dann hat man auch nicht solche Probleme wie oben beschrieben smile

Offline

Fußzeile des Forums

Powered by FluxBB