Contao-Camp 2024
Ergebnis 1 bis 6 von 6

Thema: Breadcrumbs: Aktuelle Hierarchie-Tiefe ermitteln?

  1. #1
    Contao-Nutzer Avatar von Traumkunst
    Registriert seit
    22.01.2011.
    Ort
    In der Nähe von Dortmund
    Beiträge
    229

    Standard Breadcrumbs: Aktuelle Hierarchie-Tiefe ermitteln?

    Ich würde gerne im Theme einen Navigationspfad verwenden ("Breadcrumbs"), allerdings erst ab einer bestimmen Hierarchie-Ebene.

    Man könnte 2 versch. Themes erstellen und dann den Seiten zuweisen, aber ich frage mich ob das nicht eleganter geht. Gibt es eine Möglichkeit, z.B. im Template "mod_breadcrumbs", so etwas zu erstellen wie

    PHP-Code:
    if (Navigationslevel 2) {
     
    // do stuff

    Ist sowas möglich?

    Danke!
    Geändert von Spooky (14.05.2020 um 14:48 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    03.01.2012.
    Beiträge
    809

    Standard

    Ich hatte das mal gelöst, indem ich mit PHP abgefragt habe, ob die CSS-Klasse "level_2" vorhanden ist.

  3. #3
    Contao-Fan
    Registriert seit
    03.01.2012.
    Beiträge
    809

    Standard

    z.B.
    PHP-Code:
    <?php if($this->level=="level_2") { ...?>

  4. #4
    Contao-Nutzer Avatar von Traumkunst
    Registriert seit
    22.01.2011.
    Ort
    In der Nähe von Dortmund
    Beiträge
    229

    Standard

    Hallo dazzle89,

    dankt für den Tipp. Die Abfrage "$this->level" scheint bei mir nicht zur Verfügung zu stehen, hat mich aber auf die richtige Spur gebracht. Denn in der template-Variablen "items" sind alle Positionen der Navigation als Array enthalten, ich brauche also nur die Anzahl der Elemente im Array abzufragen. Habe es nun also so hinbekommen (Contao 4.4):

    PHP-Code:
    <?php if(sizeof($this->items)>3) { ?>
     Hier die Navigation
    <?php ?>
    bzw. das komplette Breadcrumbs-Modul (ab "Vanilla-Version"):

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

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

      <?php if(sizeof($this->items)>3) { ?>

      <ul itemprop="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList">
        <?php foreach ($this->items as $position => $item): ?>
          <?php if ($item['isActive']): ?>
            <li class="active<?php if ($item['class']): ?> <?= $item['class'?><?php endif; ?> last"><?= $item['link'?></li>
          <?php else: ?>
            <li<?php if ($item['class']): ?> class="<?= $item['class'?>"<?php endif; ?> itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement"><a href="<?= $item['href'] ?: './' ?>" title="<?= $item['title'?>" itemprop="item"><span itemprop="name"><?= $item['link'?></span></a><meta itemprop="position" content="<?= $position 1 ?>"></li>
          <?php endif; ?>
        <?php endforeach; ?>
      </ul>

      <?php ?>

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

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Moderation: ich habe mal den Thread Titel geändert, um Verwirrungen zu vermeiden

  6. #6
    Contao-Fan
    Registriert seit
    26.06.2009.
    Beiträge
    266

    Standard

    In Contao 4.9 habe ich es folgendermaßen gelöst, damit auch kein leeres <div class="mod_breadcrumb"> im Frontend-Template ausgegeben wird:

    PHP-Code:
    <?php if (count($this->items) > 2): ?>

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

      <ul itemprop="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList">
        <?php foreach ($this->items as $position => $item): ?>
          <?php if ($item['isActive']): ?>
            <li class="active<?php if ($item['class']): ?> <?= $item['class'?><?php endif; ?> last"><?= $item['link'?></li>
          <?php else: ?>
            <li<?php if ($item['class']): ?> class="<?= $item['class'?>"<?php endif; ?> itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement"><a href="<?= $item['href'] ?: './' ?>" title="<?= $item['title'?>" itemprop="item"><span itemprop="name"><?= $item['link'?></span></a><meta itemprop="position" content="<?= $position 1 ?>"></li>
          <?php endif; ?>
        <?php endforeach; ?>
      </ul>

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

    <?php endif; ?>

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •