Menü Kategorie verstecken, ansonsten voll funktionsfähig lassen
Dafür kann man sich das Script für das Kategoriemenue anpassen und einfach im Verzeichnis GXUserComponents überladen. Dafür ist es da
Das Ganze ist in 9 einfachen Schritten schnell erledigt.


1. Unterverzeichnis anlegen:
/GXUserComponents/overloads/CategoriesAgent/

2. Datei kopieren
/system/classes/categories/CategoriesAgent.inc.php

... und einfügen in
/GXUserComponents/overloads/CategoriesAgent/

3. Die Datei
/GXUserComponents/overloads/CategoriesAgent/CategoriesAgent.inc.php

... umbenennen in
/GXUserComponents/overloads/CategoriesAgent/CategoriesAgentOverload.inc.php

4. Öffnen der Datei CategoriesAgentOverload.inc.php mit einem geeigneten Editor. Windows-Editor, Notepad, Word sind gänzlich ungeeignet!!! Nimm möglichst Notepad++. Das ist ein freier Editor unter GPL 2 für Windows, in deutsch und absolut werbefrei.

5. In Zeile 12 steht jetzt
PHP-Code:
class CategoriesAgent 
ersetzen mit
PHP-Code:
class CategoriesAgentOverload extends CategoriesAgentOverload_parent 
6. Weiter unten werden die anzuzeigenden Kategorien aus der DB rausgesucht. Unter anderem wird dort bereits die Sortiernummer als Kriterium herangezogen. Die Sortiernummer findest du unter Kategorie bearbeiten >>> Sortierreihenfolge

Wichtig ist, dass du von vornherein eine ausreichend hohe Nummer nimmst. Sortierreihenfolgen sollte man ohnehin immer mindestens in Zehnerschritten wählen. So kann man dann leicht eine Kategorie dazwischen schieben, ohne alle Nummer wieder ändern zu müssen.

Deine versteckten Kategorien bekommen nun also die Sortiernummer ab 1000. Also weiter ...

Ab Zeile 70 kommt das SQL-Statement
PHP-Code:
        $t_sql '
            SELECT *
            FROM
                categories AS c LEFT JOIN categories_description AS cd USING (categories_id)
            WHERE
                c.categories_status = 1 AND
                c.parent_id            = "'
$c_parent_id     .'" AND
                cd.language_id        = "'
$c_language_id .'" '.
                
$t_group_check .'
            ORDER BY
                c.sort_order ASC,
                cd.categories_name ASC
        '

Dort fügen wir einfach eine weitere Bedingung ein, nämlich c.sort_order < 1000 AND
PHP-Code:
        $t_sql '
            SELECT *
            FROM
                categories AS c LEFT JOIN categories_description AS cd USING (categories_id)
            WHERE
                c.categories_status = 1 AND
                c.sort_order < 1000  AND
                c.parent_id            = "'
$c_parent_id     .'" AND
                cd.language_id        = "'
$c_language_id .'" '.
                
$t_group_check .'
            ORDER BY
                c.sort_order ASC,
                cd.categories_name ASC
        '

... und das ganze wieder speichern.

Hier, beim Speichern, entsteht übrigens das weitverbreitete Hauptproblem. Das windowseigene Notepad z.B. würde die Datei nämlich ungefragt in ANSI-Kodierung speichern, obwohl -abhängig vom System - z.B. in UTF-8 gespeichert werden muss. Und plötzlich geht nichts mehr! Deshalb sollte für solche Arbeiten immer NotePad++ oder vergleichbar gute Editoren verwendet werden!

7.
Jetzt in deiner auszublendende Kategorie auf Kategorie bearbeiten >>> Sortierreihenfolge und mindestens 1000 eintragen und speichern. Die restlichen Eigenschaften werden ganz normal wie gewohnt eingestellt, also Status > Aktiv, Angaben für SEO, etc.

8.
Dann Caches leeren in der Reihenfolge
  1. Cache für Artikel- und Kategoriezuordnungen neu erzeugen
  2. Cache für Ausgabe der Kategoriemenüs neu erzeugen
  3. Cache für Modulinformationen leeren
  4. Cache für Seitenausgabe leeren


9.
Im Browser muss die Seite nun neu geladen werden. STRG+F5 im Chrome und FF sollte ausreichend sein. Notfalls mit der Keule (Verlauf und Cookies löschen) oder einen anderen frischen Browser verwenden.

Das ganze sollte auch weitgehend updatesicher sein. Sollte es nach einem Update nicht mehr funktionieren, dann wurde vermutlich das ursprüngliche CategoriesAgent.inc.php angepasst. Am besten nach jedem Update direkt einmal prüfen ob sie geändert wurde.


Über Feedback, ob's funktioniert, würde ich mich freuen