Backboneit navigation

Aus Contao Community Documentation


betrifft
Contao Version Alle Versionen
Extensions backboneit_navigation


backboneit_navigation

Erweiterung bestehend aus einer Sammlung von Navigationselementen (vorerst nur ein erweitertes Navigationsmodul).

ER: http://www.contao.org/erweiterungsliste/view/backboneit_navigation.10000009.de.html

Anmerkungen zum Bestimmen der Sichtbarkeit einer Seite:

  • Der Veröffentlichungsstatus gilt ausschließlich für eine Seite selbst. Das heißt zum Beispiel, dass eine Navigation durchaus dargestellt wird, selbst wenn die Referenzseite nicht veröffentlicht ist.
  • Der Seitenschutz für bestimmte Mitgliedergruppen vererbt sich auf alle Unterseiten, außer denjenigen die selbst explizit einen Seitenschutz für Mitgliedergruppen definieren und derren Unterseiten.
  • Die Einstellung "Nur Gästen anzeigen" gilt nur für die Seite selbst. Tatsächlich ist die Seite für angemeldete Benutzer auch noch verfügbar, soll nur in keiner Navigation angezeigt werden. (Anders als zum Beispiel Artikel, die nur Gästen angezeigt werden. Diese werden gar nicht mehr gerendert.)
  • "Im Menü verstecken" gilt nur für die Seite selbst.

Navigationsmenü

Ein Multitalent: Es ist alles möglich was mit einem Navigationsmenü oder einer Individuellen Navigation möglich ist, Kombinationen aus beiden und noch einiges mehr. Einfach ausprobieren.

Funktionen:

  • Kompatibel zu den Templates für das Standard-Navigationsmenü (einziger Unterschied ist, das Seiten die CSS-Klasse "submenu" tatsächlich auch nur dann bekommen, wenn dieses Untermenü gerendert wird)
  • Mehrere Referenzseiten (Wurzeln der Navigation)
  • Aktuelle Seite als Referenzseite
  • Startebene wird relativ zu den Referenzseiten berechnet (negative Startebene möglich)
  • Hardlimit flexibel (Anmerkung: Stopebene und Hardlimit beziehen sich relativ zur Startebene &endash; diessollte auch durch die geänderten Labels der Moduleinstellungen hervorgehen.
  • Versteckte und geschützte Seiten anzeigen
  • Als Sitemap verwendbar
  • Optimierte Algorithmen: Zum Beispiel wird pro Navigationsebene nur noch eine Datenbankabfrage durchgeführt, was vorallem bei einer sehr verzweigten Navigation Vorteile bringen sollte.
  • Erweiterbar per Hook

Navigation per Hook erweitern

config.php

$GLOBALS['TL_HOOKS']['backboneit_navigation_menu'][] = array('MyNavigationHook', 'hook');

MyNavigationHook.php

class MyNavigationHook {
 
  // ... singleton dummy code ...
 
  public function hook($objThis, $arrRoots) {
    $intParentID = 1; // the ID of the parent node, were your new node should be appended/inserted to.
 
    if(!isset($objThis->arrItems[$intParentID])) // test if the parent should be rendered (to avoid my hook, if it is not needed)
      return;
 
    $strMyNewNodeID = 'MyNavigationHook' . 1; // to avoid collision do not use plain numbers (reservered for tl_page dataset IDs)
    // and prefix the ID with something specific to your hook
 
    $objThis->varActiveID = $strMyNewNodeID; // set my new node as active navigation item
 
    $objThis->arrSubpages[$intParentID][] = $strMyNewNodeID; // append the my new node to the end of $intParentIDs childs
    $arrRoots[] = $strMyNewNodeID; // additionally add my new node to the end of the first level
 
    $objThis->arrItems[$strMyNewNodeID] = array(
      'class' => 'myclass',
      'isTrail' => true, // whether this node is in the trail path of the active page
      // ... more rendering information for the navigation template (see class AbstractNavigationMenu for all fields) ...
    );
 
    return $arrRoots; // return the modified first navigation level (not needed if unmodified)
  }
 
}
Ansichten
Meine Werkzeuge

Contao Community Documentation

Das hier ist eine abstrakte Konversation

Marc A. Harnos
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge