Page 1 of 2

Backend Menupunkte sperren / ausblenden

Posted: Wed Apr 01, 2015 2:50 pm
by Vic
Ich möchte eine vor Veränderung gesicherte CMSimple Installation vornehmen, ohne dass der Benutzer
im Backend kritische Änderungen vornehmen kann... aus diesem Grunde möchte ich den
Zugriff auf die Menüpunkte "Einstellungen" und "Plugins" verhindern

Gibt es dazu Möglichkeiten? Z.B. durch:
- ein Plugin, das User mit unterschiedlichen Rechte ermöglicht
- Zugriff auf die Menupunkten nur mit Passwort erlaubt
- Ausblendung der Menüpunkte durch Auskommentierung im Code (wo und wie genau?)
- eine andere Methode?

Dabei sollte dieser Eingriff:
- Updates überstehen
- (auch nur vorübergehend) rückgängig gemacht werden können (falls von mir Zugriff benötigt)

... gibt es hier jemand, der ein Idee hat, bzw. helfen kann?

Besten Dank
Vic

Re: Backend Menupunkte sperren / ausblenden

Posted: Wed Apr 01, 2015 3:26 pm
by svasti
Interessante Anfrage,
Vic wrote:ein Plugin, das User mit unterschiedlichen Rechte ermöglicht
gibt es leider nicht. Dazu müsste der Core entsprechend vorbereitet werden. Vielleicht eine zukünftige Möglichkeit?
Vic wrote:Ausblendung der Menüpunkte durch Auskommentierung im Code (wo und wie genau?)
Das ist möglich. Bei jedem Update ist die Änderung aber wieder futsch :cry: Kann davon ein Lied singen, denn bei unserer Demo haben wir auch phpinfo und die Emailfunktion rausgenommen, und dazu muss bei Updates der Code wieder neu angepasst werden.
Vic wrote:eine andere Methode?
ja, das Einfachste: einfach den Dateien über ftp keine Änderungsrechte geben. Das haben wir auch in der Demo gemacht (sonst könnte ja jeder die Einstellungen verändern)

Re: Backend Menupunkte sperren / ausblenden

Posted: Wed Apr 01, 2015 3:49 pm
by cmb
svasti wrote:
Vic wrote:ein Plugin, das User mit unterschiedlichen Rechte ermöglicht
gibt es leider nicht. Dazu müsste der Core entsprechend vorbereitet werden. Vielleicht eine zukünftige Möglichkeit?
Ein solches Plugin gibt es tatsächlich nicht, aber der Core ist schon seit XH 1.6 dahingehend vorbereitet, dass man das Adminmenü austauschen kann, siehe http://cmsimpleforum.com/viewtopic.php? ... 424#p37056. Eine solche Möglichkeit würde sich wohl hier auch am ehesten empfehlen. Dazu einfach aus cmsimple/adminfuncs.php die function XH_adminMenu kopieren, und in cmsimple/userfuncs.php einfügen und umbenennen. Den Namen der umbenannten Funktion dann in der Konfiguration unter Editmenu -> Name einstellen. Dann kann die Funktion bearbeitet werden, was zumindest einigermaßen updatesicher sein sollte, und auch nicht allzu schwer. Unterschiedliche Rechte sind damit zwar nicht gegeben, aber der Superuser könnte die URL für die Konfigurationsbearbeitung ja manuell eintippen, und dann temporär die Einstellung Editmenu -> Name ändern.
svasti wrote:
Vic wrote:eine andere Methode?
ja, das Einfachste: einfach den Dateien über ftp keine Änderungsrechte geben. Das haben wir auch in der Demo gemacht (sonst könnte ja jeder die Einstellungen verändern)
Das ist die sicherste Lösung, damit der Anwender nicht einfach die erforderlichen URLs direkt eintippt, und somit das Adminmenü umgeht. Absolut sicher ist es aber auch nur dann, wenn der User kein PHP zur Ausführung bringen kann (was per Editor und Pluginaufruf/CMSimple-Skripting) ja in Vics Fall möglich wäre, oder wenn der PHP-User und der FTP-User nicht der gleiche sind, und die Dateien dem FTP-User gehören. Sprich: kann config.php per Backend gespeichert werden, wenn es 0644 hat, dann ist es nicht sicher.

Re: Backend Menupunkte sperren / ausblenden

Posted: Wed Apr 01, 2015 9:26 pm
by Vic
Vic wrote:ein Plugin, das User mit unterschiedlichen Rechte ermöglicht
svasti wrote: ... gibt es leider nicht. Dazu müsste der Core entsprechend vorbereitet werden. Vielleicht eine zukünftige Möglichkeit?
cmb wrote:Ein solches Plugin gibt es tatsächlich nicht, ...
Beim Verfolgen vom des von CMB angegebenen Beitrags-Link zum Austauschen des Admin-Menus bin ich auf folgenden Beitrag aus dem 2010 gestossen...
http://cmsimpleforum.com/viewtopic.php?f=12&t=1954

... DAS WÄRE GENAU EIN SOLCHES PLUGIN, WIE ICH ES MIR VORSTELLE !!!

Das Problem ist nur: der Beitrag ist schon relativ alt...
a) funktioniert das Ding wohl noch?
b) wenn nicht; findet sich hier jemand, der das Plugin auf der bestehenden Basis nachbessern/updaten kann?

---
Vic wrote:Ausblendung der Menüpunkte durch Auskommentierung im Code (wo und wie genau?)
svasti wrote:Das ist möglich. Bei jedem Update ist die Änderung aber wieder futsch :cry: Kann davon ein Lied singen, denn bei unserer Demo haben wir auch phpinfo und die Emailfunktion rausgenommen, und dazu muss bei Updates der Code wieder neu angepasst werden.)
Wenn alles andere versagt, müsste ich in diesen sauren Apfel beissen... kann mir jemand angeben
- in welche/-n Dateien
- welche Passagen / Code / Zeilen
auskommentiert werden müssen, um die Menüpunkte "Einstellungen" und "Plugins" ganz zu unterdrücken?

---
cmb wrote: ... aber der Core ist schon seit XH 1.6 dahingehend vorbereitet, dass man das Adminmenü austauschen kann, siehe http://cmsimpleforum.com/viewtopic.php? ... 424#p37056. Eine solche Möglichkeit würde sich wohl hier auch am ehesten empfehlen. Dazu einfach aus cmsimple/adminfuncs.php die function XH_adminMenu kopieren, und in cmsimple/userfuncs.php einfügen und umbenennen. Den Namen der umbenannten Funktion dann in der Konfiguration unter Editmenu -> Name einstellen. Dann kann die Funktion bearbeitet werden, was zumindest einigermaßen updatesicher sein sollte, und auch nicht allzu schwer. Unterschiedliche Rechte sind damit zwar nicht gegeben, aber der Superuser könnte die URL für die Konfigurationsbearbeitung ja manuell eintippen, und dann temporär die Einstellung Editmenu -> Name ändern.
Uuups... momentan gerade etwas verwirrt... :shock: ich muss mir das mal in Ruhen lesen; wenn nötig komme ich wieder mit Fragen auf euch zu. Auf jeden Fall scheint mir, vor Allem die (zumindest in der Vergangenheit gewesene) Existenz eines solchen Plugin die Notwendigkeit eines solchen.

---

Ich bin überzeugt, dass eine solche (vielleicht im einem nächsten Update) im Core implementierten Funktion (oder als Plugin im Installationspaket beigefügt) CMSimple in der Verbrteitung einen Boost nach vorne bringen würde, da man dann auch eher Kundenaufträge damit bewerkstelligen könnte, ohne Angst haben zu müssen, ein zu offenes System zu haben und die Gefahr zu laufen, dass der Kunde das Zeugs "verhunzt"... :cry:

Vorerst mal danke für die schnellen Antworten an einem begeisterten Newbie...
Schönen Abend, Vic


===


P.S.:

Die Methode über die Rechtevergabe kommt für mich nicht in Frage...
- Dass die URL direkt eingegeben werden könnte fürchte ich an sich nicht... dazu müsste man die Ordner und Dateienstruktur/-namen kennen
- Die Menüpunkte sind trotzdem einsehbar... es wird nur die Speicherung verweigert (... das führt beim Benutzer zu unnötigen Fragen
- Es soll nicht wie in der Demo alles gesperrt sein (Seitenerstellung und Medienupload soll noch möglich sein)

Re: Backend Menupunkte sperren / ausblenden

Posted: Wed Apr 01, 2015 10:31 pm
by cmb
Vic wrote:Die Methode über die Rechtevergabe kommt für mich nicht in Frage...
[...]
Okay, nachvollziehbar.
Vic wrote:Das Problem ist nur: der Beitrag ist schon relativ alt...
a) funktioniert das Ding wohl noch?
b) wenn nicht; findet sich hier jemand, der das Plugin auf der bestehenden Basis nachbessern/updaten kann?
Vermutlich funktioniert das wr_adminMenu Plugin schon unter CMSimple_XH 1.5 nicht mehr wie gewünscht (d.h. zumindest nicht ohne weitere Anpassungen). Nachbessern/Updaten ist wohl aufgrund der proprietären Lizenz problematisch.
Vic wrote:Auf jeden Fall scheint mir, vor Allem die (zumindest in der Vergangenheit gewesene) Existenz eines solchen Plugin die Notwendigkeit eines solchen.
Daher wurde ja auch ein entsprechender Hook in CMSimple_XH 1.6 eingeführt. Leider hat wohl bisher niemand die Zeit gefunden, dann auch ein entsprechendes Plugin zu schreiben.
Vic wrote:ich muss mir das mal in Ruhen lesen; wenn nötig komme ich wieder mit Fragen auf euch zu.
Lade Dir einfach mal http://3-magi.net/userfiles/downloads/admin-menu.zip herunter. Ich gehe davon aus, dass es in Deiner CMSimple_XH Installation die Datei cmsimple/userfuncs.php nicht gibt. Dann einfach das herunter geladene Archiv auspacken, und die userfuncs.php in den cmsimple/ Ordner kopieren. Dann trägst Du unter Einstellungen -> CMS -> Editmenu -> Name "custom_adminMenu" ein; in der Administration sind dann "Einstellungen" und "Plugins" ausgeblendet. Weitere Anpassungen kannst Du relativ leicht in userfuncs.php selbst durchführen.

Re: Backend Menupunkte sperren / ausblenden

Posted: Wed Apr 01, 2015 11:57 pm
by Vic
cmb wrote:Lade Dir einfach mal http://3-magi.net/userfiles/downloads/admin-menu.zip herunter. Ich gehe davon aus, dass es in Deiner CMSimple_XH Installation die Datei cmsimple/userfuncs.php nicht gibt. Dann einfach das herunter geladene Archiv auspacken, und die userfuncs.php in den cmsimple/ Ordner kopieren. Dann trägst Du unter Einstellungen -> CMS -> Editmenu -> Name "custom_adminMenu" ein; in der Administration sind dann "Einstellungen" und "Plugins" ausgeblendet. Weitere Anpassungen kannst Du relativ leicht in userfuncs.php selbst durchführen.
===

:D Heh, das scheint mir eine wirkliche Alternative zu sein; :D

Was mich dabei irritiert ist folgende Tatsache:
In meiner CMSimple_XH (1.6.5) Installation gibt es bereits die Datei cmsimple/userfuncs.php ... und diese ist über 1100 Zeilen gross(!)
... im Gegensatz zu den rund 150 Zeilen deiner Version das ich runtergeladen haben (?)

Anyway, für mein Verständnis und ...

:shock: BEVOR ICH MICH SELBER RAUSSPERRE ! ... :shock:

... da ich kein Coder bin, verstehe ich das richtig?:

---

- die Zeilen 122 - 133 wurden wie folgt auskommentiert...

Code: Select all

        //array(
        //    'label' => utf8_ucfirst($tx['editmenu']['settings']),
        //    'url' => $sn . '?&settings',
        //    'children' => $settingsMenu
        //),
        //array(
        //    'label' => utf8_ucfirst($tx['editmenu']['plugins']),
        //    'url' => $sn, // TODO: use more sensible URL
        //    'children' => $pluginMenu,
        //    'id' => 'xh_adminmenu_plugins',
        //    'style' => 'width:' . $width . 'px; margin-left: ' . $marginLeft . 'px'
        //),
... und dadurch wird, auch dank dem, dass ich
a) die userfuncs.php in den cmsimple/ Ordner kopiere
und
b) unter 'Einstellungen' -> 'CMS' > 'Editmenu' (ist das bei mir der Punkt 'Bearbeitungsmenü (Admin-Menü)'?)
im Namensfeld "custom_adminMenu" (?) eingebe, wie von mir gewünscht dann "Einstellungen" und "Plugins" ausgeblendet...

Frage (für meine Logik):
Ich gehe dasvon aus dass ich nach dem Kopieren im CMSimple-Ordner...die Datei 'userfuncs.php' in (z.B. 'custom_adminMenu.php' umbenennen(?), denn schliesslich ist das der Name des alternativen Menüs, das ich in der Konfiguration danach eingeb... richtig?

(... und soll ich nun deine Datei benutzen, oder in einer Kopie meiner Originaldatei die entsprechenden Zeilen auskommentieren?)

===

... soweit, so gut... und wenn ich selber wieder Zugriff brauche?
Ich gehe dann davon aus, dass ich dann (via FTP) entweder die Datei wieder lösche oder umbenenne... oder gibt es eine elegantere Lösung?

Du schreibst zwar...
cmb wrote:... Unterschiedliche Rechte sind damit zwar nicht gegeben, aber der Superuser könnte die URL für die Konfigurationsbearbeitung ja manuell eintippen, und dann temporär die Einstellung Editmenu -> Name ändern. ...
... nur: wie lautet die manuell zu tippende URL zur originalen Konfigurationsbearbeitung? ( und muss ich vorher eingeloggt sein?)...
ich hab's mit "http://www.meinedomain.ch/cmsimple/adminfuncs.php' erfolglos versucht...

===

Ich weiss, Fragen über Fragen... als CMSimple-Anfänger muss ich leider eure Geduld etwas strapazieren; und ich bin dankbar, dass ihr euch die Zeit nehmt!

Das scheint mir auf jeden Fall eine schon recht komfortable und einfache Variante zu sein, ohne dass ich da im Core runfrickeln muss... da fällt mir echt ein Stein vom Herzen! Ich bedanke mich an dieser Stelle noch für die vorbildliche Unterstützung! ... und für die Klärung dieser letzten Fragen bevor ich das Ganze in die Tat umsetze...

Besten Dank, Vic

===

Ach ja, P.S. ;) :
Vic wrote:... findet sich hier jemand, der das Plugin auf der bestehenden Basis nachbessern/updaten kann? ...Auf jeden Fall scheint mir, vor Allem die (zumindest in der Vergangenheit gewesene) Existenz eines solchen Plugin die Notwendigkeit eines solchen.
cmb wrote:Vermutlich funktioniert das wr_adminMenu Plugin schon unter CMSimple_XH 1.5 nicht mehr wie gewünscht (d.h. zumindest nicht ohne weitere Anpassungen). Nachbessern/Updaten ist wohl aufgrund der proprietären Lizenz problematisch. ... Daher wurde ja auch ein entsprechender Hook in CMSimple_XH 1.6 eingeführt. Leider hat wohl bisher niemand die Zeit gefunden, dann auch ein entsprechendes Plugin zu schreiben.
Das ist schade... vielleicht findet sich mal jemand, der das ähnlich komfortabel "from the scratch" als Plugin programmiert...


... und P.P.S.:
cmb wrote:Daher wurde ja auch ein entsprechender Hook in CMSimple_XH 1.6 eingeführt...
Was meinst du damit... oder, muss ich das (als nicht-coder) verstehen?

Re: Backend Menupunkte sperren / ausblenden

Posted: Thu Apr 02, 2015 12:43 am
by cmb
Vic wrote:Was mich dabei irritiert ist folgende Tatsache:
In meiner CMSimple_XH (1.6.5) Installation gibt es bereits die Datei cmsimple/userfuncs.php ... und diese ist über 1100 Zeilen gross(!)
Hm, wo kommt die Datei denn her? CMSimple_XH liefert userfuncs.php nie aus; manche Add-Ons nutzen die Datei ("kopieren sie folgenden Code in cmsimple/userfuncs.php"), aber 1100 Zeilen? Schau Dir die Datei am besten mal an, ob dort irgendwelche Kommentare die Herkunft erläutern. Wenn Du magst, kannst Du mir Deine userfuncs.php auch per Mail zusenden (siehe http://3-magi.net/de/?Impressum), dann schau ich sie mir mal an.
Vic wrote:... und dadurch wird, auch dank dem, dass ich
a) die userfuncs.php in den cmsimple/ Ordner kopiere
und
b) unter 'Einstellungen' -> 'CMS' > 'Editmenu' (ist das bei mir der Punkt 'Bearbeitungsmenü (Admin-Menü)'?)
im Namensfeld "custom_adminMenu" (?) eingebe, wie von mir gewünscht dann "Einstellungen" und "Plugins" ausgeblendet...
Ja, genau. Und richtig: in der dt. Version heißt der Punkt "'Bearbeitungsmenü (Admin-Menü)" -> Name.
Vic wrote:muss ich da nicht nach dem Kopieren im CMSimple-Ordner...
... die Datei 'userfuncs.php' in 'custom_adminMenu.php' umbenennen?
(schliesslich ist das der Name des alternativen Menüs, das ich eingebe(?))
Nein. Bei dieser Einstellung kommt es nicht auf den Namen der Datei an, sondern auf den Namen der Funktion. Die habe ich einfach mal custom_adminMenu getauft, aber bei Bedarf kannst Du sie natürlich umbennen, z.B. in Vic_adminMenu.
Vic wrote:Das scheint mir auf jeden Fall eine schon recht komfortable und einfache Variante zu sein, ohne dass ich da im Core runfrickeln muss... da fällt mir echt ein Stein vom Herzen
Zumindest für CMSimple_XH 1.6.x sollte das tatsächlich ohne weitere Nachbesserungen funktionieren. Bei XH 1.7 könnten aber evtl. Änderungen nötig werden. Aber bis das relevant wird, ist noch mehr als ein Jahr Zeit, und bis dahin gibt es vielleicht schon ein entsprechendes Plugin.
Vic wrote:... soweit, so gut... und wenn ich selber wieder Zugriff brauche?
Ich gehe dann davon aus, dass ich dann (via FTP) entweder die Datei wieder lösche oder umbenenne... oder gibt es eine elegantere Lösung?
Das einfachste ist dann vermutlich, wenn Du direkt die URL zur CMSimple_XH Konfiguration eintippst (http://example.com/?&settings), und dann einfach die Einstellung des individuellen Adminmenüs wieder löschst. Dann hast Du das volle Adminmenü zur Verfügung, und kannst, wenn Du fertig bist, wieder das eingeschränkte Adminmenü aktivieren.

Wenn Du ein Windows-Betriebssystem zur Verfügung hast, dann kannst Du das ganze übrigens auch leicht unter Portable_XH ausprobieren, ohne die Gefahr, dass Du irgendwas zerschießt, oder Dich aussperrst. :)

PS:
Vic wrote:
cmb wrote:Daher wurde ja auch ein entsprechender Hook in CMSimple_XH 1.6 eingeführt...
Was meinst du damit... oder, muss ich das (als nicht-coder) verstehen?
"Hook" bedeutet einfach, dass eine Möglichkeit für Plugins besteht, sich "einzuhaken" ohne dass etwas am eigentlichen Code von CMSimple_XH geändert werden muss.

Re: Backend Menupunkte sperren / ausblenden

Posted: Thu Apr 02, 2015 6:41 am
by Vic
Christoph

Herzlichen Dank für deine ausführliche Antwort, ich werde mich nun ans Ausprobieren machen...
... heute wird dies leider nicht möglich sein, dies wird bis morgen warten müssen.

Vic wrote:Was mich dabei irritiert ist folgende Tatsache: In meiner CMSimple_XH (1.6.5) Installation gibt es bereits die Datei cmsimple/userfuncs.php ... und diese ist über 1100 Zeilen gross(!)
cmb wrote:[Hm, wo kommt die Datei denn her? CMSimple_XH liefert userfuncs.php nie aus; ...Wenn Du magst, kannst Du mir Deine userfuncs.php auch per Mail zusenden (siehe http://3-magi.net/de/?Impressum), dann schau ich sie mir mal an.
Sorry mein Fehler... die vorhanden Datei ist natürlich adminfuncs.php (!) ... ich gehe davon aus, dass userfuncs.php die Einträge darin übersteuert(?)

Vic wrote:muss ich da nicht nach dem Kopieren im CMSimple-Ordner...
... die Datei 'userfuncs.php' in 'custom_adminMenu.php' umbenennen?
(schliesslich ist das der Name des alternativen Menüs, das ich eingebe(?))
cmb wrote:Nein. Bei dieser Einstellung kommt es nicht auf den Namen der Datei an, sondern auf den Namen der Funktion. Die habe ich einfach mal custom_adminMenu getauft, aber bei Bedarf kannst Du sie natürlich umbennen, z.B. in Vic_adminMenu.
Wo hast du, bzw. kann man bei Bedarf, den Funktionsnamen in der userfuncs.php um-/benennen?
[ EDIT: Hab ich, glaub ich, gefunden... in Zeile 21 der userfuncs.php :

Code: Select all

function custom_adminMenu($plugins = array())
... richtig?]
Vic wrote:Das scheint mir auf jeden Fall eine schon recht komfortable und einfache Variante zu sein, ohne dass ich da im Core runfrickeln muss... da fällt mir echt ein Stein vom Herzen
cmb wrote:Zumindest für CMSimple_XH 1.6.x sollte das tatsächlich ohne weitere Nachbesserungen funktionieren. Bei XH 1.7 könnten aber evtl. Änderungen nötig werden. Aber bis ... dahin gibt es vielleicht schon ein entsprechendes Plugin.
... das wäre echt der Hammer; aber für den Moment reicht mir das völlig!
Vic wrote:... soweit, so gut... und wenn ich selber wieder Zugriff brauche?...?
cmb wrote:Das einfachste ist dann vermutlich, wenn Du direkt die URL zur CMSimple_XH Konfiguration eintippst (http://example.com/?&settings), und dann einfach die Einstellung des individuellen Adminmenüs wieder löschst. Dann hast Du das volle Adminmenü zur Verfügung, und kannst, wenn Du fertig bist, wieder das eingeschränkte Adminmenü aktivieren.

Wenn Du ein Windows-Betriebssystem zur Verfügung hast, dann kannst Du das ganze übrigens auch leicht unter Portable_XH ausprobieren, ohne die Gefahr, dass Du irgendwas zerschießt, oder Dich aussperrst. :)
Das scheint ja echt einfach zu sein... werde ich gerne testen und gebe dir Feedback!

Ich werde es direkt auf dem Webserver versuchen; ist keine produktive Umgebung... nur eine Testinstallation...
bei Bedarf werde ich halt alles per FTP löschen und wieder neu laden!

Danke vorerst nochmals; ich schicke dir noch die Datei...
[ EDIT: Nein, ich schicke sie natürlich nicht mehr...(s. oben) :roll: ]

Gruss, Vic

Re: Backend Menupunkte sperren / ausblenden

Posted: Thu Apr 02, 2015 9:02 am
by lck
Nur so ein Gedanke. Eine einfache Möglichkeit (getestet), das auch CMSimple_XH updates übersteht, wäre evtl.

Kopie vom Standard-Template erstellen und umbenennen:
Beispiel:
template_admin (Original-Template, ohne Änderungen)
template_kunde (angepasstes Template)

template_kunde:
In der stylesheet.css einfügen:

Code: Select all

/* Link Plugins verstecken */
#xh_adminmenu ul li:nth-child(5) {
    display: none;
}
/* Link Einstellungen verstecken */
#xh_adminmenu ul li:nth-child(4) {
    display: none;
} 
Einloggen und Url eingeben: http://example.com/?file=config

Template > template_admin auswählen > Sichern

Nach dem Bearbeiten wieder umschalten.

Re: Backend Menupunkte sperren / ausblenden

Posted: Thu Apr 02, 2015 10:08 am
by cmb
Vic wrote:Sorry mein Fehler... die vorhanden Datei ist natürlich adminfuncs.php (!) ... ich gehe davon aus, dass userfuncs.php die Einträge darin übersteuert(?)
Nein. Die Funktionen in userfuncs.php und adminfuncs.php sind unabhängig voneinander. Deshalb heißt die neue Funktion ja auch custom_adminMenu und nicht mehr XH_adminMenu.
Vic wrote:Wo hast du, bzw. kann man bei Bedarf, den Funktionsnamen in der userfuncs.php um-/benennen?
[ EDIT: Hab ich, glaub ich, gefunden... in Zeile 21 der userfuncs.php :

Code: Select all

function custom_adminMenu($plugins = array())
... richtig?]
Ja, genau.
Ludwig wrote:Nur so ein Gedanke. Eine einfache Möglichkeit (getestet), das auch CMSimple_XH updates übersteht, wäre evtl.
[...]
Das tut's natürlich auch! :) Ich gehe nicht davon aus, dass der User einfach mal CSS deaktiviert oder einen alten Browser verwendet, der diese CSS-Selektoren nicht kennt.

Wirklich update-sicher ist das aber auch nicht unbedingt; wenn sich die Menüstruktur ändert, müsste ein wenig nachgebessert werden, obwohl das natürlich schnell gemacht wäre.