Contao: News auf unterschiedlichen Seitenbäumen einsetzen

Contao kann leider etwas starr sein was die Nutzung von News in Installationen mit mehreren Seitenbäumen angeht - gerne besteht es darauf, dass es eine Weiterleitungsseite für den Newsreader zu geben hat. Somit ist der Ensatz eines zentralen Newsartikel-Archives in Multidomaininstalationen gerne mal etwas hakelig. Aber man kann das ändern.

Kleines Helferlein ist dabei wiederum die Extension Inherit_Insert_Tags, die man benutzen kann um das Newslistentemplate den eigene Wünschen entsprechend anzupassen. Wir hätten gerne einen brauchbaren Link - und den basteln wir uns jetzt.

Ein Blick in den Ursprungsquellcode zeigt uns, dass der Link auf eine Detailseite wie folgt generiert wird:

<?php if ($this->text || $this->teaser): ?>
<p class="more"><?php echo $this->more; ?></p>
<?php endif; ?>

Der Link kommt aus dem 'more' und wird zentral im Nachrichtenarchiv festgelegt. Das gefällt uns nicht - wir möchten gerne auf jeder Domain (also in jedem Seitenbaum) eine eigene Seite für das Lesemodul haben. Also setzen wir uns den Link manuell im Template zusammen:

<a href="{ {env::url}}/pfad/zur/detailseite/<?php echo $this->alias; ?>.html"><?php echo $this->newsHeadline; ?></a>

Das ist schon brauchbar - { {env::url}} liefert den Startpunkt, und der Pfad zur Detailseite wird mit dem Alias der News abgeschlossen. Nicht so schön ist, dass wir jetzt für jedes Listmodul ein eigenes Template brauchen. Wir möchten den Pfad ja gerne dynamisch haben.

Also legen wir uns mit IIT ein paar Variablen an, die sich zentral in den Einstellungen der jeweiligen Wurzelseite pflegen lassen. Eine Konstruktion wie news_detailpfad bekommt dann als Variable /pfad/zurdetailseite/' - und das kann ja in jedem Seitenbaum ein unterschiedlicher Pfad sein.

Danach passen wir den Detailink im Newslister noch wie folgt an und sind dann auch schon fertig:

<a href="{ {env::url}}{ {iit::news_detailpfad}}<?php echo $this->alias; ?>.html"><?php echo $this->newsHeadline; ?></a>

Dem Einsatz in einer Multidomainumgebung steht damit nichts mehr im Wege.

Zurück