Sidebar - alle Kategorien aufklappen 4.7.3

Hallo zusammen,

ich hätte gerne alle Kategorien in der Sidebar ausgeklappt, nicht nur die Aktive.
Das Thema wurde hier im Forum schon angesprochen, ich konnte
daraus aber kein Ansatz finden.

Version 4.7.3

Hallo,
in Sidebar wird jetzt (Shop 4.6 - 4.7) nur Unterkategorien vom Haupkategorien angezeigt die Du vorher angeklickt hast.

Wenn Du aber alle Kategorien inkl. Unterkategorien anzeigen möchtest binde einfach im layout/sidebar.tpl anstatt:

[B][I]widget/sidebar/categorytree.tpl[/I][/B] die [B][I]widget/header/categorylist.tpl [/I][/B]ein. Noch ein bisschen CSS und voilà.

Grüße

Hallo Markus,

vielen Dank für den Hinweis.

Ich habe das jetzt eingebunden, allerdings bekomme ich es nicht wirklich hin.

Ich hätte gerne das sobald man eine Kategorie im Header anwählt in der Sidebar alle Hauptkategorien ausgeklappt sind…Version ist CE 4.7.4 Wenn ich im sidebar template das widget /header/categorylist abrufe erscheint es genauso wie es im Header dargestellt wird, also horizontal und auch nur die entsprechenden 8 Kategorien mit “mehr”

Mit Firebug bekomme ich es auch nicht css mäßig in den Griff.

Grüße,

Andre (outdoor)

Hallo Andre,
gemeint habe ich aber was ganz anderes. Aber hier kommt jetzt eine Fertige Lösung:

Inhalt vom [I][B]out/application/views/azure/tpl/widget/sidebar/categorytree.tpl[/B][/I] einfach mit dieser Ersetzen:


[{oxscript include="js/widgets/oxtopmenu.js" priority=10 }]
[{oxscript add="$('#navigation').oxTopMenu();"}]
[{oxstyle include="css/libs/superfish.css"}]
[{assign var="homeSelected" value="false"}]
[{if $oViewConf->getTopActionClassName() == 'start'}]
    [{assign var="homeSelected" value="true"}]
[{/if}]
[{assign var="oxcmp_categories" value=$oxcmp_categories }]
<div class="categoryBox">
    <ul class="tree" id="tree">
    <li [{if $homeSelected == 'true' }]class="current"[{/if}]><a [{if $homeSelected == 'true'}]class="current"[{/if}] href="[{$oViewConf->getHomeLink()}]">[{oxmultilang ident="TOP_CATEGORIES_HOME"}]</a></li>

    [{assign var="iAllCatCount" value=$oxcmp_categories|count }]
    [{if $iAllCatCount > $oView->getTopNavigationCatCnt() }]
        [{assign var="bHasMore" value="true"}]
        [{assign var="iCatCnt" value="1"}]
    [{else}]
        [{assign var="bHasMore" value="false"}]
        [{assign var="iCatCnt" value="0"}]
    [{/if}]

    [{foreach from=$oxcmp_categories item=ocat key=catkey name=root}]
      [{if $ocat->getIsVisible() }]
        [{foreach from=$ocat->getContentCats() item=oTopCont name=MoreTopCms}]
            [{assign var="iCatCnt" value=$iCatCnt+1 }]
            [{assign var="iAllCatCount" value=$iAllCatCount+1 }]
            [{if !$bHasMore && ($iCatCnt >= $oView->getTopNavigationCatCnt()) }]
                 [{assign var="bHasMore" value="true"}]
                 [{assign var="iCatCnt" value=$iCatCnt+1}]
            [{/if}]

            [{if $iCatCnt <= $oView->getTopNavigationCatCnt()}]
                <li><a href="[{$oTopCont->getLink()}]">[{$oTopCont->oxcontents__oxtitle->value}]</a></li>
            [{else}]
                [{capture append="moreLinks"}]
                    <li><a href="[{$oTopCont->getLink()}]">[{$oTopCont->oxcontents__oxtitle->value}]</a></li>
                [{/capture}]
            [{/if}]
        [{/foreach}]

        [{assign var="iCatCnt" value=$iCatCnt+1 }]
        [{if !$bHasMore && ($iCatCnt >= $oView->getTopNavigationCatCnt()) }]
                 [{assign var="bHasMore" value="true"}]
                 [{assign var="iCatCnt" value=$iCatCnt+1}]
        [{/if}]
        [{if $iCatCnt <= $oView->getTopNavigationCatCnt()}]
            <li [{if $homeSelected == 'false' && $ocat->expanded}]class="current"[{/if}]>
                <a  [{if $homeSelected == 'false' && $ocat->expanded}]class="current"[{/if}] href="[{$ocat->getLink()}]">[{$ocat->oxcategories__oxtitle->value}][{ if $oView->showCategoryArticlesCount() && ($ocat->getNrOfArticles() > 0) }] ([{$ocat->getNrOfArticles()}])[{/if}]</a>
                [{if $ocat->getSubCats()}]
                    <ul>
                    [{foreach from=$ocat->getSubCats() item=osubcat key=subcatkey name=SubCat}]
                        [{if $osubcat->getIsVisible() }]
                            [{foreach from=$osubcat->getContentCats() item=ocont name=MoreCms}]
                                <li><a href="[{$ocont->getLink()}]">[{$ocont->oxcontents__oxtitle->value}]</a></li>
                            [{/foreach}]
                            [{if $osubcat->getIsVisible() }]
                                <li [{if $homeSelected == 'false' && $osubcat->expanded}]class="current"[{/if}] ><a [{if $homeSelected == 'false' && $osubcat->expanded}]class="current"[{/if}] href="[{$osubcat->getLink()}]">[{$osubcat->oxcategories__oxtitle->value}] [{ if $oView->showCategoryArticlesCount() && ($osubcat->getNrOfArticles() > 0)}] ([{$osubcat->getNrOfArticles()}])[{/if}]</a></li>
                            [{/if}]
                        [{/if}]
                    [{/foreach}]
                    </ul>
                [{/if}]
            </li>
        [{else}]
            [{capture append="moreLinks"}]
               <li [{if $homeSelected == 'false' && $ocat->expanded}]class="current"[{/if}]>
                    <a href="[{$ocat->getLink()}]">[{$ocat->oxcategories__oxtitle->value}][{ if $oView->showCategoryArticlesCount() && ($ocat->getNrOfArticles() > 0)}] ([{$ocat->getNrOfArticles()}])[{/if}]</a>
               </li>
            [{/capture}]
        [{/if}]
      [{/if}]
    [{/foreach}]
    [{if $iAllCatCount > $oView->getTopNavigationCatCnt()}]
        <li>
            [{assign var="_catMoreUrl" value=$oView->getCatMoreUrl()}]
            <a href="[{ oxgetseourl ident="`$_catMoreUrl`&cl=alist" }]">[{ oxmultilang ident="TOP_CATEGORIES_MORE" }]</a>
            <ul>
                [{foreach from=$moreLinks item=link}]
                   [{$link}]
                [{/foreach}]
            </ul>
        </li>
    [{/if}]
    </ul>
    [{if $oView->showTags() }]
         [{oxid_include_widget cl="oxwTagCloud" nocookie=1 noscript=1 }]
    [{/if}]
</div>
[{oxscript widget=$oView->getClassName()}]
[{oxstyle widget=$oView->getClassName()}]

Grüße
Rafig

Hallo Rafig,

das ist ja super, das Du so schnell reagierst. Vielen Dank. Das ist fast das was ich meinte, nur es sollten wirklich nur die Hauptkategorien angezeigt werden, jetzt werden auch die Unterkategorien mit angezeigt, da ist dann ein bisserl unübersichtlich.

Ich werd mal schauen o ich das hinkriege, glaube aber nicht so ganz daran bei der gaballten Ladung an Code :wink:

Hab mir mal Deine Templates und Deinen Filter angeschaut, ich Denke da kommen wir in Kürze auch noch ins Geschäft, macht wirklich einen guten Eindruck.

Grüße,

André

Hi André,

im Forum gibts bereits die von dir gewünschte Lösung: Und zwar hier <-Klick

So werden erstmal nur die Hauptkategorien angezeigt. [B]Wenn man auf eine Hauptkategorie drauf klickt, öffnen sich die Unterkategorien dieser Hauptkategorie automatisch darunter.[/B]

Den letzten Abschnitt muss man allerdings etwas abändern, da du Shopversion 4.7 einsetzt.
Der gesamte Code sieht dann folgendermaßen aus (einfach den vorhandenen Code der application\views\azure pl\widget\sidebar\categorytree.tpl ersetzen):


<div class="categoryBox">
    <ul class="tree" id="tree">
    [{assign var="categories" value=$oxcmp_categories}]
    [{defun name="tree" categories=$categories}]
        [{assign var="deepLevel" value=$deepLevel+1}]
        [{assign var="oContentCat" value=$oView->getContentCategory() }]
        [{foreach from=$categories item=_cat}]
            [{if $_cat->getIsVisible() }]
                [{* CMS category *}]
                [{if $_cat->getContentCats() && $deepLevel > 1 }]
                    [{foreach from=$_cat->getContentCats() item=_oCont}]
                    <li class="[{if $oContentCat && $oContentCat->getId()==$_oCont->getId() }] active [{else}] end [{/if}]" >
                        <a href="[{$_oCont->getLink()}]"><i></i>[{ $_oCont->oxcontents__oxtitle->value }]</a>
                    </li>
                    [{/foreach}]
                [{/if }]
                [{* subcategories *}]
                <li class="[{if !$oContentCat && $act && $act->getId()==$_cat->getId() }]active[{elseif $_cat->expanded}]exp[{/if}][{if !$_cat->hasVisibleSubCats}] end[{/if}]">
                    <a href="[{$_cat->getLink()}]"><i></i>[{$_cat->oxcategories__oxtitle->value}] [{ if $oView->showCategoryArticlesCount() && ($_cat->getNrOfArticles() > 0) }] ([{$_cat->getNrOfArticles()}])[{/if}]</a>
                    [{if $_cat->getSubCats() && $_cat->expanded}]
                        <ul>[{fun name="tree" categories=$_cat->getSubCats() }]</ul>
                    [{/if}]
                </li>
            [{/if}]
        [{/foreach}]
    [{/defun}]
    </ul>
    [{if $oView->showTags() }]
         [{oxid_include_widget cl="oxwTagCloud" nocookie=1 noscript=1 }]
    [{/if}]
</div>

Hallo Andre,
hier wie Du Ihn haben wolltest. Ich habe jetzt vorsichtshalber Unterkategorien NUR Auskommentiert, vlt. brauchst du die später:


[{oxscript include="js/widgets/oxtopmenu.js" priority=10 }]
[{oxscript add="$('#navigation').oxTopMenu();"}]
[{oxstyle include="css/libs/superfish.css"}]
[{assign var="homeSelected" value="false"}]
[{if $oViewConf->getTopActionClassName() == 'start'}]
    [{assign var="homeSelected" value="true"}]
[{/if}]
[{assign var="oxcmp_categories" value=$oxcmp_categories }]
<div class="categoryBox">
    <ul class="tree" id="tree">
    <li [{if $homeSelected == 'true' }]class="current"[{/if}]><a [{if $homeSelected == 'true'}]class="current"[{/if}] href="[{$oViewConf->getHomeLink()}]">[{oxmultilang ident="TOP_CATEGORIES_HOME"}]</a></li>

    [{assign var="iAllCatCount" value=$oxcmp_categories|count }]
    [{if $iAllCatCount > $oView->getTopNavigationCatCnt() }]
        [{assign var="bHasMore" value="true"}]
        [{assign var="iCatCnt" value="1"}]
    [{else}]
        [{assign var="bHasMore" value="false"}]
        [{assign var="iCatCnt" value="0"}]
    [{/if}]

    [{foreach from=$oxcmp_categories item=ocat key=catkey name=root}]
      [{if $ocat->getIsVisible() }]
        [{foreach from=$ocat->getContentCats() item=oTopCont name=MoreTopCms}]
            [{assign var="iCatCnt" value=$iCatCnt+1 }]
            [{assign var="iAllCatCount" value=$iAllCatCount+1 }]
            [{if !$bHasMore && ($iCatCnt >= $oView->getTopNavigationCatCnt()) }]
                 [{assign var="bHasMore" value="true"}]
                 [{assign var="iCatCnt" value=$iCatCnt+1}]
            [{/if}]

            [{if $iCatCnt <= $oView->getTopNavigationCatCnt()}]
                <li><a href="[{$oTopCont->getLink()}]">[{$oTopCont->oxcontents__oxtitle->value}]</a></li>
            [{else}]
                [{capture append="moreLinks"}]
                    <li><a href="[{$oTopCont->getLink()}]">[{$oTopCont->oxcontents__oxtitle->value}]</a></li>
                [{/capture}]
            [{/if}]
        [{/foreach}]

        [{assign var="iCatCnt" value=$iCatCnt+1 }]
        [{if !$bHasMore && ($iCatCnt >= $oView->getTopNavigationCatCnt()) }]
                 [{assign var="bHasMore" value="true"}]
                 [{assign var="iCatCnt" value=$iCatCnt+1}]
        [{/if}]
        [{if $iCatCnt <= $oView->getTopNavigationCatCnt()}]
            <li [{if $homeSelected == 'false' && $ocat->expanded}]class="current"[{/if}]>
                <a  [{if $homeSelected == 'false' && $ocat->expanded}]class="current"[{/if}] href="[{$ocat->getLink()}]">[{$ocat->oxcategories__oxtitle->value}][{ if $oView->showCategoryArticlesCount() && ($ocat->getNrOfArticles() > 0) }] ([{$ocat->getNrOfArticles()}])[{/if}]</a>
                [{*[{if $ocat->getSubCats()}]
                    <ul>
                    [{foreach from=$ocat->getSubCats() item=osubcat key=subcatkey name=SubCat}]
                        [{if $osubcat->getIsVisible() }]
                            [{foreach from=$osubcat->getContentCats() item=ocont name=MoreCms}]
                                <li><a href="[{$ocont->getLink()}]">[{$ocont->oxcontents__oxtitle->value}]</a></li>
                            [{/foreach}]
                            [{if $osubcat->getIsVisible() }]
                                <li [{if $homeSelected == 'false' && $osubcat->expanded}]class="current"[{/if}] ><a [{if $homeSelected == 'false' && $osubcat->expanded}]class="current"[{/if}] href="[{$osubcat->getLink()}]">[{$osubcat->oxcategories__oxtitle->value}] [{ if $oView->showCategoryArticlesCount() && ($osubcat->getNrOfArticles() > 0)}] ([{$osubcat->getNrOfArticles()}])[{/if}]</a></li>
                            [{/if}]
                        [{/if}]
                    [{/foreach}]
                    </ul>
                [{/if}]*}]
            </li>
        [{else}]
            [{capture append="moreLinks"}]
               <li [{if $homeSelected == 'false' && $ocat->expanded}]class="current"[{/if}]>
                    <a href="[{$ocat->getLink()}]">[{$ocat->oxcategories__oxtitle->value}][{ if $oView->showCategoryArticlesCount() && ($ocat->getNrOfArticles() > 0)}] ([{$ocat->getNrOfArticles()}])[{/if}]</a>
               </li>
            [{/capture}]
        [{/if}]
      [{/if}]
    [{/foreach}]
    [{if $iAllCatCount > $oView->getTopNavigationCatCnt()}]
        <li>
            [{assign var="_catMoreUrl" value=$oView->getCatMoreUrl()}]
            <a href="[{ oxgetseourl ident="`$_catMoreUrl`&cl=alist" }]">[{ oxmultilang ident="TOP_CATEGORIES_MORE" }]</a>
            <ul>
                [{foreach from=$moreLinks item=link}]
                   [{$link}]
                [{/foreach}]
            </ul>
        </li>
    [{/if}]
    </ul>
    [{if $oView->showTags() }]
         [{oxid_include_widget cl="oxwTagCloud" nocookie=1 noscript=1 }]
    [{/if}]
</div>
[{oxscript widget=$oView->getClassName()}]
[{oxstyle widget=$oView->getClassName()}]  

Grüße
Rafig

Hi André,

im Forum gibts bereits die von dir gewünschte Lösung: Und zwar hier <-Klick

So werden erstmal nur die Hauptkategorien angezeigt. [B]Wenn man auf eine Hauptkategorie drauf klickt, öffnen sich die Unterkategorien dieser Hauptkategorie automatisch darunter.[/B]

Den letzten Abschnitt muss man allerdings etwas abändern, da du Shopversion 4.7 einsetzt.
Der gesamte Code sieht dann folgendermaßen aus (einfach den vorhandenen Code der application\views\azure pl\widget\sidebar\categorytree.tpl ersetzen):


<div class="categoryBox">
    <ul class="tree" id="tree">
    [{assign var="categories" value=$oxcmp_categories}]
    [{defun name="tree" categories=$categories}]
        [{assign var="deepLevel" value=$deepLevel+1}]
        [{assign var="oContentCat" value=$oView->getContentCategory() }]
        [{foreach from=$categories item=_cat}]
            [{if $_cat->getIsVisible() }]
                [{* CMS category *}]
                [{if $_cat->getContentCats() && $deepLevel > 1 }]
                    [{foreach from=$_cat->getContentCats() item=_oCont}]
                    <li class="[{if $oContentCat && $oContentCat->getId()==$_oCont->getId() }] active [{else}] end [{/if}]" >
                        <a href="[{$_oCont->getLink()}]"><i></i>[{ $_oCont->oxcontents__oxtitle->value }]</a>
                    </li>
                    [{/foreach}]
                [{/if }]
                [{* subcategories *}]
                <li class="[{if !$oContentCat && $act && $act->getId()==$_cat->getId() }]active[{elseif $_cat->expanded}]exp[{/if}][{if !$_cat->hasVisibleSubCats}] end[{/if}]">
                    <a href="[{$_cat->getLink()}]"><i></i>[{$_cat->oxcategories__oxtitle->value}] [{ if $oView->showCategoryArticlesCount() && ($_cat->getNrOfArticles() > 0) }] ([{$_cat->getNrOfArticles()}])[{/if}]</a>
                    [{if $_cat->getSubCats() && $_cat->expanded}]
                        <ul>[{fun name="tree" categories=$_cat->getSubCats() }]</ul>
                    [{/if}]
                </li>
            [{/if}]
        [{/foreach}]
    [{/defun}]
    </ul>
    [{if $oView->showTags() }]
         [{oxid_include_widget cl="oxwTagCloud" nocookie=1 noscript=1 }]
    [{/if}]
</div>

Hey,

vielen Dank, das ist super. Klappt alles. Dir Nickname auch Danke.

Dann wünsche ich mal eine gute Nacht.

Kann man hier mit der Lösung von nickname auch die Produkte der aktiven Kategorie anzeigen? Also in dem Baum?

LG

Gibt es die Möglichkeit in 4.7. die Produkte der aktiven Kategorie in der Sidebar anzuzeigen?
Bsp.:

Kategorie1 (aktiv)

  • Produkt1
  • Produkt2
  • Produkt3
    Kategorie2
    Kategorie3
    Kategorie4

[QUOTE=schmood;140352]Gibt es die Möglichkeit in 4.7. die Produkte der aktiven Kategorie in der Sidebar anzuzeigen?
Bsp.:

Kategorie1 (aktiv)

  • Produkt1
  • Produkt2
  • Produkt3
    Kategorie2
    Kategorie3
    Kategorie4[/QUOTE]

In page/list/list.tpl im [{if $oView->getArticleList()|@count > 0}] werden ja die tpl für die Produkte geladen, wie wärs wenn du sie in mit einem Capture abfängst welches du dann als zweites <ul>-Element in deinen Categorytree laden lässt?