Uns kommt nichts über die Lippen, als das Bier, an dem wir nippen

*

Ohne Vision, ohne Navigation, ohne Echolot.
Wir treiben auf der Stelle ohne Zielkanäle unterm Kiel,
Keine Welle schlägt gegen den Bug.

Jennifer Rostock // Echolot

Auch in dieser Variante, in der die Sektionen durch Artikel aufgebaut werden, muss erst der gesamte Content geparst und und aus den einzelnen Artikeln gesammelt werden, bevor er unterhalb der Navigation ausgegeben wird.

Das Prinzip: Der Startartikel erzeugt die Ausgabe, die Inhalte kommen aus den weiteren Artikeln, berücksichtigt nur Artikel mit dem Status “Online”.

Textersetzungen erleichtern die Formatierung. So erledigt z.B. eine Ersetzung die Generierung von <span class="label label-primary"> durch die Eingabe von zwei Sternchen. Oder – wie unten im Beispiel-Code – die Auszeichung eines Links mit der Klasse “button” wird dank einer Ersetzung ergänzt mit den Formatierungen für ein großen Button mit dunklem Hintergrund und Pfeillchen im Button: "btn btn-lg btn-black btn-arrow".

<?php
echo '<ul>';

$cat = rex_category::get($this->article_id);
// Alle Artikel der aktuellen Kategorie ermitteln mit dem Status online
$articles = $cat->getArticles(true);

if (is_array($articles) && count($articles) > 0) {

foreach ($articles as $article) {
// Der Inhalt des aktuellen Artikels soll nicht nochmal erneut ausgelesen werden
if ($article->getId() == REX_ARTICLE_ID) continue;
// Der Startartikel wird nicht berücksichtigt
if ($article->isStartArticle()) continue;

// rex_string::normalize entfernt Sonderzeichen für eine gültige URL
echo '
<li><a href="" data-scroll="true" data-id="#'.rex_string::normalize($article->getName()).'">'.$article->getName().'</a></li>';

// Das Artikel-Objekt wird angesprochen
$article_content = new rex_article_content($article->getId());
// Der Inhalt der Unter-Artikel wird an den Artikel-Inhalt angehängt
// Zu Beginn wird immer ein Sprunganker erzeugt
$content .= '
<div id="'.rex_string::normalize($article->getName()).'"></div>';
$content .= str_replace('class="button', 'class="btn btn-lg btn-black btn-arrow', $article_content->getArticle());
}
}

echo '</ul>';

echo $content;
?>
Stage