headfuckstatementfashionheadfuckstatementfashion MemberComments: 60 Received thanks: 2 Member since: September 2012 edited October 2012
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

Comments

  • AmiAmi MemberComments: 90 Received thanks: 17 Member since: September 2012
    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.
  • GrazzyGrazzy MemberComments: 70 Received thanks: 10 Member since: September 2012
    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
  • wpawpa MemberComments: 58 Received thanks: 5 Member since: September 2012
    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
  • headfuckstatementfashionheadfuckstatementfashion MemberComments: 60 Received thanks: 2 Member since: September 2012
    Hallo Wolfgang,

    das war ein Super-Tipp und genau die Lösung, nach der ich gesucht hatte ;)

    Vielen Dank und schöne Grüße,
    Jochen
  • 9user9user MemberComments: 9 Received thanks: 7 Member since: June 2012
    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:
    {function name=categories level=0}
    	<ul class="{if !$level}categories{else}submenu{/if} level{$level}">
    	{block name="frontend_index_categories_left_ul"}{/block}
    	{foreach from=$categories item=category}
    	    <li {if $category.flag || $category.subcategories}class="{if $category.flag or $category.subcategories}active{if $category.subcategories} sub{/if}{/if}"{/if}>
    			<a href="{$category.link}" {if $category.flag || $category.subcategories}class="{if $category.flag or $category.subcategories}flag{if $category.subcategories} active{/if}{/if}"{/if}>
    				{$category.description}
    			</a>
    	    	{if $category.subcategories}
    		     	{call name=categories categories=$category.subcategories level=$level+1}
    		    {/if}
    	    </li>
    	{/foreach}
    	</ul>
    {/function}
    
    Dies muss wie folgt erweitert werden:
    {function name=categories level=0}
    	<ul class="{if !$level}categories{else}submenu{/if} level{$level}">
    	{block name="frontend_index_categories_left_ul"}{/block}
    	{foreach from=$categories item=category}
    	    <li {if $category.flag || $category.subcategories}class="{if $category.flag or $category.subcategories}active{if $category.subcategories} sub{/if}{/if}"{/if}>
    			<a href="{$category.link}" {if $category.flag || $category.subcategories}class="{if $category.flag or $category.subcategories}flag{if $category.subcategories} active{/if}{/if}"{/if}>
    				{$category.description}
    			</a>
    	    	{if $category.subcategories}
    		     	{call name=categories categories=$category.subcategories level=$level+1}
    		    {/if}
    	    </li>
    	{/foreach}
    	    <li>
    <a href="{url controller=custom sCustom=3}" title="Impressum">Impressum</a>
    	    </li>
    	</ul>
    {/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:
    <li {if $sCustomPage.id == 3} class="active"{/if}>
    <a href="{url controller=custom sCustom=3}" {if $sCustomPage.id == 3} class="active"{/if} title="Impressum">Impressum</a>
    	    </li>
    
    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
  • headfuckstatementfashionheadfuckstatementfashion MemberComments: 60 Received thanks: 2 Member since: September 2012
    hm ... ich hätte das ja gerne mal ausprobiert an einer Kopie der Datei, aber bei mir sieht die ganz anders aus:

    "<div id="mainNavigation">
    <ul>
    <li class="{if $sCategoryCurrent eq $sCategoryStart} active{/if}">
    <a href="{url controller='index'}" title="{s name='IndexLinkHome'}{/s}" class="first{if $sCategoryCurrent eq $sCategoryStart} active{/if}">
    {se name='IndexLinkHome'}Home{/se}
    </a>
    </li>
    {foreach from=$sMainCategories item=sCategory}
    {if !$sCategory.hidetop}
    <li {if $sCategory.flag} class="active"{/if}>
    <a href="{$sCategory.link}" title="{$sCategory.description}" {if $sCategory.flag} class="active"{/if}>
    <span>{$sCategory.description}</span>
    </a>
    </li>
    {/if}
    {/foreach}
    </ul>
    </div>"

    Grüße,
    Jochen
  • 9user9user MemberComments: 9 Received thanks: 7 Member since: June 2012
    hm ... ich hätte das ja gerne mal ausprobiert an einer Kopie der Datei, aber bei mir sieht die ganz anders aus:
    Dann kommt der Teil von oben:
    <li {if $sCustomPage.id == 3} class="active"{/if}>
    <a href="{url controller=custom sCustom=3}" {if $sCustomPage.id == 3} class="active"{/if} title="Impressum">Impressum</a>
           </li>
    
    nach der foreach Schleife in deinem Quellcode rein, also so:
    <div id="mainNavigation">
    	<ul>
            <li class="{if $sCategoryCurrent eq $sCategoryStart} active{/if}">
                <a href="{url controller='index'}" title="{s name='IndexLinkHome'}{/s}" class="first{if $sCategoryCurrent eq $sCategoryStart} active{/if}">
                    {se name='IndexLinkHome'}Home{/se}
                </a>
            </li>
    	    {foreach from=$sMainCategories item=sCategory}
    	    {if !$sCategory.hidetop}
    			<li {if $sCategory.flag} class="active"{/if}>
    	        	<a href="{$sCategory.link}" title="{$sCategory.description}" {if $sCategory.flag} class="active"{/if}>
    	        		<span>{$sCategory.description}</span>
    	        	</a>
    	        </li>
            {/if}
    		{/foreach}
           <li {if $sCustomPage.id == 3} class="active"{/if}>
    <a href="{url controller=custom sCustom=3}" {if $sCustomPage.id == 3} class="active"{/if} title="Impressum">Impressum</a>
           </li>
    	</ul>
    </div>
    
    (konnte ich leider gerade nicht testen, sollte aber ohne Probleme funktionieren)
  • headfuckstatementfashionheadfuckstatementfashion MemberComments: 60 Received thanks: 2 Member since: September 2012
    Bei mir sieht das jetzt so aus:

    "<div id="mainNavigation" class="grid_20">
    <ul>
    <li class="{if $sCategoryCurrent eq $sCategoryStart} active{/if}">
    <a href="{url controller='index'}" title="{s name='IndexLinkHome'}{/s}" class="first{if $sCategoryCurrent eq $sCategoryStart} active{/if}">
    {se name='IndexLinkHome'}Home{/se}
    </a>
    </li>
    {foreach from=$sMainCategories item=sCategory}
    {if !$sCategory.hidetop}
    <li {if $sCategory.flag} class="active"{/if}>
    <a href="{$sCategory.link}" title="{$sCategory.description}" {if $sCategory.flag} class="active"{/if}>
    {$sCategory.description}
    </a>
    </li>
    {/if}
    {/foreach}
    <li {if $sCustomPage.id == 9} class="active"{/if}>
    <a href="{url controller=custom sCustom=9}" {if $sCustomPage.id == 9} class="active"{/if} title="Über uns">Über uns</a>
    </li>
    </ul>
    </div>"

    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
  • headfuckstatementfashionheadfuckstatementfashion MemberComments: 60 Received thanks: 2 Member since: September 2012
    Wenn ich das so anpasse, passiert folgendes :(

    topnavigation.jpg

    Es zerschießt mir die ganze Navigation ...

    Grüße,
    Jochen
  • 9grad9grad MemberComments: 16 Received thanks: 5 Member since: October 2012
    Es zerschießt dir nicht die ganze Navigation ;)
    Ü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.
    <a href="{url controller=custom sCustom=9}" {if $sCustomPage.id == 9} class="active"{/if} title="Über uns">Über uns</a>
    
    also:
    <a href="{url controller=custom sCustom=9}" {if $sCustomPage.id == 9} class="active"{/if} title="Über uns">Über uns</a>
    
  • headfuckstatementfashionheadfuckstatementfashion MemberComments: 60 Received thanks: 2 Member since: September 2012
    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 ...

    navi_neu.jpg

    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 :(

    Trotzdem vielen Dank.

    Grüße,
    Jochen
  • 9grad9grad MemberComments: 16 Received thanks: 5 edited October 2012 Member since: October 2012
    Naja, wenn die Anzeige nicht stimmt, dann liegt das wohl daran, dass das Template falsch kopiert wurde.
    <div id="mainNavigation">
    
    <div id="mainNavigation" class="grid_20">
    
    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.
  • headfuckstatementfashionheadfuckstatementfashion MemberComments: 60 Received thanks: 2 Member since: September 2012
    PM bekommen? Bei mir wird diese nämlich noch im Postausgang und nicht unter gesendete angezeigt ...
  • 9grad9grad MemberComments: 16 Received thanks: 5 Member since: October 2012
    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.
  • headfuckstatementfashionheadfuckstatementfashion MemberComments: 60 Received thanks: 2 Member since: September 2012
    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 ;)

    Grüße, Jochen
  • ELLELL MemberComments: 101 Received thanks: 11 edited November 2017 Member since: August 2016

    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'}
       <li class="navigation--entry {if $sCustomPage.id == 3} is--active{/if}" role="menuitem">
         <a class="navigation--link {if $sCustomPage.id == 3} is--active{/if}" href="{url controller=custom sCustom=3}“ title=„Impressum“ itemprop="url">Impressum</a>
       </li>
    {/block}
    

     

Sign In or Register to comment.