Contao Templates ergänzen oder ersetzen?
Hallo!
Mit meinem Bundle gebe ich den Redakteuren im Backend für die Artikeleinstellungen einige neue Felder.
Jetzt wäre meine Frage wie ich mich am besten in das mod_article Template hänge um den neuen Feldern auch eine Bedeutung um Frontend zu geben.
Muss ich dazu in meinem Bundle das komplette mod_article.html5 Template kopieren und die Zeilen die ich brauche abändern
Oder gibt es mit den Befehlen $this->extend('mod_article'), $this->block('content'), $this->parent() auch irgendwie eine Möglichkeit sich an den content-Block zu hängen? Ein bisschen so wie die SMARTY Template Engine wer es kennt. Das wäre mir die liebste Variante aber wirft einige Fragezeichen bei mir in der Umsetzung / Programmierung auf, falls sowas stand jetzt überhaupt in Contao geht.
Danke für die große und schnelle Hilfe hier!
Zitat:
Zitat von
webstar
Es könnte sein, dass es zu Problemen kommt, wenn du ein mod_article.html5 in dein Bundle erstellst und vom Core-Template erben willst. Problem ist der identische Name, was Contao nicht auflösen kann. Meines Wissens kann man nur in einem Template mit dem identischen Namen erben, wenn es im templates Ordner liegt. Mit einem unterschiedlichen Namen, z.B. mod_article_custom.html5 sollte allerdings kein Problem sein. Probier es aber aus, vielleicht geht es doch/inzwischen. Mein Kenntnisstand bezieht sich hier auf Contao 3.x, wo ich es mal probiert hatte.
Genau so ist es leider... Beim Versuch das gleichnamige Template mod_article.html5 im Bundle zu verwenden welches als Inhalt ein $this->extend('mod_article'); enthält landet es im Endlosmodus. Irgendwie logisch aber schade.
Zweiter Ansatz:
$strTemplate in der class ModuleArticle ersetzen.
Aber wie kann das bewerkstelligen?
// EDIT
Hab meine Lösung über einen hook gefunden!
https://community.contao.org/de/showthread.php?69983-*Gelöst-*-mod_article-über-Modul-beeinflussen
Code:
public function parseTemplate($objTemplate)
{
if ($objTemplate->getName() == 'mod_article')
{
$objTemplate->setName('derNamedesTemplates');
}
}
Danke für die große und schnelle Hilfe hier!