Suche |
Leere Kategorien ausblendenAus xtc-wiki(Quelle : www.extratore.de)
[Bearbeiten] Nur Kategorien mit aktiven Artikeln anzeigen für xt:CDie Anpassungen wurden von eXtraStore GbR entwickelt und sind zur nicht kommerziellen Weitergabe gedacht. Es wird keine Haftung übernommen, bitte machen Sie vor allen Anpassungen eine Sicherheitskopie der veränderten Dateien und ein Backup der Datenbank. Die gesamten Anpassungen beschränken sich auf vier Schritte. Bitte führen Sie diese gewissenhaft nacheinander aus. Falls Sie Ideen, eine Weiterentwicklung des Codes vorgenommen oder Probleme bei der Implementierung haben informieren Sie uns doch bitte. Wir sind für Sie unter der Website www.extrastore.de und e-Mail info@extrastore.de erreichbar. Schritt 1: Führen Sie folgenden MySql-Befehl in Ihrer Shopdatenbank aus: ALTER TABLE 'products_to_categories' ADD INDEX ( 'categories_id' ) Wenn Sie kein Datenimportmodul von uns besitzen, führen Sie noch bitte diesen MySql-Befehl aus: ALTER TABLE 'products' ADD INDEX ( 'products_model' ) Die Indizierung sorgt dafür, dass eine Art Inhaltsverzeichnis angelegt wird und somit der einzelne Datensatz schneller gefunden wird. Schritt 2: Suchen Sie diese Zeile: function xtc_count_products_in_category($category_id,
$include_inactive = false) {
und verändern Sie die Zeile wie folgt: function xtc_count_products_in_category($category_id,
$include_inactive = false, $min = false) {
Suchen Sie diese Zeile: $products_count += $products['total']; Schreiben Sie darunter: //Anpassung: Abfrage der Unterkategorien überspringen sofern bereits min. 1 Artikel gefunden wurde if(($min == true) AND ($products_count > 0)) return $products_count; // Speichern Sie die Datei und laden Sie diese wieder in das ursprüngliche Verzeichnis. Schritt 3: Suchen Sie folgende Schleife: while ($categories = xtc_db_fetch_array($categories_query, true))
{ .... }
Fügen Sie am Anfang (nach der { ) folgendes ein: if (xtc_count_products_in_category($categories['categories_id'], false, true) > 0) {
Damit das Ganze funktioniert muss nun am Ende der while-Schlefe noch eine Klammer gesetzt werden. Wichtig ist diese nicht zu vergessen! Am Ende muss das Ganze so aussehen: while ($categories = xtc_db_fetch_array($categories_query, true)) { if(xtc_count_products_in_category($categories['categories_id'], false, true) > 0) { $rows ++; $cPath_new = xtc_category_link($categories['categories_id'], $categories['categories_name']); $width = (int) (100 / MAX_DISPLAY_CATEGORIES_PER_ROW).'%'; $image = ''; if ($categories['categories_image'] != '') { $image = DIR_WS_IMAGES.'categories/'. $categories['categories_image']; } $categories_content[] = array ( 'CATEGORIES_NAME' => $categories['categories_name'], 'CATEGORIES_HEADING_TITLE' => $categories['categories_heading_title'], 'CATEGORIES_IMAGE' => $image, 'CATEGORIES_LINK' => xtc_href_link(FILENAME_DEFAULT, $cPath_new), 'CATEGORIES_DESCRIPTION' => $categories['categories_description']); } } // <- Nicht die Klammer vergessen !!!!
Schritt 4: Innerhalb der Funktion suchen Sie: global $foo, $categories_string, $id; Fügen Sie darunter die if-Abfrage ein: if(xtc_count_products_in_category($counter, false, true) > 0) {
Es muss jetzt noch die Klammer geschlossen werden, suchen Sie dies am Ende der Datei: if (SHOW_COUNTS == 'true') { $products_in_category = xtc_count_products_in_category($counter); if ($products_in_category > 0) { $categories_string .= ' (' . $products_in_category . ')'; } } Und setzen Sie nach den zwei geschleiften Klammern noch eine Klammer ein. Speichern Sie die Datei und laden Sie diese wieder in das ursprüngliche Verzeichnis. Sie haben alle Schritte durchgeführt und sollten bei Erfolg nur noch Kategorien im Frontend sehen bei denen mindestens ein aktiver Artikel vorhanden ist. [Bearbeiten] Weblinks |
![[Hauptseite]](/skins/common/images/wiki.png)