Contao-Camp 2024
Ergebnis 1 bis 2 von 2

Thema: Template in ein Template importieren

  1. #1
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    502

    Standard Template in ein Template importieren

    Ich möchte ein Button-Template in verschiedenen anderen Templates wiederverwenden.

    D.h. ich möchte zb. in den beiden Templates:

    news_latest.html5
    event_teaser.html5

    ... einen Button mit folgendem Code einbauen:

    PHP-Code:
    <a href="<?= $this->link ?>" class="btn">
        <span class="btn__inner">
            <?php echo file_get_contents("files/theme/img/icons/chevron-right.svg"); ?>
            <span class="btn__label">Mehr dazu</span>
        </span>
    </a>
    Ich kann das Code-Snippet natürlich in beide Templates reinschreiben.
    Dann muss ich allerdings spätere Änderungen zweimal machen.
    Eleganter wäre es wenn der Code nur an einer Stelle gepflegt wird.

    Wie würdet ihr sowas machen?


    Wenn ich das Snippet irgendwie importiere/einfüge, wäre es natürlich auch sehr nützlich wenn ich als Parameter den Link und den Label-Text definieren kann.


    Danke für eure Expertise!
    Geändert von thesweetg (03.03.2021 um 22:51 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    502

    Standard

    ... kaum postet man einen Beitrag, findet man raus wie es geht

    Hab jetzt hier eine super Lösung gefunden:
    https://docs.contao.org/dev/framework/templates/

    Für alle die es interessiert, das ist meine Lösung:

    PHP-Code:
    // so sieht bei mir das Button-Template ('button.html5') aus:
    <a href="<?= $this->link ?>" class="<?= $this->customClass ?> btn">
        <span class="btn__inner">
            <?php if($this->icon): ?>
                <?php echo file_get_contents("files/theme/img/icons/".$this->icon.".svg"); ?>
            <?php endif; ?>
            <span class="btn__label"><?= $this->more ?></span>
        </span>
    </a>


    // und so wird es im Template 'news_latest.html5' eingefügt:
    <?php 
    $this
    ->insert('button', [
        
    'link' => $this->link
        
    'more' => 'Mehr erfahren',
        
    'customClass' => 'news_latest__more',
        
    'icon' => 'chevron-right'
    ]);
    ?>

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
  •