Contao - News-Titel im Breadcrumb

von S. Huxal (Kommentare: 0)

Contao-Tutorial

Anzeige des Newstitels im Breadcrumb-Menü

Von Haus aus zeigt Contao im Breadcrumb den Titel der Seite an, auf der der Newsreader liegt. D.h. der Breadcrumb-Eintrag bleibt immer der gleiche, egal, welche News ich mir gerade anschaue. Oft "News-Detail" oder ähnliches.

Schöner wäre es ja, wenn der Titel der News selbst anstelle des Seitentitels im Breadcrumb auftauchen würde oder diesen um den Newstitel ergänzt.

Um das zu erreichen legen wir ein neues Breadcrumb-Template an und modifizieren dieses. 

Dies ist das Standard-Breadcrumb-Template:

mod_breadcrumb.html5

<?php $this->extend('block_unsearchable'); ?>

<?php $this->block('content'); ?>

  <ul>
    <?php foreach ($this->items as $item): ?>
      <?php if ($item['isActive']): ?>
        <li class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?> last"><?php echo $item['title']; ?></li>
      <?php else: ?>
        <li<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?>><a href="<?php echo $item['href']; ?>" title="<?php echo $item['title']; ?>"><?php echo $item['link']; ?></a></li>
      <?php endif; ?>
    <?php endforeach; ?>
  </ul>

<?php $this->endblock(); ?>

Die einzige Zeile, in der wir nun etwas hinzufügen ist Zeile 8.

Wir fügen eine Abfrage ein, die die ID der aktuell angezeigten Seite mit der ID der Seite vergleicht, auf der unser Newsreader liegt:

<li class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?> last"><?php if ($item['data']['id'] == "ID der Seite mit dem Newsreader"): ?><?php echo $item['title']; ?><?php else: ?><?php echo $item['title']; ?><?php endif; ?></li>

Hinweis: Der Platzhalter "ID der Seite mit dem Newsreader" ist mit der ID der Newsreaderseite ohne Anführungszeichen zu ersetzen.

Wir haben damit für die News-Detailansicht den Seitentitel mit dem Newstitel ausgetauscht. 

Um, wie hier auf der Website, den Seitentitel um den Newstitel zu erweitern, könnte man das so machen:

<li class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?> last"><?php echo $item['link']; ?><?php if ($item['data']['id'] == "ID der Newsreaderseite"): ?> : <?php echo $item['title']; ?><?php endif; ?></li>

Anstelle der id kann man genauso gut den Titel der Seite abfragen, auf der der Newsreader liegt:

Dafür ersetzt man einfach

<?php if ($item['data']['id'] == "ID der Newsreaderseite"): ?>

durch

<?php if ($item['data']['title'] == 'Titel der Newsreader-Seite'): ?>

Nun sollte beim Aufruf einer News mit Detail-Newsreader im Breadcrumb der Titel der News selbst angezeigt werden.

Für Kritik und Verbesserungsvorschläge bin ich offen und dankbar! ;-)

Bis zum nächsten Mal,
S. Huxal

Zurück

Einen Kommentar schreiben


Die neuesten Tutorials