Contao-Camp 2024
Ergebnis 1 bis 13 von 13

Thema: Content Element Wrapper (Contao 4.13.0)

  1. #1
    Contao-Nutzer
    Registriert seit
    04.12.2018.
    Beiträge
    9

    Standard Content Element Wrapper (Contao 4.13.0)

    Hallo zusammen,
    ich versuche gerade ein Content Element nach dieser Anleitung https://docs.contao.org/dev/framework/content-elements/ zu erstellen. Mein Ziel wäre es, ein Container Element (ähnlich Bootstrap) als Wrapper umzusetzen, sodass andere Inhaltselemente von einem "container start" und einem "container end" umschlossen werden können.

    Die beiden Content Elemente "container start" und "container end" werden mir auch angezeigt, allerdings nicht als Wrapper.

    ContainerStart.php
    PHP-Code:
    <?php

    declare(strict_types=1);

    namespace 
    App\Controller\ContentElement;

    use 
    Contao\ContentModel;
    use 
    Contao\CoreBundle\Controller\ContentElement\AbstractContentElementController;
    use 
    Contao\CoreBundle\ServiceAnnotation\ContentElement;
    use 
    Contao\Template;
    use 
    Symfony\Component\HttpFoundation\Request;
    use 
    Symfony\Component\HttpFoundation\Response;

    /**
     * @ContentElement(category="Grid")
     */
    class ContainerStart extends AbstractContentElementController
    {
        protected function 
    getResponse(Template $templateContentModel $modelRequest $request): ?Response
        
    {

            
    $headline $model->headline;

            return 
    $template->getResponse();
        }
    }
    config.php
    PHP-Code:
    $GLOBALS['TL_WRAPPERS']['start'][] = 'container_start';
    $GLOBALS['TL_WRAPPERS']['stop'][] = 'container_end'
    tl_content.php
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['palettes']['container_start'] = '
        {type_legend},type,headline;
        {template_legend:hide},customTpl;
        {protected_legend:hide},protected;
        {expert_legend:hide},guests,cssID;
        {invisible_legend:hide},invisible,start,stop
    '
    ;

    $GLOBALS['TL_DCA']['tl_content']['palettes']['container_end'] = '
        {type_legend},type,headline;
        {template_legend:hide},customTpl;
        {protected_legend:hide},protected;
        {expert_legend:hide},guests,cssID;
        {invisible_legend:hide},invisible,start,stop
    '


    Kann mir da jemand weiterhelfen? Bin gerade echt am verzweifeln...

  2. #2
    Contao-Fan
    Registriert seit
    24.02.2021.
    Beiträge
    333

    Standard

    Sofern du es als Content-Element nutzt, müsstest du es auch noch in TL_CTE ergänzen:

    Siehe in folgenden Beispielen:

    config.php
    https://github.com/contao-thememanag...config.php#L29

    ContentElement:
    https://github.com/contao-thememanag...apperStart.php

    ^ Hier extenden wir sofort von ContentElement, die Compile Klasse für das BackendTemplate sollte man auch nicht vergessen.


    Deine tl_content sieht gut aus.

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    In TL_CTE muss man nichts selbst setzen, das macht die Annotation schon alles für dich.

    Eigentlich sollte es funktionieren - aber evt. fehlt hier in der Dokumentation doch noch etwas. Ich werde das mal prüfen.
    » sponsor me via GitHub or PayPal or Revolut

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Also ich kann kein Problem feststellen, @Ingenious Design. Mit dem von dir geposteten Code erhalte ich das erwartete Ergebnis:



    Poste nochmal die exakten Dateipfade, die du verwendet hast. Du hast nämlich bspw. nur "config.php" und "tl_content.php" geschrieben, ohne den gesamten Pfad zu nennen.
    Angehängte Grafiken Angehängte Grafiken
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    04.12.2018.
    Beiträge
    9

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Also ich kann kein Problem feststellen, @Ingenious Design. Mit dem von dir geposteten Code erhalte ich das erwartete Ergebnis:



    Poste nochmal die exakten Dateipfade, die du verwendet hast. Du hast nämlich bspw. nur "config.php" und "tl_content.php" geschrieben, ohne den gesamten Pfad zu nennen.

    Also ich habe mir das Grundgerüst via make:content-element erstellt. Meine Ordnerstruktur ist wie folgt:

    /contao/dca/tl_content.php
    /contao/config.php
    /src/controller/contentelement/ContainerStart.php
    /src/controller/contentelement/ContainerEnd.php

  6. #6
    Contao-Fan
    Registriert seit
    24.02.2021.
    Beiträge
    333

    Standard

    Wie schon erwähnt, muss die Klasse in deiner config.php unter $GLOBALS['TL_CTE']['wrapper']['container_start'][] registriert werden.

    Hier könnte es aber zu Problemen kommen, da du in deiner "ContainerStart.php" von AbstractContentElementController und nicht vom \Contao\ContentElement extendest.

    Die Registrierung mit $GLOBALS['TL_CTE']['wrapper'] in deiner config.php sollte aber ausreichen.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Zitat Zitat von zoglo Beitrag anzeigen
    Wie schon erwähnt, muss die Klasse in deiner config.php unter $GLOBALS['TL_CTE']['wrapper']['container_start'][] registriert werden.
    Das ist nicht notwendig




    Zitat Zitat von Ingenious Design Beitrag anzeigen
    /contao/config.php
    Da ist der Fehler, der Pfad muss contao/config/config.php sein.
    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Contao-Nutzer
    Registriert seit
    04.12.2018.
    Beiträge
    9

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Das ist nicht notwendig




    Da ist der Fehler, der Pfad muss contao/config/config.php sein.

    Ich hab das mal umgestellt und den Cache geleert. Leider verhält es sich immer noch wie zuvor.
    Was mir aber aufgefallen ist: Bei dir steht die "Kategorie" hinter den Content Elements, bei mir nicht (siehe Bild). Könnte es vielleicht daran liegen?

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Bei den Pfadangaben fällt außerdem auf, dass manche Ordner Namen klein geschrieben sind. Sind die Pfade, die du gepostet hast wirklich exakt?
    » sponsor me via GitHub or PayPal or Revolut

  10. #10
    Contao-Nutzer
    Registriert seit
    04.12.2018.
    Beiträge
    9

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Bei den Pfadangaben fällt außerdem auf, dass manche Ordner Namen klein geschrieben sind. Sind die Pfade, die du gepostet hast wirklich exakt?
    Ich hab dir mal einen Screenshot angehängt.

    ide.png

  11. #11
    Contao-Nutzer
    Registriert seit
    04.12.2018.
    Beiträge
    9

    Standard

    Hat da noch jemand ne Idee? Habe schon alles mögliche versucht, komme aber nicht weiter.
    Die Elemente werden weder als Wrapper angezeigt, noch wird das "End-Element" automatisch eingefügt wenn ich das "Start-Element" erstelle (falls das überhaupt im gleichen Zuge möglich ist).

    Danke nochmal.

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.803
    Partner-ID
    10107

    Standard

    Zeige einen Screenshot deiner IDE mit offener contao/config/config.php - dein Screenshot sieht so aus als würde da das <?php fehlen.
    » sponsor me via GitHub or PayPal or Revolut

  13. #13
    Contao-Nutzer
    Registriert seit
    04.12.2018.
    Beiträge
    9

    Standard

    Ohjeh... genau das wars. Vielen Dank dir.
    Eine Frage noch: Ist es möglich, dass man das "End-Element" automatisch ergänzt, wenn das "Start-Element" eingefügt wird?

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
  •