Ergebnis 1 bis 3 von 3

Thema: Artikel per insert_article als Modul einbinden - inkl. Einstellungen und Wrapper

  1. #1
    Contao-Fan
    Registriert seit
    12.04.2011.
    Ort
    Hamburg
    Beiträge
    506

    Standard Artikel per insert_article als Modul einbinden - inkl. Einstellungen und Wrapper

    Hallo zusammen,

    habe hier zu dem Thema gesucht aber zur Version 3.5 nichts gefunden. Das Thema an sich ist aber bestimmt schon älter und ich hoffe, dass es dazu inzwischen eine Lösung gibt:

    Ich möchte einen Artikel über das Seitentemplate einbinden. Und zwar den ganzen Artikel inkl. der vergebenen CSS-Klassen und sonstigen Einstellungen.
    (Für welchen Zweck ist jetzt egal, ich habe das Problem öfter. Im konkreten Fall ist es ein Artikel für einen Footer, der vier ce_text-Elemente enthält.)

    Dazu lege ich ein HTML-Modul an und integriere den Artikel via {{insert_article::*}}. Dieses Modul wird dann im Seitenlayout eingebunden.

    Eingebunden werden auf diese Weise tatsächlich aber nur die im Artikel enthaltenen Elemente (z.B. ce_text), nicht der Artikel selbst. Es fehlt der Wrapper des Artikels inkl. ID und Klassen etc. Entsprechend greifen die CSS nicht und das Layout funktioniert nicht wie geplant.
    Es fehlt nicht nur der Wrapper des Artikels, es fehlt überhaupt ein Wrapper. Die vier ce_text-Elemente liegen "nackt" und ungebunden im Layout herum.

    Nun könnte man sagen "mach doch per html einfach einen eigenen Wrapper" - ja, in der Vergangenheit habe ich das so gemacht. Dieses mal hilft es mir nicht weiter, da ich mein mod_article-Template modifiziert habe und es sehr gern verwenden würde und ehrlich gesagt auf eine handgeschnitzte Behelfskrücke langsam keine Lust mehr habe.


    Test: was passiert, wenn man ein Template angibt?

    Ich kann bei HTML-Elementen ein "individuelles Template" angeben. Wenn ich "mod_article" auswähle, passiert etwas anderes unerwartetes: es wird ein "mod_html" erzeugt, das irgendwie auch das mod_article-Template nutzt (es fehlt weiterhin die Bezeichnung "mod_article"), aber die Innereien fehlen! Zu Testzwecken habe ich in das mod_article-Template einen Kommentar geschrieben, der auch ausgegeben wird.

    <div class="mod_html block">
    <!-- Hallo Welt -->
    </div>

    Das Template wird also irgendwie geladen, aber der Wrapper selbst nicht, und weiterhin auch nicht die in den Artikeleinstellungen angegebenen Klassen, von der ID ganz zu schweigen. Interessant ist, dass nun die Elemente nicht geladen werden.

    Habt Ihr eine Lösung - außer zu Fuß im HTML-Element den Artikel "nachzubauen"?

    Warum hat das HTML-Element eigentlich keine Klassen und ID-Felder...?

    Bin gespannt auf Eure Meinung dazu ;-)

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das HTML-Feld hat keine ID und CSS Felder, weil es keinen Wrapper hat und dort nur HTML ausgegeben werden soll, welches man in den Editor einträgt.

    Beim Inkludieren von Artikeln wird meine ich das Template mod_article_plain herangezogen, welches keinen Wrapper hat.

    Wenn ich einen Wrapper benötige sieht mein HTML-Modul z.B. so aus:
    PHP-Code:
    <!-- indexer::stop -->

    <
    div class="mod_article block globals_header">
    {{
    insert_article::_header}}
    </
    div>

    <!-- 
    indexer::continue --> 
    Du kannst aber auch mal über den file:: Inserttag sowas hier probieren (ungetestet).
    PHP-Code:
    <?php

      $myArticle 
    = \ArticleModel::findByPk(42);

      
    // optional fit the article to your needs
      
    $myArticle->customTpl 'mod_article-my';
      
    $myArticle->cssId serialize(array(
        
    'myId',
        
    'foo-class bar-class'
      
    ));

      
    $myArticleHtml = \Controller::getArticle($myArticle);

      echo 
    $myArticleHtml;
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von pipkin Beitrag anzeigen
    Ich kann bei HTML-Elementen ein "individuelles Template" angeben. Wenn ich "mod_article" auswähle, passiert etwas anderes unerwartetes: es wird ein "mod_html" erzeugt, das irgendwie auch das mod_article-Template nutzt (es fehlt weiterhin die Bezeichnung "mod_article"), aber die Innereien fehlen!
    Das stimmt irgendwie von vorne bis hinten nicht. Angefangen damit, dass man für HTML-Elemente kein mod_-Template auswählen kann, nur ce_Templates. Contao erstellt auch kein Template von sich aus, wenn man irgendwo ein Template auswählt.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

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
  •