Struktur

Template-Struktur und Navigationen


Konzept

Es gibt für den Aufbau einer Website meist nicht “den einzig richtigen Weg”. Beim Anlegen der Struktur, der Templates und Module existieren oft mehrere sinnvolle Wege, um das gewünschte Ziel zu erreichen. Meist hängen die besten Lösungswege auch vom jeweiligen Kontext ab.
Das macht es für REDAXO-Anfänger mitunter schwer und das Schreiben eines Redakteur-Handbuchs nahezu unmöglich, da die perfekte Struktur je nach Website sehr unterschiedlich sein kann.

Frameworks und Skripte

Diese Website nutzt Boostrap als CSS-Framework. Als Icon-Zeichensatz wird der zu Bootstrap gehörende Zeichensatz Font Awesome verwendet.

Weiterhin kommen Jquery sowie diverse Jquery-Plugins zum Einsatz wie PrettyPhoto (Lightbox Galerie), Flexslider (Slider auf der Startseite) oder Prettify (Formatierung von Code).

Kurze Erläuterungen der verwendeten Redaxo-AddOns findest Du auf einer eigenen Seite.

Bitte betrachte diese Demo-Website daher nicht als Maßgabe, wie man mit REDAXO zu arbeiten hat, sondern als EINEN möglichen und durchaus subjektiven Ansatz, eine Website aufzubauen.


Das REDAXO-Team

Kategorien und Artikel

In Redaxo gibt es Kategorien und Artikel. Einen Artikel kann man sich als ein Blatt Papier vorstellen, der Inhalte wie Texte, Bilder, Videos etc. enthält.

Kategorien dienen zum Anlegen einer Navigationstruktur. Kategorien enthalten immer mindestens einen Artikel, den Startartikel. Eine Kategorie ist also wie ein Ordner, der ein Blatt Papier enthält. Kurz: Artikel sind für Inhalte, Kategorien sind für die hierarchische Struktur.

Navigationen

Im Normalfall wird man also eine Navigation aus den Kategorien einer Website generieren. In REDAXO gibt es mehrere Möglichkeiten, dies umzusetzen. Für einfache Varianten existiert eine Klasse “rex_navigation”. Damit kann die meisten Navigationsvarianten auch mit minimalen PHP-Kenntnissen umsetzen.

Eine einfache Navigation könnte so aussehen:

<?php 
$nav = rex_navigation::factory();

echo '<div id="navigation">';
echo $nav->get(0,2,TRUE,TRUE);
echo '</div>';
?>

Erklärung zur rex_navigation

Diese Zeile definiert die Ausgabe der Navigation
$nav->get(0,-1,FALSE,TRUE);

  • Mit dem ersten Parameter – hier “0” – definiert man, an welcher Stelle die Navigation startet. Mit “0” beginnt die Navigation in der obersten Ebene.
  • Der zweite Parameter legt die Anzahl der Ebenen fest: “-1” bedeutet, dass alle Ebenen ausgegeben werden. Ansonsten wird hier die Anzahl der Ebenen eingetragen. Ein häufiger Wert ist 2 oder 3.
  • Mit dem dritten Parameter legst Du fest, ob alle Kategorien oder nur die aktiven Kategorien ausgegeben werden. “FALSE” erzeugt quasi eine Sitemap mit allen Kategorien, “TRUE” eine “normale” Navigation: Unterkategorien werden dann nur anzeigt, wenn man sich in der jeweiligen Hauptkategorie befindet.
  • Der vierte Parameter definiert, ob nur Artikel angezeigt werden, die online sind (“TRUE”) oder auch Offline-Artikel (“FALSE”).

Eigene Navigation

Auch wenn die rex_navigation für viele Anwendungsfälle ausreicht, so wird man manchmal auch Navigationen selbst erstellen müssen.
Ausgehend von dem “Path”-Feld jedes Artikels, der ähnlich einem Brotkrumenpfad Informationen darüber enthält, wo in der Seitenstruktur sich dieser Artikel befindet, kann man mit ein wenig PHP-Kenntnissen relativ rasch eine Navigation seiner Wahl zusammenbauen.

Hier sieht man den Code für die Navigation dieser Demo, der Einfachheit halber aber nur für die erste Ebene. Der komplette Code für beide Ebenen befindet sich im Template “05 . Navigation”.

<?php
$path = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
$path1 = ((!empty($path[1])) ? $path[1] : '');

echo '<ul>';

foreach (rex_category::getRootCategories() as $lev1) {

if ($lev1->isOnline(true)) {

if ($lev1->getId() == $path1) {
echo '<li class="active"><a href="'.$lev1->getUrl().'">'.htmlspecialchars($lev1->getValue('name')).'</a></li>';
} else {
echo '<li><a href="'.$lev1->getUrl().'">'.htmlspecialchars($lev1->getValue('name')).'</a></li>';
}

}
}

echo '<ul>';
?>

REDAXO CMS

Das CMS REDAXO ist dafür konzipiert, dass man es flexibel anpassen und den ausgegebenen Code vollständig kontrollieren kann. So eignet es sich als “CMS-Framework” vor allem für Agenturen, die sehr unterschiedliche Websites bauen wollen.

REDAXO 5 rocks!