XNavigation

Aus Contao Community Documentation


xNavigation steht für extreme extendable and flexible navigation und stellt eine leicht erweiterbare Navigation zur Verfügung, die nicht nur die Seitenstruktur, sondern auch Artikel, Inhaltselemente, News, Events und mehr abbilden kann.

Pakete

Erweiterungs-Übersicht
Name bit3/contao-xnavigation
Name des Entwicklers Tristan Lins (tril)
Entwickler Webseite http://bit3.de
Link zum Extension Repository https://packagist.org/packages/bit3/contao-xnavigation
Link zum Tracker https://github.com/bit3/contao-xnavigation


Das Hauptpaket stellt das Framework, die Verwaltung von Bedingungen, Providern und Menüs, sowie die Module/Inhaltselemente zur Verfügung.


Achtung.png Achtung: Das Hauptpaket alleine liefert keine Provider mit. Verwenden Sie einen der folgenden Provider um Menüpunkte erzeugen zu können!


Erweiterungs-Übersicht
Name bit3/contao-xnavigation-page
Name des Entwicklers Tristan Lins (tril)
Entwickler Webseite http://bit3.de
Link zum Extension Repository https://packagist.org/packages/bit3/contao-xnavigation-page
Link zum Tracker https://github.com/bit3/contao-xnavigation-page


Das Page Paket stellt Provider für die Seitenstruktur zur Verfügung.


Erweiterungs-Übersicht
Name bit3/contao-xnavigation-article
Name des Entwicklers Tristan Lins (tril)
Entwickler Webseite http://bit3.de
Link zum Extension Repository https://packagist.org/packages/bit3/contao-xnavigation-article
Link zum Tracker https://github.com/bit3/contao-xnavigation-article


Das Article Paket stellt Provider für Artikel zur Verfügung. Damit lassen sich die Artikel von Seiten in der Navigation anzeigen.


Erweiterungs-Übersicht
Name bit3/contao-xnavigation-content
Name des Entwicklers Tristan Lins (tril)
Entwickler Webseite http://bit3.de
Link zum Extension Repository https://packagist.org/packages/bit3/contao-xnavigation-content
Link zum Tracker https://github.com/bit3/contao-xnavigation-content


Das Content Paket stellt Provider für Inhaltselemente zur Verfügung. Damit lassen sich die Inhaltselemente von Artikeln in der Navigation anzeigen.

Beschreibung

MsgError.png Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.

Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis.


Mit xNavigation lassen sich Navigationen und Sitemaps erzeugen. Eigentlich liefert Contao dafür bereits ein Modul, dieses lässt sich aber nicht beliebig erweitern. xNavigation ist nicht die einzige Erweiterung, die sich mit dem Problem beschäftigt. Alternativ gibt es bspw. die Backboneit navigation, die jedoch etwas weniger abstrakt aufgebaut ist.

xNavigation zeichnet sich durch folgende Funktionalitäten aus:

  • Aufbau der Navigation in einem Item-Tree
    • Intern wird mit einem Item-Tree gearbeitet. Dieser basiert auf der bit3/php-flexi-tree Bibliothek.
  • Unterstützung von Events
    • Intern werden zur Kommunikation und zum Aufbau Events verwendet.
  • Lazy-Loading des Item-Tree's
    • Anstatt alle Items in einem Zug zu laden, werden die Items sukzessiv bei Bedarf geladen. Die dadurch entstehende "Entzerrung" sorgt für eine höhere Performance durch bessere Verteilung der IO/Datenbank Last und sie verhindert das erzeugen unnötiger Items.
  • Individualisierbare Bedingungen
    • Für gewöhnlich definiert die Navigationserweiterung selbst wann Einträge angezeigt werden sollen und wann nicht. Bei xNavigation geschieht dies durch ein Set von Bedingungen, das man selbst aufbauen muss. Dadurch erreicht man eine nie dagewesene Flexibilität. Einfach mal einen Teilbaum ausblenden? Kein Problem, mit einer eigenen Bedingung die sich bequem über das Backend konfigurieren lässt überhaupt kein Problem.
  • Flexible Provider
    • Die Einträge und deren Detailinformationen werden von sogenannten Providern geliefert. Welche Provider in welchem Menü verwendet werden kann frei bestimmt werden, damit ist es sehr einfach festzulegen, welche Einträge in welchem Menü überhaupt angezeigt werden.

Internas

Intern arbeitet xNavigation mit der bit3/php-flexi-tree Bibliothek. Genau genommen primär mit der event driven Implementierungen. Durch die Verwendung der event driven Implementierung entsteht das lazy loading. Die event driven und die statischen (normalen) Items können aber auch beliebig kombiniert werden. Der Nachteil dieser Technik ist allerdings, dass der ganze Item-Tree nicht mehr stateless ist, was aber für den Einsatz in Contao vertretbar ist.

Beim erzeugen des Item-Tree's wird ein eigener EventDispatcher verwendet. Das ist notwendig, weil es sonst unmöglich ist, Provider einem Menü zuzuordnen. D.h. es ist nicht möglich, über globale Events auf die Generierung des Item-Tree's einzugreifen.

Anpassen

MsgError.png Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.

Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis.


Alte Versionen

xNavigation 1.5

Hinweis.png Hinweis: Die Erweiterung wurde für Version 2 vollständig überarbeitet und neu geschrieben.


Seit Version 1.5.0 ist das Modul xNavigation modular aufgebaut. Die Integration der Inhaltsnavigation und Newsarchiv-Navigation wurde extrahiert und wird über externe Module bereit gestellt.

Achtung.png Achtung: Benutzer der xNavigation müssen beim Update beachten, dass die Integration der Inhaltsnavigation und Newsarchiv-Navigation entfernt wurde. Wer diese Funktion benutzt, sollte mit dem Update warten, bis die dafür erforderlichen Module bereitgestellt werden.


Das modulare Konzept, erlaubt nun eigene Menüpunkte auf einfache Art und Weise zur Verfügung zu stellen. Details hierzu sind dem Handbuch zu entnehmen.

xNavigation 1.0

Eine Detaillierte Beschreibung findet sich hier Modulvorstellung in der Contao Community.

Modulkonfiguration

Modulkonfiguration

Seitenkonfiguration - Artikel

Seitenkonfiguration - Artikel

Seitenkonfiguration - News

Seitenkonfiguration - News

Seitenkonfiguration - Sichtbarkeit

Seitenkonfiguration - Sichtbarkeit

FE Beispiel

FE Beispiel

Ansichten
Meine Werkzeuge

Contao Community Documentation

Ich habe eine Anpassungsgeschichte angepasst.

Leo Feyer
In anderen Sprachen
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge