Contao-Camp 2024
Ergebnis 1 bis 26 von 26

Thema: Content Element erstellen

  1. #1
    Contao-Nutzer
    Registriert seit
    21.06.2022.
    Beiträge
    24

    Standard Content Element erstellen

    Hey ich wollte ein Content Element erstellen, hab wahrscheinlich irgendwo einen kleinen Fehler gemacht aber ich weiß wirklich nicht warum es nicht klappt, hab mich versucht an die Anleitung zu halten:
    https://docs.contao.org/dev/framework/content-elements/

    Das ContentElement taucht nichtmal auf wenn ich eins zu einem Artikel hinzufügen möchte, also es gibt nichtmal die auswahl also wird wohl irgendwas nicht richtig geladen,
    sitzt da jetzt schon eine ganze weile recht planlos dran deswegen dachte ich das ich einfach mal nachfrage

    File struktur
    Screenshot 2022-07-25 141028.png

    Plugin.php
    PHP-Code:
    <?php

    namespace Test\TestBundle\ContaoManager;

    use 
    Contao\ManagerPlugin\Bundle\Config\BundleConfig;
    use 
    Contao\ManagerPlugin\Bundle\BundlePluginInterface;
    use 
    Contao\ManagerPlugin\Bundle\Parser\ParserInterface;


    class 
    Plugin implements BundlePluginInterface
    {
        
    /**
         * {@inheritdoc}
         */
        
    public function getBundles(ParserInterface $parser)
        {
            return [
                
    BundleConfig::create('Test\TestBundle')
                    ->
    setLoadAfter(['Contao\CoreBundle\ContaoCoreBundle'])
            ];
        }
    }
    MyContentElementController.php
    PHP-Code:
    <?php

    namespace Test\TestBundle\Controller\ContentElement;

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

    class 
    MyContentElementController extends AbstractContentElementController
    {
        protected function 
    getResponse(Template $templateContentModel $modelRequest $request): Response
        
    {
            
    $template->text $model->text;

            return 
    $template->getResponse();
        }
    }
    config.yml
    PHP-Code:
    services:
      
    Test\TestBundle\Controller\ContentElement\MyContentElementController:
        
    tags:
          -
            
    namecontao.content_element
            category
    texts
            template
    ce_my_content_element
            method
    getCustomResponse
            renderer
    esi
            type
    my_custom_type 
    tl_content.php
    PHP-Code:
    <?php

    // contao/dca/tl_content.php
    $GLOBALS['TL_DCA']['tl_content']['palettes']['my_content_element'] =
        
    '{type_legend},type;{text_legend},text'
    ;
    ce_my_content_element.html5.php
    PHP-Code:
    <div class="my-content-element">
        test
        <?= $this->text?>
    </div>
    TestBundle.php
    PHP-Code:
    <?php

    namespace Test\TestBundle;

    use 
    Symfony\Component\HttpKernel\Bundle\Bundle;


    class 
    TestBundle extends Bundle
    {
    }

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

    Standard

    Willst du das nur für eine einzelne Contao Installation machen oder willst du eine Extension programmieren?
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    21.06.2022.
    Beiträge
    24

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Willst du das nur für eine einzelne Contao Installation machen oder willst du eine Extension programmieren?
    Eine Extension, also die eine Extension soll noch zusätzlich halt ein eigenes Content Element bekommen, da das nicht geklappt hatte hab ich das jetzt mal davon getrennt gehabt und wollte das erstmal nur so zum laufen bringen das ich mal ein ein neues Content Element auswählen kann.

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

    Standard

    Poste die composer.json der Extension.

    Zitat Zitat von Hans-123 Beitrag anzeigen
    config.yml
    PHP-Code:
    services:
      
    Test\TestBundle\Controller\ContentElement\MyContentElementController:
        
    tags:
          -
            
    namecontao.content_element
            category
    texts
            template
    ce_my_content_element
            method
    getCustomResponse
            renderer
    esi
            type
    my_custom_type 
    Da hast du zu viel einfach so aus der Dokumentation kopiert. Du musst schon darüber nachdenken und nachlesen was jede Option macht. Vermutlich willst du method, renderer und type nicht setzen.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    21.06.2022.
    Beiträge
    24

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Da hast du zu viel einfach so aus der Dokumentation kopiert. Du musst schon darüber nachdenken und nachlesen was jede Option macht. Vermutlich willst du method, renderer und type nicht setzen.
    Ja hatte die tatsächlich vorher auch mal draußen aber ist mir wohl wieder reingerutscht beim vielen rum probieren, hab sie jetzt wieder raus gemacht

    composer.json
    PHP-Code:
    {
      
    "name""test",
      
    "description""test description",
      
    "type""contao-bundle",
      
    "license""proprietary",
      
    "require": {
        
    "php"">=7.0.0",
        
    "contao/core-bundle""~4.9"
      
    },
      
    "autoload": {
        
    "psr-4": {
          
    "Test\\TestBundle\\""src/"
        
    },
        
    "classmap": [
          
    "src/Resources/contao/"
        
    ],
        
    "exclude-from-classmap": [
          
    "src/Resources/contao/config/",
          
    "src/Resources/contao/dca/",
          
    "src/Resources/contao/languages/",
          
    "src/Resources/contao/templates/"
        
    ]
      }


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

    Standard

    In deiner composer.json fehlt noch dein Contao Manager Plugin. Siehe https://docs.contao.org/dev/getting-...ing-the-bundle
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Nutzer
    Registriert seit
    21.06.2022.
    Beiträge
    24

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    In deiner composer.json fehlt noch dein Contao Manager Plugin. Siehe https://docs.contao.org/dev/getting-...ing-the-bundle

    PHP-Code:
    {
      
    "name""test/test-bundle",
      
    "description""test description",
      
    "type""contao-bundle",
      
    "license""proprietary",
      
    "require": {
        
    "php"">=7.0.0",
        
    "contao/core-bundle""~4.9"
      
    },
      
    "autoload": {
        
    "psr-4": {
          
    "Test\\TestBundle\\""src/"
        
    },
        
    "classmap": [
          
    "src/Resources/contao/"
        
    ],
        
    "exclude-from-classmap": [
          
    "src/Resources/contao/config/",
          
    "src/Resources/contao/dca/",
          
    "src/Resources/contao/languages/",
          
    "src/Resources/contao/templates/"
        
    ]
      },
      
    "extra": {
        
    "contao-manager-plugin""Test\\TestBundle\\ContaoManager\\Plugin"
      
    }

    also kann es installieren deinstallieren wie ich will aber das Content Element wird trotzdem nicht im Contao backend zum auswählen angezeigt

  8. #8
    Contao-Nutzer
    Registriert seit
    21.06.2022.
    Beiträge
    24

    Standard

    danke nochmal, funktioniert nun alles :)

    weiß jetzt aber gerade nichtmehr an was es lag, hatte glaube ich irgendwas kleines vergessen ist schon ein paar tage her.

  9. #9
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    Hi, da versuche ich mich auch gerade dran.

    Mir ist nicht klar, was man machen muss, damit man irgendwelche Effekte sieht. Ich habe bisher nur

    // contao/dca/tl_content.php
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['palettes']['my_content_element'] =
      
    '{type_legend},type;{text_legend},text'

    Merke gerade, dass ich mir nicht mal sicher bin, wo das hin muss. Muss dca in derselben Ebene liegen wie z.B. contao-manager und contao steht für den root der Installation, oder soll man einen contao Ordner im root neu anlegen?

    Kann man zum Testen das Content Element schon sehen sobald man die GLOBAL definiert hat, oder müssen die anderen files erst angelegt werden?

    Und muss man im contao-manager irgendwelche Caches leeren, damit die Änderungen sichtbar werden?

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

    Standard

    Zitat Zitat von tpk Beitrag anzeigen
    Mir ist nicht klar, was man machen muss, damit man irgendwelche Effekte sieht. Ich habe bisher nur

    // contao/dca/tl_content.php
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['palettes']['my_content_element'] =
      
    '{type_legend},type;{text_legend},text'

    Damit legst du ja nur eine Palette für das Content Element an. Aber das eigentliche Content Element noch nicht.
    » sponsor me via GitHub or PayPal or Revolut

  11. #11
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    Ist mir klar. Aber Einiges ist unklar, wenn Du bitte noch mal lesen könntest

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

    Standard

    Du hast noch kein Inhaltselement angelegt - also wird auch noch kein Inhaltselement zur Auswahl stehen. Du musst das Inhaltselement erst mal anlegen - dann kannst du dich um andere Dinge wie Template, Palette, Übersetzungen kümmern.
    » sponsor me via GitHub or PayPal or Revolut

  13. #13
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    Danke.
    Mit ist die Order-Struktur noch nicht klar. Muss ich einen Ordner "contao" anlegen?
    Werden meine Änderungen im Backend direkt angezeigt, oder muss ich irgendwelche Caches löschen?

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

    Standard

    Alle beschriebenen Ordner musst du selbst erstellen, ja.

    Und bei jeder Änderung musst du den Symfony Application Cache neu aufbauen (außer im Debug-Modus, da musst du es nur machen, wenn du eine Datei erstmalig anlegst).
    » sponsor me via GitHub or PayPal or Revolut

  15. #15
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    Ich bin mir immer noch nicht sicher, wie ich die Ordnerstruktur verstehen soll:

    contao/dca/tl_module.php

    Liegt contao-manager in der selben Ebene wie dca, ist contao also der root, oder muss ich den Ordner contao anlegen?

  16. #16
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935

    Standard

    contao ist der Ordner contao im Installationsverzeichnis Deiner Contao-Installation (root).
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  17. #17
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    Thanks, in meiner 4.13 Installation gibt es keinen contao Ordner.

  18. #18
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    https://community.contao.org/de/show...l=1#post561458

    Auch den Ordner contao musst Du anlegen, wenn er nicht zufällig aus anderen Gründen schon angelegt wurde.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




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

    Standard

    Zitat Zitat von tpk Beitrag anzeigen
    Thanks, in meiner 4.13 Installation gibt es keinen contao Ordner.
    Wie schon erwähnt legst du alles (was fehlt) selbst an. Und wie auch schon erwähnt musst du zuerst mal das Inhaltselement anlegen (das machst du ja nicht im contao/ Ordner).
    » sponsor me via GitHub or PayPal or Revolut

  20. #20
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    Ich habe jetzt die drei Dateien aus https://docs.contao.org/dev/framework/content-elements/ wie folgt angelegt

    Screenshot 2022-08-02 092502.png

    Im Backend den Debug Modus aktiviert und im Contao-Manager den Prod und Dev Cache gelöscht.

    Es erscheint aber kein my_content_element im Backend im Elementtyp-Pulldown

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

    Standard

    composer install ausgeführt?
    » sponsor me via GitHub or PayPal or Revolut

  22. #22
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    composer install ausgeführt?
    Welcher Button ist das im Manager?

  23. #23
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    Ich habe jetzt alle Caches mal geleert, aber kriege kein Ergebnis. Wie kann ich denn vorgehen, um den Fehler zu finden?

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

    Standard

    Zitat Zitat von tpk Beitrag anzeigen
    Welcher Button ist das im Manager?
    "Abhängigkeiten installieren".
    » sponsor me via GitHub or PayPal or Revolut

  25. #25
    Contao-Fan Avatar von tpk
    Registriert seit
    25.02.2011.
    Ort
    48369 Saerbeck
    Beiträge
    832

    Standard

    Ich habe jetzt auch mal die services in services.yml gesetzt, und jetzt geht es. Halleluja!

    HTML-Code:
      App\Controller\ContentElement\MyContentElementController:
        tags:
          - name: contao.content_element
            category: texts
            template: ce_my_content_element
            method: getCustomResponse
            renderer: esi
            type: my_custom_type
    Das heißt, die Annotation

    @ContentElement(category="texts")

    in MyContentElementController funktioniert nicht. Ich verwende aber 4.13. Ist das ein Bug von Contao oder muss man Annotations erst über den Composer laden?

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

    Standard

    Poste den Code deines Inhaltselementes und deiner services.yaml

    Du solltest außerdem nicht alle Optionen des Service Tags so setzen. Du willst vermutlich die meisten dieser Einstellungen nicht haben. Du darfst nicht einfach ohne nachzudenken etwas kopieren
    » sponsor me via GitHub or PayPal or Revolut

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
  •