• Diejenige, die nur ein Paar Kategorien im Shop haben, können ruhig dieses Thema auslassen.

    Im Shop etwa 10000 Kategorien insgesamt. templates/v2next-boot-flat/source/boxes/cat_nav.ph wird bei relativ größerer Kategorienanzahl einfach Perfomance-Killer. Mit der Kategorien im Navigationsbereich ist es mir nie gelungen, den Antwort von Shop zu bekommen. Einfach down.

    1. line 324 in xtc_show_category_superfish method

    Code
    // Unterkategorien durchsteppen
    foreach ($foo as $key => $value) {
        if ($foo[$key]['parent'] == $cid) {
            ...
            xtc_show_category_superfish($key, $level + 1, $foo, ($level != 0 ? $cpath . $cid . '_' : ''));


    Erstens, im Falle, dass alle Kategorien irgendeinen Parent haben (mein Fall), wird xtc_show_category_superfish für jede Unterkategorie rekursiv aufgerufen. Gesamte Iterationenanzahl liegt etwa bei 10000 * 10000 = 100000000.
    Zweitens, man hat bereits ein Array $foo[$cat_id]['subcats'], wo alle Unterkategorien aufgelistet sind.

    2. line 494 in initCategoryLink method

    Code
    $CategoryLink = xtc_href_link(FILENAME_DEFAULT, xtc_category_link(intval($CatID), $CatName));


    Beim Aufruf von xtc_category_link wird intern die Methode xtc_get_parent_categories aufgerufen. Da ist der Code davon:


    Je nach Tiefe von Kategorienbaum kommen Zehntausende Zugriffe auf die Datenbank.

    Es gibt bestimmt noch weitere Punkte. Keine Lust zu analysieren. Das Prinzip von Darstellen der Kategorien im Navigationsbereich ist einfach falsch. Wozu muss man ALLE Kategorien zum User drüber schaufeln? To Admin: Werfe einen Blick in Kategorienbox. Dort ist es richtig. Schlüsselwort: "on demand" und für Navigationsbereich zusäzlich noch "ajax".

  • An anderer Stelle schon beantwortet. Bei 10.000 Kategorien mach die cat_nav wirklich keinen Sinn :) Da müssen wir noch mal langfristig nach Alternativen ausschau halten, momentan hat erst mal das Varianten System oberste Prio.

    <p>Wir geben nur Anregungen und Hilfestellung auf Basis unserer Erfahrung, keine Rechtshilfe!<br>\m/('_')\m/</p>