Content_SeitennavigationModulanzeige

Guite edited this page Nov 15, 2014 · 1 revision

Komplette Webpräsenzen erstellen und gestalten mit Content.

Seitennavigation mit Content

Der Content Menu-Block

Content stellt einen Menü-Block zur Verfügung, mit dem man unter einer Voraussetzungen die komplette Navigation einer Seite erstellen kann: Jede Seite, die in der Navigation enthalten sein soll, muss natürlich auch mit Content erstellt werden.

Seiten erstellen, aber nicht im Menü anzeigen.

Soll eine Seite nicht in der Navigation auftauchen, macht man beim Erstellen/Bearbeiten einer Seite unter Optionen den Haken bei Seite im Menü einfügen weg.

Das Aussehen des Menüs anpassen.

Die Templates des Menüblocks heißen content_block_menu.html und content_include_block_menuitem.html und befinden sich im Verzeichnis /modules/content/pntemplates. Um die gemachten Änderungen vor dem Überschreiben durch Updates zu schützen, sollte man die veränderten Dateien im Verzeichnis /themes/meinTheme/templates/modules/content ablegen. Die individuelle Gestaltung sollte natürlich jedem selbst überlassen bleiben. Eine Beispieldatei zur Veranschaulichung wird demnächst hier hochgeladen.

Aktuellen Menüpunkt hervorheben.

Ein hier und da gewünschtes Feature ist das Highlighting des aktuellen Menüpunktes. Die hier vorgestellte Methode ermöglicht zudem die Hervorhebung des Hauptmenüpunktes, wenn man sich auf einer Unterseite befindet. Die hier vorgestellten Zeilen müssen in der oben erwähnten Datei content_include_block_menuitem.html eingefügt werden. Zur Veranschaulichung dient die ebenfalls erwähnte, demnächst hier hochgeladene Beispieldatei. Folgende Zeile holt die aktuelle URL und schreibt sie in eine Variable, hier currenturl: >!--[pngetcurrenturl assign=currenturl]--> Danach wird verglichen, ob die aktuelle URL mit der Baseurl übereinstimmt und im Erfolgsfall einer Variable, hier current der Wert current zugewiesen: <!--[if $currenturl == $baseurl]--> <!--[assign var="current" value="current"]--> Damit wird der Fall abgedeckt, dass man sich auf der Startseite befindet. Für alle anderen Fälle geht es wie folgt weiter: <!--[else]--> Aus der aktuellen URL wird der Parameter pid ausgelesen (Seiten-Id von Content) und der Variablen contenPID zugewiesen: <!--[pnvarcleanfrominput name="pid" assign="contentPID"]--> Für Hauptmenüpunkte wird contentPID mit der page.id verglichen. Im Erfolgsfall wird wieder Variable current mit dem Wert current versehen: <!--[if $contentPID == $page.id]--> <!--[assign var="current" value="current"]--> <!--[/if]--> Für Untermenüpunkte muss die ID einer Subpage mit dem Wert der Variable contentPID übereinstimmen UND die ParentPageId mit der Page.id übereinstimmen: Im Erfolgsfall wird wieder die Variable current mit dem Wert current versehen: <!--[foreach from=$page.subPages item=subpage]--> <!--[if $subpage.id == $contentPID && $subpage.parentPageId == $page.id]--><!--[assign var="current" value="current"]--><!--[/if]--> <!--[/foreach]--> Das anfängliche if muss natürlich noch abschließend geschlossen werden: <!--[/if]--> Die Variable current wird dann verwendet, um einem html-Element die Klasse current zu verleihen

Beliebige Modulinhalte in Content anzeigen

Auch wenn die Tatsache, nur Content-Seiten im Menü anzeigen zu können, zunächst nach einer ziemlichen Einschränkung aussieht, kann man diese auf sehr einfache Weise umgehen. Content bietet nämlich die Möglichkeit, die Anzeige eines jeden Moduls auf einer Content-Seite auszugeben. Dazu wählt man beim Bearbeiten einer Seite unter Neuen Inhalt zur Seite hinzufügen den Inhaltstyp Modulanzeige aus. Will man z.B. den Inhalt des News-Moduls anzeigen, macht man folgende Angaben:

  • Modulname: News, Funktionstyp: user, Funktionsname: view.
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.