-
Eigenes Inserttag
Hallo Zusammen,
ich möchte ein Insert-Tag {{insert_teaser}} entwickeln, das den Teaser des Artikels bzw. der Nachricht einfügt in dem das Tag selbst verwendet wird. Also keine "fremden" Teaser. Wie man Tags entwickelt ist mir klar. Ich weiß aber nicht (und habe auch keine Idee), wie ich in der Funktion myReplaceInsertTags die ID des aktiven Artikels bzw. der aktuellen Nachricht ermitteln kann.
Bin für jeden Rat dankbar.
-
Hallo mPunkt,
da Du Dich bei der Ersetzung des InsertTags nicht in einem definierten Umfeld befindest (der InsertTag kann an beliebiger Stelle angefordert werden), kann keine ID auf irgendwas bestimmtes zur Verfügung stehen. Du hast nur die Informationen, die Dir der InsertTagh übermittelt. Wenn Du eine ID brauchst, musst Du sie im InsertTag mit übergeben, z.B. nach einem weiteren Trennzeichen oder als Parameter.
Ein paar Tipps dazu habe ich im Contao-Kochbuch gefunden:
https://contao.org/de/cookbook/3.2/e...nserttags.html
-
Hallo do_while,
schade, ich wollte den Redakteuren die Sache mit {{....._teaser::*}} etwas leichter machen. Der Hook für eigene Inserttags liefert nur strTag.
Da kann man dann wohl nichts machen :(
Trotzdem Danke!
-
Hallo @mPunkt,
es gibt noch andere Möglichkeiten, je nachdem wofür es am Ende gebraucht wird.
Du könntest auch das mod_article-Template wie folgt überschreiben:
PHP-Code:
<div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
<!-- Codeschnipsel Start -->
<?php if ($this->showTeaser): ?>
<div class="teaser">
<?= $this->teaser ?>
</div>
<?php endif; ?>
<!-- Codeschnipsel Ende -->
<?php if ($this->printable): ?>
...hier der Rest
Jetzt wird der Teaser als erstes angezeigt (kann man ja beliebig einfügen) wenn im Artikel „Teaser anzeigen“ aktiviert ist.
Man kann aber auch ein eignes Template anlegen (mod_article_with_teaser) und dort die if-Bedingung weglassen. Dann muss der Redakteur allerdings im Artikel unter individuelles Template das richtige raussuchen.
Vielleicht klappt ja eine der Beiden Lösungen für dich.