Weiterlesen Button bei News und Events in Contao - Lösungen

Es gab in der Contao Historie immer mal wieder Änderungen in den News- und Event-Templates. Seit einiger Zeit sind die Template aber so konfiguriert, das grundsätzlich verlinkt wird, egal ob es überhaupt weitere Infos gibt. Hat man News oder Events die nur einen Teaser haben, braucht man diese Links aber nicht. Sie führen zum Newsleser und man erhält nur erneut die gleiche Ansicht mit dem Teaser. Usability geht aus meiner Sicht anders!

Habe ich keine weiteren Infos anzubieten, dann wünsche ich auch keinen "Weiterlesen-Link". Und solche gemischten Inhalte mit News mal ohne Bild, mal ohne Inhalte, mal mit umfangreichen Inhalten... hat man doch ständig.

Wie stellt man das Template also ein, dass die Links bei Bedarf da sind und im anderen Fall nicht?

Im Contao normalen Template news_latest.html5 steht:

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

Stattdessen kann man folgendes einfügen:

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

Der Weiterlesen-Link wird dann nur angezeigt, wenn auch ein Text innerhalb der News (oder des Events) vorhanden ist. Wird ein anderes Weiterleitungsziel oder ein Inhalt eingestellt, erscheint der Link wieder.

Checked!

 

Aber es gibt da noch den Link auf der Headline. Der soll natürlich auch nicht sein, wenn es keine Inhalte in der News gibt. Also statt:

<h2><?= $this->linkHeadline ?></h2>

Sollte besser dies verwendet werden:

<?php if ($this->text): ?>		
		<h2><?= $this->linkHeadline ?></h2>
<?php else: ?>
		<h2><?= $this->newsHeadline ?></h2>
<?php endif; ?>

Die Abfrage prüft bei der Headline ob es Inhalte gibt oder nicht und setzt diesen im Anwendungsfall. Auch hier funktioniert es korrekt, wenn ein anderes Weiterleitungsziel als der Standard gewählt wird.

Checked!

 

Leider ist diess noch immer nicht alles. Das Teaderbild ist auch noch verlinked und auch der Link soll raus, wenn es nur den Teaser gibt. Hier steht folgendes in unserem Beispieltemplate news_latest.html5:

<?php if ($this->addImage): ?>
   <?php $this->insert('image', $this->arrData); ?>
<?php endif; ?>

In der Community gibt es den einfachen Tipp, im Template folgende Zeile mit einzufügen (irgendwo oben):

<?php $this->href = null; ?>

Der Link auf dem Bild ist dann weg, allerdingt dauerhaft. Wer den Link bei vorhandenen Inhalten oder anderen Weiterleitungszielen dann noch haben möchte, sollte diese Methode nicht nutzen.

Den Bildbereich könnte man wie folgt austauschen:

<?php if ($this->addImage): ?>
		<?php if ($this->text): ?>
		   <?php $this->insert('image', $this->arrData); ?>
		<?php else: ?>
           <?php unset($this->arrData['href'], $this->arrData['imageHref']); ?> 
        <?php $this->insert('image', $this->arrData); ?>
       <?php endif; ?>
  <?php endif; ?>

Ob das jetzt schönes Coding ist, oder nicht... es funktioniert und die notwendigen Bildroutinen bleiben erhalten, so dass man auch weiterhin die webp-Bildumwandlung (source) nutzen kann.

Checked!

 

Oh Mann, was für eine Arbeit!

Ich weiß nicht ob es sinnvoll ist, dass man so viel in den Templates arbeiten muss, um eine logischen Aufbau umzusetzen. Mag sein es gab dazu schon viele Diskussionen und auch Abstimmungen rund um das Contao-Team... aber aus meiner Sicht ist es unlogisch etwas zu verlinken, wenn den User dann keine weiteren Infos erwarten. So rein intuitiv würde ich mir das im Standardtemplate anders wünschen und nicht nur mit einer Standardfunktion die einfach alles stumpf verlinkt.
Irre ist doch auch, dass bei einer News die nur aus Headline, Teaserbild und Teasertext besteht die Links gesetzt werden und dann im Nachrichtenleser, mit einem news_full.html5 Template das Bild dann auch dort noch verlinkt ist. Bei klick auf das Bild öffnet sich die gleiche News erneut im Newsleser. Nein, das geht gar nicht.

Aber sei es drum, es ist halt so.

Zurück

Kein Erfolg mit den hier beschriebenen Contao-Lösungen? Klappt es nicht mit dem gewünschten Contao-Update oder dem Umzug auf einen neuen Hostingserver?

Wenn die Frustration zu groß wird, einfach bei mir melden:
info@liquid-artwork.de - Ansprechpartner: Lars Scheumann
oder per Telefon: 07223 / 91 59 372

Fragen Sie den Contao Spezialisten
Manchmal ist es besser solche umfangreichen Aufgaben dem Profi zu überlassen, der schneller und sorgfältiger damit umgehen kann. Kostet seinen Preis, aber lohnt sich schnell, bevor man sich tagelang damit herum ärgert. LIQUID-ARTWORK betreut auch Kunden die ihre Webseite selbst erstellt haben, oder durch Dritte erstellt wurden. Kurze Anfrage bei mir und nach einer ersten Prüfung kann ich meist einen groben Preis nennen. Die Anfrage bei mir als alleine kostet dabei nichts!

Contao Spezialist - Contao Problemlösungen

Viele weitere, ähnliche und hoffentlich hilfreiche Beiträge findet Ihr im kompletten Contao-Helpdesk das ständig erweitert wird.

Zum Contao-Helpdesk...