Ankündigung

Einklappen
Keine Ankündigung bisher.

CC: Tabelle -> Template?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CC: Tabelle -> Template?

    Hab noch eine andere Frage zum Thema Tabellen mit CE/CC:
    Wenn ich ein Attribut von Typ Tabelle ganz normal im Frontend ausgebe, greift ja scheinbar das Core-Template ce_table.html5.
    Kann man das umgehen, bzw. die Frontendausgabe irgendwie anpassen, damit man die einzelnen Tabellenfelder und -spalten selber aufbauen kann?

    Anwendungsbeispiel:
    Tabelle mit 3 Spalten -> Produktname, externer Link (z.B. Youtube), Nummer
    Hier würde ich gern das Template so anpassen, dass der externe Link z.B. in einer Lightbox geöffnet werden soll.

  • #2
    Das Attribut nicht über ->html() ausgeben. Einen render Hook gibt es auch noch.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Hatte ich bereits versucht, aber ->html() und ->render() geben exakt das gleiche aus.

      Kommentar


      • #4
        Zitat von D23 Beitrag anzeigen
        Hatte ich bereits versucht, aber ->html() und ->render() geben exakt das gleiche aus.
        Ja logo, ist auch das gleiche. Musst über ->value() manuell aufbauen. Am besten geht es, wie es ->html() auch macht, ein Inhaltselement vom Typ Tabelle "simulieren". ODER man baut wirklich auch die Tabelle von Hand. Das geht immer

        ps. ->html() durchläuft das Attribut-Template. Hier kann man natürlich die Tabelle auch händisch bauen oder als Inhaltselement simulieren.
        Zuletzt geändert von Tim; 14.09.2015, 15:54.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Ach, einfach mit deserialize($entry->field('tabelle')->value()); arbeiten? Das hatten wir doch beim Thema Bilder schonmal, oder?

          Kommentar


          • #6
            Zitat von D23 Beitrag anzeigen
            Ach, einfach mit deserialize($entry->field('tabelle')->value()); arbeiten? Das hatten wir doch beim Thema Bilder schonmal, oder?
            Korrekt. Das ist der Wert für $tableitems, wenn man auf Contaos ContentTable Klasse zurückgereifen will. Warum das Rad neuerfinden. Da wir hier schön OOP arbeiten können, kann man Contao bissel austricksen und ein eigenes Template mitschicken (ab Contao 3.5, gehts ja direkt mit deml customTpl Feld)

            PHP-Code:
            $objActiveRecord $this->getActiveRecord(); // geht in jedem CE/CC template und gibt den aktuellen DB Record aus
            $objActiveRecord->customTpl 'ce_my_table_template';

            $objContentTable = new \ContentTable($objActiveRecord);
            $objContentTable->tableitems $entry->field('tabelle')->value();

            echo 
            $objContentTable->generate(); 
            Das geht mit JEDER Inhaltselement Klasse
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Also business as usual: viele Wege führen zum Ziel.
              Hab das jetzt erstmal mit deserialize per Hand gebaut und funktioniert einwandfrei.

              Den Code oben werd ich mir aber definitiv bookmarken ;-)

              Danke fürs Erklären!

              Kommentar

              Lädt...
              X