[1.6.15] Eigene Kategorie Navigation basteln

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
drkey
Beiträge: 12
Registriert: 12.02.2009, 23:08
Kontaktdaten:

[1.6.15] Eigene Kategorie Navigation basteln

Beitrag von drkey »

Hallo Leute, ich habe da mal eine Frage zu den Smarty.Tags.

Ich würde gerne eine Horizontale Navigation bauen, in der die Parent Kategorien aufgelistet werden. Über Drop-Down sollen die Childs ausgegeben werden, allerdings kriege ich es nicht hin, dass er die Childs komplett zu den einzelnen Parents lädt. Hier mal ein Auszug aus dem was ich gemacht habe...

Code: Alles auswählen

<li>
<!-- Hier wird der Parent geladen //-->
{if $category.parent == 0}
<a href="{if $category.parent == 0}{html_href_link modul=$modules.main file=$filename.shop cPath=$category.path}{/if}">
{if $category.parent == 0}
{$category.name}
{else}
{/if}
</a>
{else}
{/if}

Code: Alles auswählen

<!-- Hier sollen die Childs zum Parent geladen werden //-->
{if $category.parent != 0}
<ul>
{foreach item=category from=$categories_contents}
{if $category.parent != 0}
<li><a href="#">
{$category.name}
</a>
</li>
{else}
{/if}
{/foreach}
</ul>
{else}
{/if}
</li>
Womit kann ich die Childs zum Parent laden?

beste Grüße,
Dennis
r23
Beiträge: 2674
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

ich vermute, das für die Horizontale Navigation im dem Array $aCategories die notwenigen Informationen fehlen.

Dies kann man überpüfen, in dem man unter
~/shop/includes/blocks/block_categories.php
sich den Inhalt von $aCategories anzeigen lässt.

Code: Alles auswählen

echo '<pre>';
print_r ($aCategories);
echo '</pre>';
Es sollte als Ergbnis etwa

Code: Alles auswählen

Array
(
    [0] => Array
        (
            [counter] => 1
            [isSelected] => 0
            [isHasSubCategories] => 0
            [name] =>
            [parent] => 0
            [level] => 0
            [path] => 1
            [next_id] => 4
        )

    [1] => Array
        (
            [counter] => 4
            [isSelected] => 0
            [isHasSubCategories] => 0
            [name] =>
            [parent] => 0
            [level] => 0
            [path] => 4
            [next_id] => 3
        )

    [2] => Array
        (
            [counter] => 3
            [isSelected] => 0
            [isHasSubCategories] => 0
            [name] =>
            [parent] => 0
            [level] => 0
            [path] => 3
            [next_id] => 2
        )

    [3] => Array
        (
            [counter] => 2
            [isSelected] => 1
            [isHasSubCategories] => 1
            [name] =>
            [parent] => 0
            [level] => 0
            [path] => 2
            [next_id] => 5
        )

    [4] => Array
        (
            [counter] => 5
            [isSelected] => 0
            [isHasSubCategories] => 0
            [name] => 
            [parent] => 2
            [level] => 1
            [path] => 2_5
            [next_id] => 
        )

)



geben.

Die Unterkategiern (child?) von nur der activen (

Code: Alles auswählen

[isSelected] => 1
wird hier angezeigt.

wenn man alleWarengruppen oder katergorien angezeigt haben möchte, kann man sich mit der
PHP Klasse

Code: Alles auswählen

include OOS_CLASSES . 'class_category_tree.php';
geladen über das Pluign
oos_event_category_path

beschäftigen.

Die Klasse steht normalerweise auf jeder Seite zur Verfügung ;) wird aber nur für
die Sitemap zurzeit verwendet.

~/shop/includes/pages/info/sitemap.php

d.h. ich würde
~/shop/includes/oos_main.php

um

Code: Alles auswählen

  $oCategory = new oosCategoryTree();
  $oCategory->setShowCategoryProductCount(false);
// usw.
erweitern und mir

das Ergebnis von

Code: Alles auswählen

 $oCategory->buildTree();
oder

Code: Alles auswählen

$oCategory->getTree();
an meine wünsche anpassen.

Hoffe die Antwort hilft weiter

r23
Antworten