Managed Server
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Modul für "leere Kategorien ausblenden"

    CHESSBASE

    • Schreiberling
    • Beiträge: 264
    • Geschlecht:
    Modul für "leere Kategorien ausblenden"
    am: 27. November 2019, 11:06:08
    Nun habe ich zwar viele Hinweise, Links etc. zu dem o.g. Betreff gefunden, aber immer wieder geht das auf das Jahr 2010 zurück.

    Aber auch ein Hinweis zu einem Modul ist dabei. Doch ich finde das Modul im Backend nicht. Eigentlich wäre es doch sinnvoll, wenn man irgendwo im Backend einfach auf "leere Kategorien einblenden/ausblenden" klicken könnte. Oder finde ich das nur nicht?

    Gruß
    CHESSBASE

    Linkback: https://www.modified-shop.org/forum/index.php?topic=40598.0

    Timm

    • Fördermitglied
    • Beiträge: 6.165
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #1 am: 27. November 2019, 11:14:16
    Du könntest vorerst bei Kategorien ohne Inhalt rechts daneben unter Status auf den roten Punkt klicken, dann sind die deaktiviert.

    Wenn du irgendwo einen Link zu einem Modul gefunden hast, solltest du den hier auch posten. Es wird keiner für dich auf die Suche gehen.

    Gruß Timm

    karsta.de

    • Experte
    • Beiträge: 3.048
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #2 am: 27. November 2019, 11:37:04
    Dazu musst du die Datei templates/DEIN_TEMPL/source/inc/xtc_show_category.inc.php anpassen.
    Was auf jeden Fall funktioniert ist der Vorschlag von hpzeller: Leere Kategorien ausblenden

    Ich habe das letztens gerade in einem Shop ähnlich umgesetzt.
    In der templates/DEIN_TEMPL/config/config.php einen zusätzlichen Eintrag hinzugefügt:
    Code: PHP  [Auswählen]
    define('SHOW_CATEGORIES_NOT_EMPTY', 'true'); //zeigt die Kategorie nur, wenn auch Artikel vorhanden sind

    Und dann die Änderungen in der templates/DEIN_TEMPL/source/inc/xtc_show_category.inc.php durchgeführt.
    Suche:
    Code: PHP  [Auswählen]
        //BOF +++ Kategorie Linkerstellung +++  
        if (trim($categories_string == '')) $categories_string = "\n"; //Zeilenschaltung Codedarstellung  
        $categories_string .= $ul; //UL LI Versschachtelung
        $categories_string .= $tab; //Tabulator Codedarstellung
        $categories_string .= '<li class="level'.$level.$cat_active.$cat_active_parent.'">';
        $categories_string .= '<a href="'.$foo[$counter]['link'].'" title="'.str_replace(array('"', "'"), array('&quot;', '&apos;'), $foo[$counter]['name']).'">';
        $categories_string .= $foo[$counter]['name'];
        //Anzeige Anzahl der Produkte in Kategorie, für bessere Performance im Admin deaktivieren
        if (SHOW_COUNTS == 'true') {
          $products_in_category = xtc_count_products_in_category($counter);
          if ($products_in_category > 0) {
            $categories_string .= '&nbsp;(' . $products_in_category . ')';
          }
        }  
        $categories_string .= '</a></li>';
        $categories_string .= "\n"; //Zeilenschaltung Codedarstellung  
        //EOF  +++ Kategorie Linkerstellung +++
     

    Ersetze:
    Code: PHP  [Auswählen]
        //BOF +++ Kategorie Linkerstellung +++  
        if (trim($categories_string == '')) $categories_string = "\n"; //Zeilenschaltung Codedarstellung  
        $categories_string .= $ul; //UL LI Versschachtelung
        $categories_string .= $tab; //Tabulator Codedarstellung
        if (SHOW_CATEGORIES_NOT_EMPTY == 'true') {
          $products_in_category = xtc_count_products_in_category($counter);  
          if ($products_in_category > 0) {    
            $categories_string .= '<li class="level'.$level.$cat_active.$cat_active_parent.'">';
          } else {
            $categories_string .= '<li class="level'.$level.$cat_active.$cat_active_parent.' empty">';
          }
        } else {
          $categories_string .= '<li class="level'.$level.$cat_active.$cat_active_parent.'">';
        }
            $categories_string .= '<a href="'.$foo[$counter]['link'].'" title="'.str_replace(array('"', "'"), array('&quot;', '&apos;'), $foo[$counter]['name']).'">';
        $categories_string .= $foo[$counter]['name'];

        //Anzeige Anzahl der Produkte in Kategorie, für bessere Performance im Admin deaktivieren
        if (SHOW_COUNTS == 'true') {
          if ($products_in_category > 0) {
            $categories_string .= '&nbsp;(' . $products_in_category . ')';
          }
        }
        $categories_string .= '</a></li>';
        $categories_string .= "\n"; //Zeilenschaltung Codedarstellung  
        //EOF  +++ Kategorie Linkerstellung +++
     

    In deiner Stylesheetdatei noch den zusätzlichen Eintrag für empty hinzufügen.
    Code: CSS  [Auswählen]
    .empty{display:none;}

    BG Karsta

    CHESSBASE

    • Schreiberling
    • Beiträge: 264
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #3 am: 24. April 2020, 12:03:10
    @Karsta! Besten Dank!
    Sieht sehr erfolgsversprechend aus. Habe alle Änderungen gemacht.
    Ich hab das Bootstrap-Template. Da war komischerweise die stylesheet.css ganz leer.
    Dort habe ich dann die letzte Zeile von Dir reingepackt.
    Und die leeren Kategorien sind verschwunden.
    Einziger Nachteil ist derzeit aber, dass nun alle Kategorien aufgeklappt bleiben. Vorher konnte ich auf Verkäufe klicken und erst dann zeigten sich weitere Kategorien. Weiß Du, was da noch zu ändern wäre?
    Gruß
    CHESSBASE

    karsta.de

    • Experte
    • Beiträge: 3.048
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #4 am: 25. April 2020, 10:22:38
    Hallo CHESSBASE,

    in dem von dir verwendetetn Template sieht die templates/DEIN_TEMPL/source/inc/xtc_show_category.inc.php doch ein wenig anders aus, da kannst du die von mir geposteten Änderungen nicht einfach so übernehmen.

    Im TEMPLATE: Bootstrap4 für Shop 2.x - freies responsive Template von Karl muss das so geändert werden:

    Code: PHP  [Auswählen]
        //BOF +++ Kategorie Linkerstellung +++
        if (trim($categories_string == '')) $categories_string = "\n"; //Zeilenschaltung Codedarstellung
        if (trim($categories_string2 == '')) $categories_string2 = "\n"; //Zeilenschaltung Codedarstellung
        $categories_string .= $ul; //UL LI Versschachtelung
        $categories_string2 .= $ul2; //UL LI Versschachtelung
        $categories_string .= $tab; //Tabulator Codedarstellung
        $categories_string2 .= $tab; //Tabulator Codedarstellung
            if (SHOW_CATEGORIES_NOT_EMPTY == 'true') {
          $products_in_category = xtc_count_products_in_category($counter);  
          if ($products_in_category > 0) {    
                    $categories_string .= '<li class="nav-item level'.$level.$cat_active.$subcategories_class.'">';
                    $categories_string2 .= '<li id="li'.$foo[$counter]['id'].'" class="level'.$level.$cat_active.$subcategories_class2.'">';
          } else {
                    $categories_string .= '<li class="nav-item level'.$level.$cat_active.$subcategories_class.' empty">';
            $categories_string2 .= '<li id="li'.$foo[$counter]['id'].'" class="level'.$level.$cat_active.$subcategories_class2.' empty">';
          }
        } else {
          $categories_string .= '<li class="nav-item level'.$level.$cat_active.$subcategories_class.'">';
        }
        $categories_string .= '<a class="nav-link'.$cat_active.'" href="'.$foo[$counter]['link'].'" title="'. $foo[$counter]['name'] . '">';
        $categories_string2 .= '<a id="a'.$foo[$counter]['id'].'" class="'.$cat_active.'" href="'.$foo[$counter]['link'].'" title="'. $foo[$counter]['name'] . '" data-value="'.$foo[$counter]['id'].'">';
        $sign = '';
            for ($i = 2; $i <= $level; $i++) {
                $sign .= '&rsaquo;';
            }
        if ($sign != '') $categories_string .= $sign.' ';
        $categories_string .= $foo[$counter]['name'];
        $categories_string2 .= $foo[$counter]['name'];
        //Anzeige Anzahl der Produkte in Kategorie, für bessere Performance im Admin deaktivieren
        if (SHOW_COUNTS == 'true') {
          $products_in_category = xtc_count_products_in_category($counter);
          if ($products_in_category > 0) {
            $categories_string .= '<span class="badge badge-secondary float-right">' . $products_in_category . '</span>';
            $categories_string2 .= '<span class="badge badge-pill badge-secondary">' . $products_in_category . '</span>';
          }
        }
        $categories_string .= '</a>'.$subcategories_button.'</li>';
        $categories_string2 .= '</a></li>';
        $categories_string .= "\n"; //Zeilenschaltung Codedarstellung
        $categories_string2 .= "\n"; //Zeilenschaltung Codedarstellung
        //EOF  +++ Kategorie Linkerstellung +++
     

    BG Karsta

    CHESSBASE

    • Schreiberling
    • Beiträge: 264
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #5 am: 11. Mai 2020, 14:29:37
    Danke Karsta!
    Das hat zumindest auf der linken Seite nun sehr gut funktioniert.
    Wenn man überlegt, dass ich 15.000 Kategorien habe, sieht das so erheblich besser aus.
    Doch vielleicht hast Du ja auch eine Lösung, wie das auf der rechten Seite auch so sein kann?
    [ Für Gäste sind keine Dateianhänge sichtbar ]
    Besten Dank!
    Langsam wird die Seite. Jetzt muss ich nur noch eine Lösung finden, die Schrift zu verkleinern.
    Gruß
    CHESSBASE

    CHESSBASE

    • Schreiberling
    • Beiträge: 264
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #6 am: 12. Mai 2020, 07:09:31
    @kartaa.de: Schrift verkleinern hat mir Karl gezeigt. Links im Kategoriemenu ist nun alles perfekt. Aber wenn ich Verkäufe auf der Linken Seite klicke, erscheinen rechts tausende von Boxen mit leeren Kategorien. Habe hier zwar sogar ein Modul finden können, aber das macht rechts anscheinend gar nichts. Evtl. kennt Du ja eine Lösung auf die die Boxen auf der rechten Seite?

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #7 am: 13. Mai 2020, 00:57:21
    [...]
    Doch vielleicht hast Du ja auch eine Lösung, wie das auf der rechten Seite auch so sein kann?
    (Dateianhang Link)
    [...]

    Teste mal folgendes:
    Erstelle die Datei includes/extra/modules/categories_listing/categories_content/remove_empty_categories.php und fülle sie mit folgendem Inhalt.

    Code: PHP  [Auswählen]
    <?php

    // Leere Kategorien entfernen

      if (xtc_count_products_in_category($categories['categories_id']) < 1) array_pop($categories_content);
      if (empty($categories_content)) unset($categories_content);

    Gruss
    Hanspeter

    CHESSBASE

    • Schreiberling
    • Beiträge: 264
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #8 am: 13. Mai 2020, 05:10:35
    Hallo Hanspeter!

    Zwichenzeitlich hatte ich das Problem aber durch puren Zufall selbst lesen können. Und zwar so:

    In der ..templates/bootstrap4/module/categorie_listung/categorie_listing.html diese Zeile suchen:
    Code: PHP  [Auswählen]
    {if $module_content != '' && $TR_COLS > 0}
    und dann  einfach nur statt "> 0" macht man daraus "< 0".

    Dann sieht das Ergebnis so aus:
    Code: PHP  [Auswählen]
    {if $module_content != '' && $TR_COLS < 0}
    Da ich nicht programmieren kann, hoffe ich, dass hier nicht irgendwo anders Mist herauskommt. Aber das Ergebnis sieht gut aus!

    Deinen Lösungsvorschlag habe ich versucht, aber leider ohne Erfolg. Da ich Bootrap4 nutze, kann es aber sein, dass Deine Idee evtl. bei anderen Themes funktioniert.

    Gruß und Danke!
    CHESSBASE

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #9 am: 14. Mai 2020, 02:10:46
    [...]
    Aber auch ein Hinweis zu einem Modul ist dabei. Doch ich finde das Modul im Backend nicht. Eigentlich wäre es doch sinnvoll, wenn man irgendwo im Backend einfach auf "leere Kategorien einblenden/ausblenden" klicken könnte. Oder finde ich das nur nicht?
    [...]

    [...]
    Wenn du irgendwo einen Link zu einem Modul gefunden hast, solltest du den hier auch posten. Es wird keiner für dich auf die Suche gehen.
    [...]

    Ich glaube er ging davon aus, dass das Modul bereits im Shop integriert ist, was aber nicht der Fall ist. Der Hinweis, den er gefunden hat bzgl. eines Moduls, wird das hier sein:  MODUL: Leere Kategorien ausblenden inkl. Sitemap Ausblendung

    Grüße

    Torsten

    CHESSBASE

    • Schreiberling
    • Beiträge: 264
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #10 am: 14. Mai 2020, 10:50:55
    @Tomcraft: Du hast vollkommen Recht! Da diese Frage doch sehr häufig auftaucht und es ja auch Sinn macht, leere Kategorien nicht zu zeigen, wäre es super, wenn man im Backend einstellen könnte, ob die leeren Kategorien erscheinen sollen oder nicht.

    @hpzeller: Nun habe ich auch Deine Datei getestet und das auch bei den anderen Themes ohne Erfolg. Da passiert also bei mir nichts. Und ich habe leider nun noch etwas bei meiner o.g. Idee

    Code: PHP  [Auswählen]
    {if $module_content != '' && $TR_COLS < 0}

    festgestellt, was ich mir nicht erklären kann. Leere Kategorien werden nicht unbedingt in jedem Fall ausgeblendet.

    Hier sind sie ausgeblendet:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    In der ersten Unterkategorie auch noch und in der darunterliegenden ist die Kategoriebox zu sehen.
    Ich bekomme hier beim Bearbeiten komischerweise kein weiteres Bild hinzu :-( aber ich denke, es ist auch schon so verständlich.

    karsta.de

    • Experte
    • Beiträge: 3.048
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #11 am: 14. Mai 2020, 15:13:25
    @hpzeller
    Kann bestätigen was CHESSBASE schreibt, auch bei meinem Test keine Änderungen im Shop.

    Wer die Kategorien ausblendet mittels templates/DEIN_TEMPL/config/config.php
    Code: PHP  [Auswählen]
    define('SHOW_CATEGORIES_NOT_EMPTY', 'true'); // 'true' leere Kategorien ausblenden // 'false' zeigt alle Kategorien auch leere

    möchte natürlich auch leere Kategorien in der Kunden-Sitemap ausschalten, deshalb hier die geänderte Standard-Sitemap, die ebenfalls mit der Variable 'SHOW_CATEGORIES_NOT_EMPTY' verknüpft ist.

    BG Karsta

    karsta.de

    • Experte
    • Beiträge: 3.048
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #12 am: 14. Mai 2020, 16:12:51
    @hpzeller
    Ich muss meine Antwort revidieren, es ändert sich doch was.
    Und zwar werden mit deinem Script die Kategorien ohne Bestand der zweiten Ebene (level2) nicht mit Kategorie-Button im Listing angezeigt. Alle folgenden Kategorien  (level2+) ohne Bestand werden weiterhin im Listing als Button gezeigt.

    BG Karsta

    CHESSBASE

    • Schreiberling
    • Beiträge: 264
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #13 am: 14. Mai 2020, 17:37:45
    @karsta.de:
    das scheint genau das gleiche Ergebnis, wie ich mit
    Code: PHP  [Auswählen]
    {if $module_content != '' && $TR_COLS < 0}
    erreicht hab, falls ich dich jetzt richtig verstanden habe.
    Viele Kategorien - allerdings nicht die in der Sitemap - verschwinden.
    Aber in dann scheint irgendwann in tieferen Kategorien Schluss zu sein.
    LG
    CHESSBASE

    holger.nbg

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Re: Modul für "leere Kategorien ausblenden"
    Antwort #14 am: 14. Mai 2020, 20:22:19
    Hallo zusammen,

    Habe mit einer Kategorie ebenfalls eine Frage / Problem.

    Folgendes passiert.
    Eine neue Hauptkategorie mit Unterkategorien ist erstellt worden. Die Kategorie ist nich nicht fertig und soll nicht Sichtbar sein.
    Lösung Status inaktiv // Folgendes Problem nun
    Wenn ich im Backend Adminbereich nun die Kategorie in "Gehe zu" wählen möchte um die Prosukte zu bearbeiten.
    Erscheint die Kategorie in Gehe zu nicht mehr.

    Wollte das Problem mit dem Kundengruppenchek lösen. Wenn dieser nun aktiviert wird und die besagte Kategorie "nur Admin" aktiviert wird bleibt die Index Seite mit dem Template erhalten. Jedoch ohne Inhalt bzw. Menü.

    Warum sehe ich gernerell die Kategorie nicht mehr bei 1.06 hat es funktioniert.  Wir nutzen folgende Version  v2.0.5.0 rev 12487 dated: 2019-12-13

    Bitte um Ratschläge

    Gruß Holger
    9 Antworten
    2713 Aufrufe
    23. November 2017, 19:26:35 von Modulfux
    9 Antworten
    8550 Aufrufe
    12. Mai 2020, 07:18:41 von CHESSBASE
    2 Antworten
    3544 Aufrufe
    09. Dezember 2011, 12:28:39 von MAx_Dungeon
               
    anything