Ergebnis 1 bis 5 von 5

Thema: Contao Templates ergänzen oder ersetzen?

  1. #1
    Gesperrt
    Registriert seit
    02.11.2012.
    Beiträge
    52

    Standard 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.

  2. #2
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Grundsätzlich lassen sich die Templates in Contao vererben und nur einzelne Blöcke ersetzen. Wie das funktioniert, ist hier beschrieben: https://rocksolidthemes.com/de/conta...-3-3-templates

    Ob dir das im konkreten Fall etwas bringt, hängt stark davon ab wo du die Felder einfügen möchtest. Da hilft dir noch das Originaltemplate anzuschauen:
    https://github.com/contao/core-bundl..._article.html5

  3. #3
    Gesperrt
    Registriert seit
    02.11.2012.
    Beiträge
    52

    Standard

    Na das klingt doch schon sehr nach der Methode die mir besser gefällt. Eine Quelle hatte ich auch noch gefunden gehabt:
    https://docs.contao.org/books/manual...templates.html

    In den Beispielen hört es sich immer so an als ginge man davon aus, dass die Templates im Backend als template Datei neu erstellt wird.
    Ich werde heute Abend mal testen ob es mit Templates aus Bundles auch geht aber ich wüsste nicht warum das nicht auch gehen sollte.

    Theoretisch werde ich dann "mod_article.html5" im template Ordner meines Bundles anlegen und registrieren und mit diesem this extend content block dann versuchen mich an das original-template dranzuhängen

  4. #4
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von qf_rigo Beitrag anzeigen
    In den Beispielen hört es sich immer so an als ginge man davon aus, dass die Templates im Backend als template Datei neu erstellt wird.
    Ich werde heute Abend mal testen ob es mit Templates aus Bundles auch geht aber ich wüsste nicht warum das nicht auch gehen sollte.

    Theoretisch werde ich dann "mod_article.html5" im template Ordner meines Bundles anlegen und registrieren und mit diesem this extend content block dann versuchen mich an das original-template dranzuhängen
    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.

  5. #5
    Gesperrt
    Registriert seit
    02.11.2012.
    Beiträge
    52

    Standard Danke für die große und schnelle Hilfe hier!

    Zitat Zitat von webstar Beitrag anzeigen
    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!
    Geändert von qf_rigo (22.08.2018 um 22:39 Uhr)

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
  •