XTCommerce if else Schleife Navigation

Hardwarejoe

Angesehenes Mitglied
Hab ein Problem mit einer if else Abfrage in XTCommerce Veyton und bekomme es einfach nicht hin.
Und zwar möchte ich in der Navigation nur bei einer bestimmten Kategorie die Unterpunkte ausblenden.


Normal schaut die Listung der Kategorien so aus:

CODE {foreach name=aussen item=module_data from=$_categories}
       <li id="box-categories-categorie-{$module_data.categories_id}" class="level{$module_data.level}{if $module_data.active} active{/if}"><a href="{$module_data.categories_link}">{$module_data.categories_name}</a></li>
{/foreach}




Wenn es Kategorie "11" gibt und dort Unterkategorien bestehen, dann sollen diese ausgeblendet werden - bekomme das einfach nicht hin.
So versuche ich die Kategorie anzusprechen:


CODE
   {foreach name=aussen item=module_data from=$_categories}
       
      {if $module_data.categories_id == 11 }

        <li id="box-categories-categorie-{$module_data.categories_id}" class="level{$module_data.level}{if $module_data.active} active{/if}"><a href="{$module_data.categories_link}">{$module_data.categories_name}</a></li>

      {else}<li class="level{$module_data.level}{if $module_data.active} active{/if}"><a href="{$module_data.categories_link}" title="{$module_data.categories_heading_title}">{$module_data.categories_name}</a></li>
   {/if}

   {/foreach}



Nun fehlt mit noch die Verknüpfung zwischen Kategorie 11 und {if $module_data.level <= 1} aber wie baue ich das mit ein bzw. was passt da nicht?
 
CODE

{foreach name=aussen item=module_data from=$_categories}

{if $module_data.categories_id == 11 }
{if $module_data.level <= 1}
<li id="box-categories-categorie-{$module_data.categories_id}" class="level{$module_data.level}{if $module_data.active} active{/if}"><a href="{$module_data.categories_link}">{$module_data.categories_name}</a></li>
{/if}
{else}<li class="level{$module_data.level}{if $module_data.active} active{/if}"><a href="{$module_data.categories_link}" title="{$module_data.categories_heading_title}">{$module_data.categories_name}</a></li>
{/if}

{/foreach}




probier mal so.
 
Ne, in Deinem Beispiel werden leider alle Unterkategorien mit angezeigt
sad.gif
 
hast du geprüft, ob du hier überhaupt rein kommst:CODE {if $module_data.categories_id == 11 }
?

 
Na ja, ich kenn mich so nicht mit XTCommerce aus, aber wenn aber Kategorie 11 die Unterkategorien auch für die folgenden Kategorien nicht angezeigt werden sollen, müsste der Code wir folgt sein:

CODE {if $module_data.categories_id >= 11 }




Dürfen denn Leerzeichen zwischen Bedingung und geschweifter Klammer stehen? Wenn nicht sollte es eher wie folgt lauten:


CODE {if $module_data.categories_id >= 11}




Wenn über die Variable $module_data.level ein Wert zurückgegeben wird, der bestimmt was die obere Kategorie ist, ist Wurzels Ansatz schon recht gut, müsste aber ggf. leicht korregiert werden:


CODE {if $module_data.level == WERT}


Ansonsten ist an der reinen Programmierlogik daran nichts auszusetzen, außer, dass die Werte ggf. nicht den Erwartungen entsprechen. Dafür müsstest Du mal schauen, was im Quelltext steht oder die Variable beinhaltet für die oberste Kategorieebene. Es kann ja sein, dass Ebene nach EDV maniert mit 0 startet und die zweite Ebene mit 1, oder hat eben ganz andere Bezeichnungen. Gleiches müsste auch für $module_data.categories_id geprüft werden
 
Ok, ich hab per {debug} nochmal nachgesehen was der Shop ausgibt.
Dabei hab ich festgestellt, das die entsprechenden Unterkategorien immer ein "parent_id" mit bekommen.

Wenn ich

CODE {if $module_data.categories_id == 11 }


ersetze mit


CODE {if $module_data.parent_id == 11 }


klappt es! Und ich such mich hier seit Stunden zu Tode
rolleyes.gif


Ganz großes Dankeschön für Eure Hilfe !!!
 
Zurück
Oben