- - - By CrazyStat - - -

CMSimple_XH Dokumentation



— das kleine modulare Open-Source CMS ohne Datenbank

Sie sind hier: Startseite > Fachthemen > Zwei funktional unterschiedliche Adminmenüs

Zwei funktional unterschiedliche Adminmenüs

Anleitung für zwei funktional unterschiedliche Adminmenüs

Einführung / Vorgaben:

  • Diese Ausarbeitung ermöglicht es in einer CMSimple_XH Installation dem angemeldeten Administrator die volle Funktionalität des Adminmenüs zur Verfügung stellen und ergänzend dazu einem "Content-Admin" ein funktional eingeschränktes Adminmenü  zur Verfügung stellen, der als Anwender für die Bearbeitung der Seiten (Text, Bild, Formatierung, ...) nur einige Funktionalitäten des Adminmenüs benötigt.
  • Weiterhin soll (ohne allzu großen Aufwand) ein Wechsel zwischen den beiden Adminmenüs für den jeweiligen Nutzer möglich sein.
  • Die funktionale Ergänzung soll relativ sicher bzgl. Updates sein.
  • Diese funktionale Ergänzung eines zweiten, funktional eingeschränkten CMSimple_XH Adminmenüs für den "Content-Admin" bietet zwar keine vollständige Sicherheit, das der "Content-Admin" nicht doch die volle Funktionalität das Adminmenüs erlangen kann, ist aber für den normal technisch versierten Anwender als ausreichend zu betrachten. (Die CMSimple_XH Funktionen werden in der Oberfläche des Adminmenüs nur ausgeblendet, sind aber funktional weiterhin vorhanden.)

Voraussetzungen für die Erstellung und Nutzung:

  • CMSimple_XH 1.6.x Installation.
  • Grundkenntnisse in der CMSimple_XH Administration, Editor, PHP und FTP
  • Der "richtige Admin" benötigt einen FTP-Zugang mit Zugangsdaten zum Server der CMSimple_XH Installation, falls er die Änderung des Adminmenüs nicht über die direkte Eingabe der URL durchführen kann.

Anleitung für ein Content-Adminmenü (ausblenden der Menüpunkte "Einstellungen" und "Plugins"

  • Für das funktional eingeschränkte Adminmenü wird eine modifizierte Version der  "function XH_adminMenu" gebraucht, die in der userfuncs.php gespeichert wird.
  • Aus der Datei cmsimple/adminfuncs.php wird die "function XH_adminMenu" kopiert und beispielsweise in den Namen "function custom_adminMenu" umbenannt.
    In der "function custom_adminMenu" werden die folgenden Zeilen wie folgt auskommentiert:
    //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'
    //),

    (Alternativ dazu kann eine schon modifizierte "function XH_adminMenu" mit dem Namen "function custom_adminMenu" unter dem Link http://3-magi.net/userfiles/downloads/admin-menu.zip herunter geladen werden.)
  • Abhängig davon ob die Datei cmsimple/userfuncs.php schon vorhanden ist, ergeben sich zwei unterschiedliche Arbeitsschritte:
    • Ist in der CMSimple_XH Installation die Datei cmsimple/userfuncs.php nicht vorhanden, kann die o.g. userfuncs.php mit der "function custom_adminMenu" unter dem o.g. Link herunter geladen, entpackt und ins Verzeichnis "cmsimple" kopiert werden.
    • Ist in der CMSimple_XH Installation die Datei cmsimple/userfuncs.php schon vorhanden, muss die modifizierte Funktion ("custom_adminMenu") dort hinzugefügt werden.
  • Weiterführende Anpassungen in der "function custom_adminMenu" können in der userfuncs.php selbst durchgeführt werden.

Anleitung für ein Content-Adminmenü 2 (ausblenden des Menü "Plugins" und im Menü "Einstellungen" sind nur "Links prüfen", "Sicherheitskopien" und "System-Info" sichtbar)

  • Für das funktional eingeschränkte Adminmenü wird eine modifizierte Version der  "function XH_adminMenu" gebraucht, die in der userfuncs.php gespeichert wird.
  • Aus der Datei cmsimple/adminfuncs.php wird die "function XH_adminMenu" kopiert und beispielsweise in den Namen "function custom_adminMenu2" umbenannt.
  • In der "function custom_adminMenu2" werden in "$settingsMenu = array" die Zeilen wie folgt auskommentiert:
    //array(
    //    'label' => utf8_ucfirst($tx['editmenu']['configuration']),
    //    'url' => $sn . '?file=config&action=array'
    //),
    //array(
    //    'label' => utf8_ucfirst($tx['editmenu']['language']),
    //    'url' => $sn . '?file=language&action=array'
    //),
    //array(
    //    'label' => utf8_ucfirst($tx['editmenu']['template']),
    //    'url' => $sn . '?file=template&action=edit'
    //),
    //array(
    //    'label' => utf8_ucfirst($tx['editmenu']['stylesheet']),
    //    'url' => $sn . '?file=stylesheet&action=edit'
    //),
    //array(
    //    'label' => utf8_ucfirst($tx['editmenu']['log']),
    //    'url' => $sn . '?file=log&action=view'
    //),
    //array(
    //    'label' => utf8_ucfirst($tx['editmenu']['pagedata']),
    //    'url' => $sn . '?&xh_pagedata'
    //),
  • Weiterhin werden unter "$menu = array" die Zeilen wie folgt auskommentiert:
    //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'
    //),
  • Abhängig davon ob die Datei cmsimple/userfuncs.php schon vorhanden ist, ergeben sich zwei unterschiedliche Arbeitsschritte:
    • Ist in der CMSimple_XH Installation die Datei cmsimple/userfuncs.php nicht vorhanden, kann die o.g. userfuncs.php mit der "function custom_adminMenu", "function custom_adminMenu2" und "adminfuncs.php " unter dem u.g. Link herunter geladen, entpackt und ins Verzeichnis "cmsimple" kopiert werden.
    • Ist in der CMSimple_XH Installation die Datei cmsimple/userfuncs.php schon vorhanden, muss die modifizierte Funktion ("custom_adminMenu2") dort hinzugefügt werden.
  • Damit der "Content-Admin" beim Anklicken vom Menüpunkt "Einstellungen" auf der Übersichtsseite nicht den Link zu "CMS" (Settings) angezeigt bekommt, müssen in der Datei cmsimple/adminfuncs.php folgende Zeilen auskommentiert werden:
    /*foreach (array('config', 'language') as $i) {
    $o .= '<li><a href="' . $sn . '?file=' . $i . '&amp;action=array">'
    . utf8_ucfirst($tx['action']['edit']) . ' '
         . $tx['filetype'][$i] . '</a></li>' . "\n";
    }*/

    Diese Änderung in der cmsimple/adminfuncs.php kann bei einem Update / Upgrade von CMSimple_XH 1.6.7 auf eine aktuellere Version verloren gehen und muss deswegen auf ihre Existenz überprüft werden!!
  • Weiterführende Anpassungen in der "function custom_adminMenu2" können in der userfuncs.php selbst durchgeführt werden.
  • Download von admin-menu2.zip (userfuncs.php + adminfuncs.php)

Aktivierung des funktional eingeschränkten CMSimple_XH Adminmenüs für "Content-Admins" (Wechsel vom "vollen Admin Menü" zum "Content-Admin Menü"):

  • Nach dem Login wird im Adminbereich unter "Einstellungen" -> "CMS" -> "Editmenu" -> "Name" der Funktionsname "custom_adminMenu" (Name der Funktion für den "Content-Admin") eingetragen.
  • Nach dem Speichern sind in der Administration bei dem oben erwähnten "function custom_adminMenu" die Menüeinträge "Einstellungen" und "Plugins" ausgeblendet.
  • Wenn diese Änderung nicht durch die direkte Eingabe der URL des "vollen Adminmenüs" verändert werden soll, ist die Dateieigenschaft der config.php von "lesen und schreiben" auf nur "lesen" zu ändern.  Dabei ist allerdings zu beachten, dass diese Dateieigenschaft nach einem Update von CMSimple_XH überprüft werden sollte.

Aktivierung des Original CMSimple_XH Adminmenüs für "richtige Admins" (Wechsel vom "Content-Admin Menü" zum "vollen Admin Menü"):
Für die Aktivierung des vollständigen Adminmenüs sind hier zwei alternative Wege aufgeführt:
a) die Änderung der config.php und deren Transfer mittels FTP:

  • Die Datei cmsimple/config.php mittels FTP vom Server auf den PC herunterladen.
  • Die config.php mit einem Editor öffnen und den Menüeintrag unter $cf['editmenu']['external']="";  wie folgt ändern: $cf['editmenu']['external']="custom_adminMenu"; (custom_adminMenu = Name der Funktion für den "Content-Admin")
  • Die config.php speichern und wieder auf den Server laden (cmsimple/config.php)
  • Damit die Eintragungen unter "Einstellungen" => "CMS" nicht geändert werden können, ist die Dateieigenschaft der config.php von "lesen und schreiben" auf nur "lesen" zu ändern. Dabei ist allerdings zu beachten, dass diese Dateieigenschaft nach einem Update von CMSimple_XH überprüft werden sollte.

b) die Änderung mittels direkter URL:

  • In den Adminbereich einloggen.
  • Die sichtbare URL www.meine-domain.de/?Welcome-to-CMSimple_XH in www.meine-Domain.de/?settings (bzw. www.meine-domain.de/?file=config&action=array) ändern und ausführen.
  • über die dann angezeigte Übersichtsseite von "Einstellungen" kann zur CMS Konfiguration gewechselt und die Konfiguration angesehen werden.
  • Wenn diese Konfiguration auch geändert werden soll, muss der config.php die Dateieigenschaft "lesen und schreiben" (per FTP) zugewiesen werden.

Die Änderung des aufzurufenden Admin-Menüs bewirkt, das (bis zur nächsten Änderung des Admin-Menüs in der config.php) entweder das volle Admin-Menü, oder das funktional eingeschränkte Admin-Menü nach dem Login in den Adminbereich zur Verfügung besteht.

Hartmut Keil - http://cmsimplexh.webdesign-keil.de - Stand: 01.10.2015
PDF erzeugen