Einfache Artikelliste / getArticles / toLink
Beschreibung
Dieses Modul erstellt eine eine Artikelliste der aktuellen Kategorie. Es wird überprüft ob die Artikel online geschaltet sind und ob es sich beim Artikel um einen Startartikel handelt.
Moduleingabe
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-question-circle" aria-hidden="true"></i> Artikelliste
</div>
<div class="panel-body">
Erstellt eine Liste aller Artikel dieser Ebene.
</div>
</div>
Modulausgabe
An die aktuelle Kategorie gelangen wir mit rex_category::getCurrent()
. Mit ->getArticles()
werden die Artikel der aktuellen Kategorie ausgelesen. Kombiniert: rex_category::getCurrent()->getArticles();
.
In einer foreach-Schleife werden die einzelnen Artikel abgearbeitet und deren Eigenschaften (z.B. Metadaten) ausgelesen. Hier erstellen wir eine UL-LI-Liste (unordered List) als Ausgabe. Die einzelnen Listenpunkte werden in der Variable $artOutput
zwischengespeichert und später ausgegeben. So ist es später einfach einen eigenen Wrapper oder andere Formatierungen anzuwenden.
<?php
$articleId = $class = $articleName = $artOutput = "";
// Aktuelle Kategorie ermitteln und Artikel auslesen
$articles = rex_category::getCurrent()->getArticles();
// Prüfen ob das Ergebnis gefüllt ist
if (is_array($articles) && count($articles) > 0) {
// Einzelne Artikel auslesen
foreach ($articles as $article) {
if ($article->isOnline()) {
// Überspringen wenn aktueller Artikel gefunden. (auskommentieren)
// if ( $article->getId() == 'REX_ARTICLE_ID') continue;
// Aktive CSS-Classe festlegen
$class = '';
if ($article->getId() == 'REX_ARTICLE_ID') {
$class = "active";
}
// Überspringen wenn Startartikel gefunden
if ($article->isStartArticle()) continue;
// ID des Artikels ermitteln
$articleId = $article->getId();
// Name des Artikels ermitteln
$articleName = $article->getName();
// Weitere Daten der Metainfos können wie folgt abgerufen werden:
// Beispiel für eine Meta-Info art_Image
// $articleImage = $article->getValue("art_Image");
// Ausgabe erstellen
$artOutput .= '<li class="' . $class . '"><a class="' . $class . '" href="' . rex_getUrl($articleId) . '">' . $articleName . '</a></li>' . "\n";
}
}
// Ausgabe
echo '<ul class="catlist">' . $artOutput . '</ul>';
unset($articles);
}