Contao-Camp 2024
Ergebnis 1 bis 6 von 6

Thema: Fehler beim Anlegen eines Custom Content Elements

  1. #1
    Contao-Nutzer Avatar von agonyz
    Registriert seit
    10.09.2020.
    Beiträge
    36

    Standard Fehler beim Anlegen eines Custom Content Elements

    Hallo Contao-Forum,

    ich versuche gerade ein custom content element anzulegen, was soweit auch größtenteils funktioniert hat.
    Ich habe mich dabei genau an die Anleitung gehalten: https://docs.contao.org/dev/framework/content-elements/

    Nun wird mir das Content-Element bereits im Backend angezeigt und ich kann es konfigurieren.
    Wenn ich es jedoch speichere erhalte ich folgenden Fehler:
    Code:
    The controller for URI "/contao" is not callable: Method "getResponse" on class "Agonyz\MyContaoBundle\Controller\ContentElementController" should be public and non-abstract.
    Mein Controller sieht so aus:
    PHP-Code:
    <?php

    namespace Agonyz\MyContaoBundle\Controller;

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

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

            return 
    $template->getResponse();
        }
    }
    Mein zugehöriger Service aus der services.yml sieht so aus:
    Code:
    services:
      _defaults:
        autoconfigure: true
        public: false
    
      Agonyz\MyContaoBundle\Controller\ContentElementController:
        public: true
        tags:
            -
              name: contao.content_element
              category: texts
              template: ce_my_content_element
              method: getResponse
              type: my_content_element
    Die Methode wird in der Anleitung aber explizit als protected definiert.
    Ich habe diese testweise mal auf public umgeschrieben und erhalte dann einen weiteren Fehler bzgl. fehlender controller service arguments.

    Wie müsste ich das hier denn richtig implementieren, damit es funktioniert?
    Geändert von agonyz (28.04.2022 um 15:28 Uhr)

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

    Standard

    Entferne method: getResponse
    Definiere nur das was du wirklich brauchst in deiner Service Definition.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer Avatar von agonyz
    Registriert seit
    10.09.2020.
    Beiträge
    36

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Entferne method: getResponse
    Definiere nur das was du wirklich brauchst in deiner Service Definition.
    Super, dankeschön!

    Jetzt habe ich nur noch eine andere Frage.
    Ich möchte das Ganze gerne über Twig - Templates machen.

    Das hat auch alles funktioniert.
    Nun möchte ich aber gerne, dass der Benutzer später das Twig-Template (genau wie ein html5 - Template) unter /Templates im Backend kopieren und bearbeiten kann.
    Wenn ich ein html5 - Template in das Verzeichnis meiner Erweiterung lege, dann wird dieses unter Templates im Backend angezeigt und kann angelegt werden.

    Mein Twig-Template wird zwar richtig verarbeitet, aber es wird im Backend unter /Templates nicht angezeigt.
    Muss ich hier noch etwas beachten bzw. übersehe ich etwas in der Dokumentation?

    contao-templates.PNG
    Geändert von agonyz (29.04.2022 um 12:17 Uhr)

  4. #4
    Contao-Nutzer Avatar von agonyz
    Registriert seit
    10.09.2020.
    Beiträge
    36

    Standard

    Habe noch ein Bild zur Verdeutlichung hinzugefügt.

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

    Standard

    Ich bin mir nicht sicher, aber ich glaube der Support für Twig in dieser Hinsicht kommt erst in Contao 5.0. Aber sieh mal auf GitHub nach, da gibt es issues dazu.
    » sponsor me via GitHub or PayPal or Revolut

  6. #6
    Contao-Nutzer Avatar von agonyz
    Registriert seit
    10.09.2020.
    Beiträge
    36

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ich bin mir nicht sicher, aber ich glaube der Support für Twig in dieser Hinsicht kommt erst in Contao 5.0. Aber sieh mal auf GitHub nach, da gibt es issues dazu.
    Besten Dank wie immer Spooky!

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
  •