XNavigation: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Anpassen)
 
(8 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
xNavigation bietet eine erweiterte Navigation und Sitemap, die mittels Hooks leicht erweitert werden kann.
+
[[en:xNavigation]]
 +
[[Kategorie:Extensions]]
 +
[[Kategorie:Extensions/Inhaltselemente]]
 +
[[Kategorie:Extensions/Module]]
 +
 
 +
xNavigation steht für ''e<strong>x</strong>treme e<strong>x</strong>tendable and fle<strong>x</strong>ible 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 ==
 +
 
 
{{ExtInfo
 
{{ExtInfo
 +
| Name=bit3/contao-xnavigation
 
| Dev=Tristan Lins ([[User:tril|tril]])
 
| Dev=Tristan Lins ([[User:tril|tril]])
| DevSite=http://www.infinitysoft.de
+
| DevSite=http://bit3.de
| ExtVersion=1.5.0
+
| ERLink=https://packagist.org/packages/bit3/contao-xnavigation
| Version=2.9.0 - 2.9.1 (ab xNavigation 1.5)
+
| TrackerLink=https://github.com/bit3/contao-xnavigation
| TLVersion=2.8.0 - 2.8.3 (xNavigation 1.0)
+
| Depending=[[ce_navigation|Content Navigation]] (nur xNavigation 1.0)
+
| Community Link=http://www.contao-community.de/showthread.php?5967-Modulvorstellung-xNavigation-und-ce_navigation
+
| ERLink=http://www.contao.org/erweiterungsliste/view/xNavigation.de.html
+
| DonateLink=
+
| TrackerLink=http://dev.infinitysoft.de/projects/xnavigation/issues
+
| Comment=[http://www.contao-community.de/showthread.php?5967-Modulvorstellung-xNavigation-und-ce_navigation Modulvorstellung in der Contao Community]
+
 
}}
 
}}
[[en:xNavigation]]
+
 
[[Kategorie:Extensions]]
+
Das Hauptpaket stellt das Framework, die Verwaltung von Bedingungen, Providern und Menüs, sowie die Module/Inhaltselemente zur Verfügung.
 +
 
 +
{{Achtung|Das Hauptpaket alleine liefert '''keine Provider''' mit. Verwenden Sie einen der folgenden Provider um Menüpunkte erzeugen zu können!}}
 +
 
 +
{{ExtInfo
 +
| Name=bit3/contao-xnavigation-page
 +
| Dev=Tristan Lins ([[User:tril|tril]])
 +
| DevSite=http://bit3.de
 +
| ERLink=https://packagist.org/packages/bit3/contao-xnavigation-page
 +
| TrackerLink=https://github.com/bit3/contao-xnavigation-page
 +
}}
 +
 
 +
Das ''Page'' Paket stellt Provider für die Seitenstruktur zur Verfügung.
 +
 
 +
{{ExtInfo
 +
| Name=bit3/contao-xnavigation-article
 +
| Dev=Tristan Lins ([[User:tril|tril]])
 +
| DevSite=http://bit3.de
 +
| ERLink=https://packagist.org/packages/bit3/contao-xnavigation-article
 +
| TrackerLink=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.
 +
 
 +
{{ExtInfo
 +
| Name=bit3/contao-xnavigation-content
 +
| Dev=Tristan Lins ([[User:tril|tril]])
 +
| DevSite=http://bit3.de
 +
| ERLink=https://packagist.org/packages/bit3/contao-xnavigation-content
 +
| TrackerLink=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 ==
 
== Beschreibung ==
 +
 +
{{stub}}
 +
 +
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 [https://github.com/bit3/php-flexi-tree 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 [https://github.com/bit3/php-flexi-tree 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 ==
 +
 +
{{stub}}
  
 
== Alte Versionen ==
 
== Alte Versionen ==
  
 
=== xNavigation 1.5 ===
 
=== xNavigation 1.5 ===
 +
 +
{{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.
 
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.
Zeile 31: Zeile 97:
 
Eine Detaillierte Beschreibung findet sich hier [http://www.contao-community.de/showthread.php?5967-Modulvorstellung-xNavigation-und-ce_navigation Modulvorstellung in der Contao Community].
 
Eine Detaillierte Beschreibung findet sich hier [http://www.contao-community.de/showthread.php?5967-Modulvorstellung-xNavigation-und-ce_navigation Modulvorstellung in der Contao Community].
  
==Modulkonfiguration==
+
=== Modulkonfiguration ===
 +
 
 
[[Datei:Xnavigation_be_modul.png|Modulkonfiguration]]
 
[[Datei:Xnavigation_be_modul.png|Modulkonfiguration]]
==Seitenkonfiguration - Artikel==
+
 
 +
=== Seitenkonfiguration - Artikel ===
 +
 
 
[[Datei:Xnavigation_be_page_article.png|Seitenkonfiguration - Artikel]]
 
[[Datei:Xnavigation_be_page_article.png|Seitenkonfiguration - Artikel]]
==Seitenkonfiguration - News==
+
 
 +
=== Seitenkonfiguration - News ===
 +
 
 
[[Datei:Xnavigation_be_page_news.png|Seitenkonfiguration - News]]
 
[[Datei:Xnavigation_be_page_news.png|Seitenkonfiguration - News]]
==Seitenkonfiguration - Sichtbarkeit==
+
 
 +
=== Seitenkonfiguration - Sichtbarkeit ===
 +
 
 
[[Datei:Xnavigation_be_page_visibility.png|Seitenkonfiguration - Sichtbarkeit]]
 
[[Datei:Xnavigation_be_page_visibility.png|Seitenkonfiguration - Sichtbarkeit]]
==FE Beispiel==
+
 
 +
=== FE Beispiel ===
 +
 
 
[[Datei:Xnavigation_fe_example.png|FE Beispiel]]
 
[[Datei:Xnavigation_fe_example.png|FE Beispiel]]

Aktuelle Version vom 9. Juli 2014, 09:45 Uhr


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

Chuck Norris programmiert kein PHP, er diktiert das Ergebnis. Den Rest macht der Editor aus Angst.

Stefan Lindecke
In anderen Sprachen
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge