[gelöst] Punkte in der Top-Navigation

Hallo, ich würde gerne als eigenen Punkt in der Top-Navigation “Über uns” anzeigen lassen. Nach meinem bisherigen Verständnis kann ich neue Punkte in der Navigation nur über “Artikel/Kategorien” anzeigen lassen, indem ich eine neue Kategorie anlege. Ist das richtig, oder gibt es noch eine andere Möglichkeit einen Navigationspunkt dahin zu bekommen, der keinem Artikel entspricht? Vielen Dank und schöne Grüße, Jochen

Hallo Jochen, ich habe meine Shopseiten in der Topkategorie als externe Seiten verlinkt. Das funktioniert soweit sehr gut mit Einschränkung dass die Untergategorien im Menu links nicht angezeigt werden und der Button in der Topkategorie sich nicht aktiviert (wenn die Seite aktiv ist). Nach einer Lösung suche ich da noch.

Hallo Genau so mach ich das auch und blende die Kategorie dann so auf der linken Seite aus. Man brauch dann nur im Freitextfeld der Kategorie die nicht links erscheinen soll eine “1” einzugeben und fertig. Gruß Grazzy

Nimm doch das Blogmodul. Dann kannst du beliebige Seiten in dein Menü integrieren und alles aus Shopware heraus pflegen. Auch lassen sich die Blog Temlpates so anpassen wie du es für die jeweilige Seite gerne hättest. http://wiki.shopware.de/_detail_445.html Ach ja, bevor für die jeweilige Blogseite kein Blogeintrag erstellt ist siehst du nichts im Menü. Gruß Wolfgang

1 „Gefällt mir“

Hallo Wolfgang, das war ein Super-Tipp und genau die Lösung, nach der ich gesucht hatte :wink: Vielen Dank und schöne Grüße, Jochen

Wenn man die Unterseite nicht mehr Links angezeigt haben möchte, kann man sie einfach der Gruppe „in Bearbeitung“ (oder man erstellt sich eine extra Gruppe dafür) zuweisen und bei „Linker Bereich“ rausschmeißen, dann muss man nicht noch die categories_left.tpl anpassen. Der Link / die Seite existiert und kann noch immer aufgerufen werden. Zu der Problematik des Einbindens oben in der Topnavigation: Eine Lösung wurde ja schon genannt, Kategorie mit Link anlegen, ist m.M. suboptimal, da wie gesagt die Kategorie nicht aktiv wird, wenn man drauf geklickt hat. Die Lösung dafür ist das Verändern der Datei: /templates/_default/frontend/index/categories_top.tpl natürlich nicht dort, sondern im eigenen Template. In dem Teil werden die Kategorien durchlaufen: [code] {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}[/code] Dies muss wie folgt erweitert werden: {function name=categories level=0} {block name="frontend\_index\_categories\_left\_ul"}{/block} {foreach from=$categories item=category} - [{$category.description}]({$category.link}) {if $category.subcategories} {call name=categories categories=$category.subcategories level=$level+1} {/if} {/foreach} - [Impressum]({url controller=custom sCustom=3} "Impressum") {/function} Der Link der hier auf das Impressum zeigt, findet ihr bei der Bearbeitung der Seite unter Embed-Code. Jetzt gibt es noch das gleiche Problem, wie bei der Verknüpfung via Kategorie-Link. Damit dem Element li und a die Klasse active zugewiesen wird, müssen wir die neuen Zeilen so erweitern: - [Impressum]({url controller=custom sCustom=3} "Impressum") Die Zahl 3 ({url controller=custom sCustom=3}) ist die ID der Seite, die wird logischerweise ersetzt, wenn die Seite eine andere ID hat. Die ID findet man immer beim Embed-Code: {url controller=custom sCustom=3} LG

4 „Gefällt mir“

hm … ich hätte das ja gerne mal ausprobiert an einer Kopie der Datei, aber bei mir sieht die ganz anders aus: "

  • [{se name=‘IndexLinkHome’}Home{/se}]({url controller=‘index’} “{s name=‘IndexLinkHome’}{/s}”)
    {foreach from=$sMainCategories item=sCategory} {if !$sCategory.hidetop} - {$sCategory.description}
    {/if} {/foreach}
    " Grüße, Jochen
  • [Impressum]({url controller=custom sCustom=3} „Impressum“)
    [/code] nach der foreach Schleife in deinem Quellcode rein, also so: [code]

  • [{se name=‚IndexLinkHome‘}Home{/se}]({url controller=‚index‘} „{s name=‚IndexLinkHome‘}{/s}“)
    {foreach from=$sMainCategories item=sCategory} {if !$sCategory.hidetop} - {$sCategory.description}
    {/if} {/foreach} - [Impressum]({url controller=custom sCustom=3} „Impressum“)

[/code] (konnte ich leider gerade nicht testen, sollte aber ohne Probleme funktionieren)

Bei mir sieht das jetzt so aus: "

  • [{se name=‚IndexLinkHome‘}Home{/se}]({url controller=‚index‘} „{s name=‚IndexLinkHome‘}{/s}“)
    {foreach from=$sMainCategories item=sCategory} {if !$sCategory.hidetop} - {$sCategory.description}
    {/if} {/foreach} - [Über uns]({url controller=custom sCustom=9} „Über uns“)

" Bisher war diese Datei nur im templates/default- und im templates/emotions-Verzeichnis jeweils im frontend/index Unterverzeichnis. Habe diese jetzt aber auch in meinem custom-template angelegt. Trotzdem funktioniert es bislang nicht. Ich muss ausdrücklich dazu sagen, dass ich mich mit Programmierung nicht auskenne und nur Schritt für Schritt so mache, wie hier beschrieben. Muss ich ggf. auch die categories_top im _default und im _emotions-Ordner anpassen? Grüße, Jochen

Wenn ich das so anpasse, passiert folgendes :frowning: Es zerschießt mir die ganze Navigation … Grüße, Jochen

Es zerschießt dir nicht die ganze Navigation :wink: Über uns ist jetzt logischerweise 2 mal drin, da du es schon als Kategorie angelegt hast, die musst du wieder entfernen. Das Ü wird so merkwürdig anzeigt, da die Datei falsch codiert ist oder dein Programm es mit der falschen Codierung öffnet. Ersetze das Ü in der folgenden Zeile durch Ü dann wird wieder ein normales Ü angezeigt. [Über uns]({url controller=custom sCustom=9} "Über uns") also: [Über uns]({url controller=custom sCustom=9} "Über uns")

Das „Über uns“ wird jetzt korrekt angezeigt und bleibt auch aktiv, aber dafür sitzen die Navigationspunkte alle ohne Zwischenraum aufeinander und der Content der jeweiligen Seite erscheint nicht, bzw. wird ganz nach rechts außen verschoben, so dass nur ein paar Pixel breiter Streifen zu erahnen ist … Ich glaub ich muss doch damit leben, dass ich die Kategorie als Blog anlege, auch wenn der Navigationspunkt nicht aktiv angezeigt wird nach dem Aufruf :frowning: Trotzdem vielen Dank. Grüße, Jochen

Naja, wenn die Anzeige nicht stimmt, dann liegt das wohl daran, dass das Template falsch kopiert wurde. [code]

[/code] das grid_20 ist einmal da in deinen Posts, einmal nicht. Wahrscheinlich ist das reingerutscht oder abhanden gekommen, kannst du mir kurz einen Link zum Shop schicken, gerne auch per PN, dann schau ich mir das mal an, mit der Glaskugel ist es nicht so einfach heute.

PM bekommen? Bei mir wird diese nämlich noch im Postausgang und nicht unter gesendete angezeigt …

Kurz für die Nachwelt: Der fehlende Umbruch nach der Navigation lag an der CSS Klasse grid_20, die ist falsch reingerutscht. Die fehlenden Abstände der Navigation wurden mit padding eingefügt. Beim Template von headfuckstatementfashion wird HOME aktiv angezeigt, wenn man auf der hinzugefügten Seite ist, das kann man verhindern indem man: {if $sCategoryCurrent eq $sCategoryStart} active{/if} durch {if ($sCategoryCurrent eq $sCategoryStart) && ($sCustomPage.id != 9)} active{/if} ersetzt (kommt zweimal vor). ID 9 ist hierbei durch die Seiten ID zu ersetzen.

2 „Gefällt mir“

Hat wirklich Spitze geklappt! Diese Anleitung von „9grad“ ist der Lösung mit der Blog-Kategorie auf jeden Fall vorzuziehen! Passt sich in die normale Navigation pefekt mit allen Funktionalitäten ein. Daraus sollte direkt ein Tutorial entstehen … einfach Klasse gemacht. Mein Extra-Lob an „9grad“ für den tollen Tipp :wink: Grüße, Jochen

Das Thema ist ja mitlerweile recht alt und ich habe die Ergänzung entsprechend an die neue Shopware Version angepasst, um meinen Shop mit weiteren Punkten in der Topnavigation zu ergänzen.

Gibt es noch eine Möglichkeit, für den Block eine If-Abfrage der Sprachversion des Shops zu machen? Ich kenne leider nicht die passende Variable.
Wir verwenden DE, EN, FR und für jede Sprache muss ich natürlich andere Menüpunkte in der Navigation ergänzen und ausgeben.

{block name='index_topnav_extend_de'}
   
     Impressum
   
{/block}