[ce_article_list] Inhaltselement für Artikellisten und Seitenlisten
Hier meine zweite Contao-Erweiterung:
Mit dem Inhaltselementen Artikelliste und Seitenliste kann man die Artikel verschiedener Seiten oder nur bestimmte Seiten als Liste einbinden. Die Seiten werden automatisch als untergeordnete Überschrift der Inhaltselement-Überschrift gesetzt. So entsteht bspw. folgende Struktur:
Überschrift Artikelliste (h2)
Seitentitle 1 (h3)
Teasertext des ersten Artikels
Seitentitel 2 (h3)
Teasertext des ersten Artikels
Die Überschriften können optional deaktiviert werden, sodass ohne Änderungen am Template Seitenüberschriften auch ausgeblendet werden können.
Templates: Über das Template lässt sich das natürlich noch beliebig anpassen. Im Template steht bspw. für jeden Artikel der Teaser zur Verfügung. Somit kann leicht in der Artikelliste der Teasertext des ersten Artikels ausgegeben werden.
Unterseiten: Über eine Option können automatisch alle Unterseiten der Seite verlinkt werden, auf der das Inhaltselement eingebunden ist. Dazu müssen diese Seiten nicht im Seitenbaum angewählt werden. Zusätzlich können jedoch weitere Seiten aus anderen Zweigen hinzugefügt werden.
Rekursiv: Ist diese Option gewählt, werden rekursiv alle Unterseiten von ausgewählten Seiten mit einbezogen. Dabei ist es egal, ob es sich um manuell über den Seitenbaum ausgewählte Seiten handelt oder um Unterseiten der aktuellen Seite.
Versteckte Seiten: Ist diese Option angewählt, werden auch Unterseiten automatisch ausgewählt, die mit der Option „Im Menü verstecken“ versehen sind. Manuell über den Seitenbaum ausgewählte Seiten werden unabhägig von dieser Option immer angezeigt.
Verlinken: Ist nur ein Artikel in einer Seite vorhanden, kann optional die Seite statt dem Artikel verlinkt werden, um doppelten Content (DC) zu vermeiden.
Sortierung: Ist die Option „Unterseiten automatisch verlinken“ aktiviert, werden die Unterseiten immer am Anfang aufgelistet. Weitere manuell ausgewähle Seiten werden in der gleichen Reihenfolge wie im Seitenbaum angezeigt aufgelistet.
Artikelbilder: Ist die Erweiterung zArticleImage oder teaserimages installiert, können die dort gesetzten Bilder in der Artikelliste mit angezeigt werden. Dazu muss das Template entsprechend angepasst werden (siehe Handbuch)
http://www.contao.org/erweiterungsli...e_list.de.html
Hinweis: Fehlermeldungen und Feature-Requests bitte hier melden.
Sortierung der Artikkelliste
Wirklich eine tolle Erweiterung, welche mir sehr gelegen kommt. Vielen, vielen Dank dafür!
Ein kleines Problem habe ich noch mit der Reihenfolge der Artikel:
Wenn ich einzelne Seiten auswähle (also nicht die Option "Unterseiten automatisch verlinken" verwende), werden diese nicht in der selben Reihenfolge wie in der Seitenstruktur aufgelistet. Vielmehr wirkt es willkürlich.
Lässt sich das ändern?
Viele Grüße
JaiBee
Liste der Anhänge anzeigen (Anzahl: 1)
[Feature Request] Unterseiten einer ausgewählten Seite verlinken
Hallo netspy,
jetzt hätte ich hiermit noch eine Feature-Anfrage:
Momentan muss man ja jede Seite, deren Artikel aufgelistet werden sollen, einzeln auswählen. Eine Funktion, mit der die Unterseiten einer ausgewählten Seite automatisch verlinkt werden, wäre sehr komfortabel. Von der Funktionsweise also ähnlich wie bei den Navigationsmenüs.
http://www.contao-community.de/attac...6&d=1314705953
Vielleicht findest du ja noch Zeit, in der du das integrieren kannst. Ansonsten kann auf die Funktion auch verzichtet werden, wobei es die Arbeit der Redakteure durchaus erleichtern würde.
Besten Dank im Voraus,
Gruß JaiBee
Teaserbild in der Artikelliste?
Hallo Netspy,
tolle Erweiterung - absolut praktisch und auch mittel-alte Hasen leicht verständlich, mein Kompliment!.
Frage gibts natürlich auch: Ich habe zusätzlich die Erweiterung zArticleImage installiert und würde nun gerne auch das Teaserbildchen in die Artikelliste integrieren. Kann ich da das article_list Template leicht anpassen oder sind das zwei verschieden Paar Schuhe?
Danke für Tipps!
LG
Sonja
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Sonja,
ich habe mir das mal angeschaut und so ganz trivial ist das nicht. zArticleImage habe ich auch nicht installiert und kann es jetzt momentan auch nicht testen. Ich habe dir aber mal eine angepasste ArticleList.php angehangen, mit der es – so hoffe ich – funktionieren könnte. Ersetze die Datei mal im Verzeichnis /system/modules/ce_article_list und passe dann dein Template in der Art an:
PHP-Code:
<?php foreach ($page['articles'] as $article): ?>
<li><?php if ($article['image']): ?> … <?php endif; ?><a href="<?php echo $article['link']; ?>"><?php echo $article['title']; ?></a></li>
<?php endforeach; ?>
Wenn ein zArticleImage gesetzt ist, sollte $article['image'] ein Objekt mit den Bilddaten sein, also bspw. $article['image']->src oder $article['image']->imgSize. Ich kann es momentan aber nicht testen und bräuchte da mal deine Rückmeldung.
Gruß
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Sonja,
ich habe es jetzt selber noch mal mit zArticleImage getestet und da war noch ein kleiner Fehler im Script. Versuche es noch mal mit der angehängten ArticleList.php – damit hat es bei mir jetzt funktioniert. Das Template sieht in etwa so aus:
PHP-Code:
<div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
<?php if ($this->headline): ?>
<<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
<?php endif; ?>
<?php foreach ($this->pages as $page): ?>
<<?php echo $this->hlPage; ?>><?php echo $page['title']; ?></<?php echo $this->hlPage; ?>>
<ul>
<?php foreach ($page['articles'] as $article): ?>
<li><?php if ($article['image']): ?>
<div class="image_container<?php echo $article['image']->floatClass; ?>"<?php if ($article['image']->margin || $article['image']->float): ?> style="<?php echo trim($article['image']->margin . $article['image']->float); ?>"<?php endif; ?>>
<?php if ($article['image']->href): ?><a href="<?php echo $article['image']->href; ?>"<?php echo $article['image']->attributes; ?> title="<?php echo $article['image']->alt; ?>"><?php endif; ?>
<img src="<?php echo $article['image']->src; ?>"<?php echo $article['image']->imgSize; ?> alt="<?php echo $article['image']->alt; ?>">
<?php if ($article['image']->href): ?></a><?php endif; ?>
<?php if ($article['image']->caption): ?><p class="caption"><?php echo $article['image']->caption; ?></p><?php endif; ?>
</div>
<?php endif; ?><a href="<?php echo $article['link']; ?>"><?php echo $article['title']; ?></a>
<?php if (strlen($article['teaser'])): ?>
<div><?php echo $article['teaser']; ?></div>
<?php endif; ?></li>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>
Allerdings macht das die Extension insgesamt ein klein wenig langsamer und das Template unübersichtlicher. Wenn Bedarf besteht und es Sinn macht, veröffentliche ich das gerne so, nur weiß ich nicht, wie weit die zArticleImage-Erweiterung überhaupt verbreitet ist und ob dann in die Artikelliste die Bilder noch rein müssen.
Gruß
Verschachtelungstiefe begränzen / Level ausgeben?
Hallo netspy,
wie lässt sich die Verschachtelungstiefe beschränken (Stopelevel)?
Code:
- 1 (Option "Unterseiten automatisch verlinken")
--- 1.1
--- 1.2
------ 1.2.1
------ 1.2.2
--- 1.3
In der Artikelliste soll nur die erste Unterebene ausgegeben werden:
Code:
- 1
--- 1.1
--- 1.2
--- 1.3
Ich bräuchte die Funktion nicht zwingend in der Erweiterung, aber einen Ansatz, wie ich die Ebene / Level bestimmen kann, um mein Template entsprechend anpassen zu können.
Vielleicht fällt dir ja dazu noch etwas ein.
Vielen Dank, übrigens, für die Erweiterung – ohne die ArticleList wäre mein aktuelles Projekt nicht das, was es heute schon ist!
Gruß
EDIT: Ich habe mir nun ein erstes Workaround gebastelt, welches aber nicht besonders zuverlässig und "stabil" sein wird: da ich die Erweiterung folderurl nutze, sind die URLs wie folgt aufgebaut: /1/1.2/ und /1/1.2/1.2.1. Ich vergleiche nun immer den in der Liste vorigen Link mit dem aktuellen – wenn der aktuelle Link den vorherigen enthält, handelt es sich um eine Unterseite und der Link wird nicht angezeigt.
Diese Lösung ist aber nicht wirklich schön und funktioniert nur, wenn die URLs umgeschrieben werden. Daher hoffe ich auf eine bessere Lösung.