If mit mehreren parametern

Hallo ich möchte eine if Abfrage mit mehreren Parametern durchführen doch leider funktioniert das noch nicht so ganz:


[{if $homeSelected == 'false' && $ocat->expanded && $ocat->getId() != hosen||jacken}]class="active"[{/if}]

Wenn ich das ganze nur mit der iD hosen mache funktioniert das, aber ich möchte noch zwei weiter iDs mittles ‘oder’ hinzufügen (jacken etc.).

[{if $homeSelected == 'false' && $ocat->expanded && $ocat->getId() != hosen && $ocat->getId() != jacken}]class="active"[{/if}]

da fehlen Anführungszeichen um “hosen” und “jacken” außerdem glaube ich kaum, dass deine Kategorien wirklich die IDs “hosen” und “jacken” haben :smiley:

Naja, das ist aber nicht das einzige, denn “OR” ist bei “!=” immer TRUE.

[{if $homeSelected == 'false' && $ocat->expanded && ($ocat->getId() != "hosen" && $ocat->getId() != "jacken")}]class="active"[{/if}]

[QUOTE=msslovi0;116134]

[{if $homeSelected == 'false' && $ocat->expanded && $ocat->getId() != hosen && $ocat->getId() != jacken}]class="active"[{/if}]

[/QUOTE]

Danke…funktioniert!

[QUOTE=rubbercut;116139]Naja, das ist aber nicht das einzige, denn “OR” ist bei “!=” immer TRUE.[/QUOTE]

Kommt ja aber gar kein OR vor.

unheimlich :smiley:
und getId() != hosen stört euch nicht?

Bedingt. Ich hab die Smarty-Syntax nicht 100% verinnerlicht und bin mir nicht sicher, ob das bei Smarty nicht einfach ok ist.

getId() liefert die 32-stellige oxId der Kategorie, also sowas: "0f4f08358666c54b4fde3d83d2b7ef04"
hier gehts vermutlich eher um den Titel, also oxcategories__oxtitle->value

[QUOTE=msslovi0;116169]Kommt ja aber gar kein OR vor.[/QUOTE]

hosen||jacken

Ich hätte jetzt angenommen, dass er mit “||” einen Vergleichsoperator meint ;).

[QUOTE=vanilla thunder;116182]getId() liefert die 32-stellige oxId der Kategorie, also sowas: "0f4f08358666c54b4fde3d83d2b7ef04"
hier gehts vermutlich eher um den Titel, also oxcategories__oxtitle->value[/QUOTE]

Schon klar. Es ist aber trotzdem möglich, eine ID ‘hosen’ zu haben, deshalb hat mich das nicht wirklich gestört.

[QUOTE=rubbercut;116183]Ich hätte jetzt angenommen, dass er mit “||” einen Vergleichsoperator meint ;).[/QUOTE]

Dem ist auch so. Deshalb hat er ja ne Lösung bekommen, die funktioniert und ohne OR auskommt.