Quantcast
Channel: OXID Community Forum
Viewing all articles
Browse latest Browse all 6951

Unterkategorien bei Klick auf Hauptkategorie anzeigen

$
0
0
Hallo,

ich habe die Kategorien aus dem Header in die Sidebar verschoben, da das für unsere Website passender erscheint. Das sieht momentan so aus:



Geht man nun in eine Kategorie oder eine Detailseite, sieht das so aus:




Zur Dokumentation wie ich das erreicht habe, hier die Änderungen im eigenen Theme:

1. Category Tree soll auch auf der Startseite angezeigt werden:
Code:

/application/views/CUSTOM_THEME/tpl/layout/sidebar.tpl
PHP Code:

[{block name="sidebar_categoriestree"}]
  [{if 
$oView->getClassName() != 'start' && $oView->getClassName() != 'compare'}]
    ... 

wurde zu
PHP Code:

[{block name="sidebar_categoriestree"}]
  [{if 
$oView->getClassName() != 'compare'}]
    ... 


2. Im Category Tree sollen immer alle Kategorien angezeigt werden, nicht nur die aktuelle Hauptkategorie:
Code:

/application/views/CUSTOM_THEME/tpl/widget/sidebar/categorytree.tpl
PHP Code:

[{assign var="categories" value=$oxcmp_categories->getClickRoot() }] 

wurde zu
PHP Code:

[{assign var="categories" value=$oxcmp_categories}] 

In der gleichen Template-Datei bauen wir gleich noch ein, dass ganz oben im Category Tree die Startseite des Shops verlinkt ist und diese auch hervorgehoben ist, wenn man dort ist:
PHP Code:

<ul class="tree" id="tree"

wird um den ersten Listeneintrag ("Startseite") ergänzt:
PHP Code:

<ul class="tree" id="tree">
    <
li [{if $oViewConf->getTopActionClassName() == 'start' }]class="active"[{/if}]><a href="[{$oViewConf->getHomeLink()}]">[{oxmultilang ident="HOME"}]</a></li

3. Category Tree aus Header entfernen:
Code:

/application/views/CUSTOM_THEME/tpl/widget/header/categorylist.tpl
PHP Code:

<ul id="navigation" class="sf-menu">
...
</
ul

Den Inhalt dieser Liste einfach auskommentieren:
PHP Code:

<ul id="navigation" class="sf-menu">
[{*
...
*}]
</
ul

Wenn ich in /application/views/CUSTOM_THEME/tpl/layout/header.tpl die Navigation ausgeknipst habe, hat es mir das Layout zerpflückt, daher die etwas "unelegantere" Methode mit dem Auskommentieren.


In jedem Fall sind die Änderungen minimal und update-sicher. Dass der Category Tree auf der Startseite rechts und überall sonst links ist, finde ich eigentlich sehr ansehnlich: Die Startseite rückt klar die aktuellen Angebote in den Mittelpunkt, die Navigation ist dennoch leicht zu finden.

Jetzt mein eigentliches Anliegen:
Ich hätte gerne, dass im Kategoriebaum die Unterkategorien "aufklappen", wenn man auf die Hauptkategorie klickt.

Im Moment ist es so, dass man direkt in die Hauptkategorie springt, wenn man darauf klickt und dort wird dann die aufgeklappten Unterkategorie(n) angezeigt.

Das ist wohl ziemlich sicher einfaches CSS, aber da habe ich schlicht und ergreifend nicht die leiseste Ahnung, was ich da machen muss. :( :confused:

Ich vermute mal, dass das in der categorytree.tpl eingebaut werden muss. Die sieht bei mir nun so aus:
Code:

/application/views/CUSTOM_THEME/tpl/widget/sidebar/categorytree.tpl
PHP Code:

[{if $oxcmp_categories }]
    [{
assign var="categories" value=$oxcmp_categories}]
    [{
assign var="act" value=$oxcmp_categories->getClickCat() }]
    [{if 
$categories }]
        [{
assign var="deepLevel" value=$oView->getDeepLevel()}]
        <
div class="categoryBox">
            <
ul class="tree" id="tree">
            <
li [{if $oViewConf->getTopActionClassName() == 'start' }]class="active"[{/if}]><a href="[{$oViewConf->getHomeLink()}]">[{oxmultilang ident="HOME"}]</a></li>

            [{
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 }]
                            [{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><span></span></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=}]
            [{/if}]
        </
div>
    [{/if}]
[{/if}] 


Wie bekomme ich da rein, dass die Unterkategorien aufgeklappt angezeigt werden, wenn man auf die Hauptkategorie klickt? Ich bin für jede Anregung/Hilfe dankbar!

Falls man den aktuellen Stand anklicken möchte: https://elektrotechnik-pflaesterer.de/shop

Viewing all articles
Browse latest Browse all 6951

Trending Articles