Aufbau der Backend-Navigation

Die Navigation des Backends im linken Frame wird auf Basis eines Arrays aufgebaut und kann dadurch z.B. in Modulen verändert oder ergänzt werden. Der Handler $hdlr_navigation, der diese Operation erlaubt wird auf der Seite Modulhandler? erklärt.

Einzelne Navigationspunkte werden durch Elemente innerhalb des Arrays beschrieben und haben die folgende Form:

    $navigation['FirstLevel'][] = array(
        'caption' => 'caption',
        'title'   => 'title',     // optional
        'url'     => 'url',       // optional
        'target'  => 'target'     // optional, default: 'cpo_content'
    );
FirstLevel
Name der ersten Navigationsebene
Dieser Platzhalter steht für die Bezeichnung der ersten Ebene in der Navigation, die üblicherweise aufgeklappt werden kann und dann weitere Unterpunkte enthält.
caption
Beschriftung des Navigationspunktes
title
title-Attribut (Stichwort: Tooltip/Mouseover) z.B. für deaktivierte Navigationspunkte, optional
url
aufzurufende URL (BASE_URL nicht vergessen), optional
target
Zielframe der URL, optional

Kleinere Module sollten sich auf einen Unterpunkt unter "Module" beschränken, wärend aufwändigere Module natürlich ruhig eigene Elemente in der ersten Ebene ergänzen können.

Grundsätzlich ist es natürlich auch möglich, Punkte aus der Navigation zu entfernen oder einen neuen Unterpunkt zwischen zwei anderen Punkten zu ergänzen. Hierzu sind aber aufwändigere Operationen innerhalb des Arrays nötig, darum sollte dieses Vorgehen vermieden werden.

Beim Anlegen der Navigationspunkte kann man z.B. anhand der Session-Variable $_SESSION['SID_user']['admin'] prüfen, ob der Benutzer überhaupt eingeloggt ist und/oder ob der aktuelle Benutzerlevel (ROLE_EDITOR, ROLE_CHIEFEDITOR, ROLE_SUPERUSER bzw. ROLE_ADMIN) die gewünschte Aktion erlaubt.

Besonderes:

  • Um ein wenig Platz zwischen den Elementen der zweiten Ebene einzufügen, kann man ein leeres Element ohne "caption" benutzen:
      $navigation['FirstLevel'][] = 'space';
  • Für Elemente der ersten Ebene die keine Unterpunkte enthalten, gilt die folgende Variante ohne Unter-Array:
      $navigation['FirstLevel'] = array( // hier fehlt im Vergleich zu oben das [] vor der Zuweisung
          'caption' => 'caption',
          ...
      );

Beispiele:

Das folgende Codebeispiel zeigt das Anhängen eines neuen Unterpunktes unter der Navigationsebene "Module". Sollte diese noch nicht existieren, wird sie hierdurch erzeugt:

    $navigation['Modules'][] = array(
        'caption' => 'Ein Modul',
        'url'     => BASE_URL.'modulverzeichnis/aktion.php'
    );
    $navigation['Modules'][] = 'space';

Die letzte Zeile sorgt dafür, dass ein wenig Platz vor eventuell nachfolgenden Unterpunkten reserviert wird, falls z.B. andere Module ebenfalls Navigationspunkte unter "Module" ergänzen wollen.