Kategorien aus categories_left entfernen.

Hallo zusammen Ich möchte gerne einzelne Kategorien aus der linken Navigation entfernen so das sie nur in der Top Navigation angezeigt werden. Bei SW 3.5 gab es hier eine sehr geschmeidige Lösung bei der man nur im Freitextfeld der Kategorie eine 1 eintragen musste. Jetzt bin ich wirklich kein Programmierer und bekomm es nicht mehr hin. Mit der 3.5er Änderung bekomme ich nur noch eine Fehlermeldung vom Shop. Könnt Ihr mir weiter helfen was an dem Code geändert werden muss? [code] {extends file=„parent:frontend/categorie_left.tpl“} {function name=categories level=0}

{block name=„frontend_index_categories_left_ul“}{/block} {foreach from=$categories item=category} {if $category.ac_attr1 != 1} - [{$category.description}]({if $category.external}{$category.external}{else}{$category.link|rewrite:$category.description}{/if}) {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if}
{/if} {/foreach} {/function} {if $sCategories} {call name=categories categories=$sCategories} {elseif $sMainCategories} {call name=categories categories=$sMainCategories} {/if} [/code] Danke Grazzy

Die Originaldatei in SW 4 sieht so aus [code] {* Maincategories left *} {function name=categories level=0}

{block name=“frontend_index_categories_left_ul”}{/block} {foreach from=$categories item=category} - {$category.description} {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if}
{/foreach} {/function} {if $sCategories} {call name=categories categories=$sCategories} {elseif $sMainCategories} {call name=categories categories=$sMainCategories} {/if} [/code] Kann einer von Euch Profis mal drüber schaun? Gruß Grazzy

Was ich mit meinem bescheidenem Wissen feststellen konnte ist das sich was in der Datenbank geändert hat. Die Variable für das Freitextfeld1 heißt nicht mehr ac_attr1 sondern jetzt attribute1 und liegt nicht mehr in der Tabelle s_categories sondern ist jetzt unter s_categories_attributes zu finden. Kann jemand helfen wie dann der Code aussehen muss wenns an der if Bedingung in Zeile 6 liegen sollte? Danke und Gruß Grazzy

Sorry. Leider soll es erst ab SW 4.0.2 funktionieren. Gruß Grazzy

ich hänge mich hier mal an, bräuchte ebenfalls die Möglichkeit um einzelne Kategorien aus der linken Navigation auszublenden. Vielleicht kann jemand vom Shopware-Team die Zeile posten die in der categories_left.tpl geändert werden muß? Die Anleitung die für 3.5.6 funktionierte läuft bei 4.0.2 leider nicht mehr. Viele Grüße Jenna

So sollte das ab 4.0.2 funktionieren \templates_emotion\frontend\index\categories_left.tpl [code] {* Maincategories left *} {function name=categories level=0}

{block name=“frontend_index_categories_left_ul”}{/block} {foreach from=$categories item=category} {if $category.attribute1 != 1} - {$category.description} {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if}
{/if} {/foreach} {/function} {if $sCategories} {call name=categories categories=$sCategories} {elseif $sMainCategories} {call name=categories categories=$sMainCategories} {/if}

[/code]

Hallo Ich hab 4.0.2 installiert aber leider klappt das nicht bei mir. Ich hab es im _emotion Template, im default Verzeichnis und in meinem eigenen Template versucht. Hast Du noch eine Idee Gruß Grazzy ps. Die Funktion wäre doch als Standart bestimmt nicht verkehrt.

[code] {* Maincategories left *} {function name=categories level=0}

{block name=„frontend_index_categories_left_ul“}{/block} {foreach from=$categories item=category} {if $category.attribute.attribute1 != 1} - {$category.description} {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if}
{/if} {/foreach} {/function} {if $sCategories} {call name=categories categories=$sCategories} {elseif $sMainCategories} {call name=categories categories=$sMainCategories} {/if}

[/code] Sorry - so sollte es klappen. Es muss $category.attribute.attribute1 z.B. heißen.

1 „Gefällt mir“

Super danke. Im _emotion Verzeichnis klappt es schon mal Was kann ich tun damit es Updatesicher ist und in meinem eigenen Template steht? Mein template ist eine Kopie von Emotion green nur umbenannt. mit [code] {extends file=„parent:frontend/index/categories_left.tpl“} {* Maincategories left *} {function name=categories level=0}

{block name=„frontend_index_categories_left_ul“}{/block} {foreach from=$categories item=category} {if $category.attribute.attribute1 != 1} - {$category.description} {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if}
{/if} {/foreach} {/function} {if $sCategories} {call name=categories categories=$sCategories} {elseif $sMainCategories} {call name=categories categories=$sMainCategories} {/if}

[/code] klappt es leider nicht und keine Kategorie wird links angezeigt egal was im freitextfeld steht Gruß Grazzy

Einfach in deinem eigenen Template das Verzeichnis index unterhalb von Frontend anlegen und dort die angepasste Datei categories_left.tpl ablegen.

1 „Gefällt mir“

Genau das hab ich ja getan. :wink: Und der Inhalt ist genau der den ich gepostet hab. Nur erscheint dann keine Kategorie links, egal was in dem Freitextfeld steht. Hab ich nen Fehler in der ersten Zeile beim erben? Gruß Grazzy

Sorry Hatte mal wieder nen Tippfehler drin. Jetzt klappt es perfekt. :thumbup: Vielen vielen Dank Stefan Gruß Grazzy ps. so ist es richtig. :oops: [code] {extends file=“parent:frontend/index/categories_left.tpl”} {* Maincategories left *} {function name=categories level=0}

{block name=“frontend_index_categories_left_ul”}{/block} {foreach from=$categories item=category} {if $category.attribute.attribute1 != 1} - {$category.description} {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if}
{/if} {/foreach} {/function} {if $sCategories} {call name=categories categories=$sCategories} {elseif $sMainCategories} {call name=categories categories=$sMainCategories} {/if}

[/code]

1 „Gefällt mir“

klappt perfekt, @Stefan, danke für den rasanten Support. Viele Grüße Jenna

1 „Gefällt mir“

Danke für die gute Zusammenarbeit. Gruss Grazzy

Hallo, ich habe genau diesen Quelltext in die categories_left.tpl eingefügt. Es passiert aber nicht, obwohl ich im Freitext eine 1 eingetragen habe und vernünftig gespeichert, Cache geleert und Browser aktualisiert habe. Die Änderung habe ich in der_emotions Template vorgenommen. Ich benutze das emotions orange Template und meine Shopwareversion lautet 4.0.3 Beste Grüße Ergänzung: Ohne {extends file=“parent:frontend/index/categories_left.tpl”} funktioniert alles. Ist diese Zeile nicht aber für die Updatesicherheit da? Oder ist es nicht notwendig, diese Zeile einzufügen. MFG

[quote]Ergänzung: Ohne {extends file=„parent:frontend/index/categories_left.tpl“} funktioniert alles. Ist diese Zeile nicht aber für die Updatesicherheit da? Oder ist es nicht notwendig, diese Zeile einzufügen.[/quote] Das würde mich auch interessieren ob die Zeile für die Updatesicherheit da ist. Bei mir funktioniert es auch nur wenn ich diese Zeile weglasse :frowning:

{extends file=“parent:frontend/index/categories_left.tpl”} ist nicht für die Updatesicherheit da, das hat damit überhaupt nichts zu tun, sondern mit dem Vererbungssystem und den “Blöcken” in Smarty. Updatesicher ist es, wenn Änderungen in ein eigenes Template geschrieben werden. Also einen neuen Pfad templates/emotion_MEINNAME/frontend/anlegen und dort dann die Verzeichnisse mit den Dateien des Templates, die geändert werden sollen. In diesem Fall: templates/emotion_MEINNAME/frontend/index/categories_left.tpl Die “extend-Zeile” ist eigentlich nur für “schreibfaule” gedacht. Wenn in einem Template ein Block definiert ist und ich möchte nur diesen Block ändern, aber alle übrigen Zeilen aus dem Standard-Template übernehmen, alsoe _default oder _emotion, dann sagt diese Anweisung genau das. Nimm alle Zeilen aus dem Standardtemplate, ergänze sie um den Block mit meinen Änderungen und ignoriere den gleichnamigen Block des Standardtemplates. So könnte man zum Beispiel den Block {block name=“frontend_index_categories_left_ul”}{/block} ändern, ohne den ganzen Rest aus der categories_left.tpl mitzuschleppen. Findet man ein Template mit “extend-Zeile”, muss man daher auch noch die gleichnamigen Dateien der Standrardtemplates ansehen, um zu wissen, wie die Datei aussieht, nachdem die Template-Engine von Shopware diese zusammengebastelt hat. Die zwei Standardtemplates machen das bei Shopware natürlich nicht unbedingt bei jeder Templatedatei übersichtlich .

2 „Gefällt mir“