Contao-Camp 2024
Ergebnis 1 bis 5 von 5

Thema: Einfaches Hello World-Modul funktioniert nicht

  1. #1
    Contao-Nutzer
    Registriert seit
    14.11.2019.
    Beiträge
    8

    Standard Einfaches Hello World-Modul funktioniert nicht

    Hallo zusammen,

    nachdem ich keine Lösung für mein ursprüngliches Problem (https://community.contao.org/de/show...usgef%C3%BChrt) gefunden habe, habe ich mich entschieden, erstmal mit etwas grundlegenderem anzufangen und ein kleines Hello World-Modul zu schreiben, das lediglich den Text "Hello World!" ausgeben soll.

    Ich habe dazu verschiedene Tutorials ausprobiert und habe auch versucht, mich anhand der Dokumentation voranzutasten.
    Allerdings muss ich wohl etwas grundlegendes falsch machen, denn das Modul taucht im Contao-Backend nirgends auf.

    Meine Contao-Version ist die 4.4.45.

    Hier die Sourcen im derzeitigen Stand:

    config/services.yml:
    Code:
    services:
        _defaults:
            autowire: true
            autoconfigure: true
            public: false
    
        tags:
            name: contao.frontend_module
            category: miscellaneous
            type: hello_world_module
    
        App\:
            resource: ../src
            exclude: ../src/{Entity,Migrations,Resources,Tests}
        
        App\Action\:
            resource: ../src/Action
            public: true
    dca/tl_module.php:
    Code:
    <?php
    // contao/dca/tl_module.php
    $GLOBALS['TL_DCA']['tl_module']['palettes']['hello_world_module'] = 
        '{title_legend},name,headline,type;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space';
    src/Controller/FrontEndModule/HelloWorldModuleController.php:
    Code:
    <?php
    
    // src/Controller/FrontendModule/HelloWorldModuleController.php
    namespace App\Controller\FrontendModule;
    
    use Contao\CoreBundle\Controller\FrontendModule\AbstractFrontendModuleController;
    use Contao\CoreBundle\Exception\RedirectResponseException;
    use Contao\ModuleModel;
    use Contao\PageModel;
    use Contao\Template;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    
    class HelloWorldModuleController extends AbstractFrontendModuleController
    {
        protected function getResponse(Template $template, ModuleModel $model, Request $request): ?Response
        {
            $template->message = "Hello World!";
    
            return $template->parse();
        }
    }
    templates/mod_hello_world_module.html5:
    Code:
    <div class="hello-world-module">   
    	<?php /*$this->block('content');*/ ?>
    
    	<?= $this->message; ?>
    
    	<?php /*$this->endblock();*/ ?>
    </div>
    Was mache ich hier falsch?
    Und muss ich im Contao-Manager noch etwas tun, um mein Modul nach einer Änderung in der aktuellen Version zur Verfügung zu haben?


    Vielen Dank im Voraus!

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

    Standard

    Sieht soweit alles richtig aus. Bist du im Debug-Modus? Wenn nein: du musst auch den Symfony Application Cache neu aufbauen. Wenn ja: wenn neue Konfigurationsdateien hinzukommen, musst du auch im Debug-Modus den Ordner var/cache löschen. Danach ist es nicht mehr notwendig. Achte außerdem darauf, dass du dein composer update ohne -o bzw. --optimize-autoloader ausgeführt hast. Falls du die Paketaktualisierung mit dem Contao Manager ausgeführt hast, musst du entweder in der Systemwartung nochmal ein Dump Autoload ausführen (und zwar jedes mal, wenn eine neue PHP Klasse hinzukommt) - oder du führst auf der Konsole ein composer dump-autoload aus (eben ohne Parameter).

  3. #3
    Contao-Nutzer
    Registriert seit
    14.11.2019.
    Beiträge
    8

    Standard

    Ok, das versuche ich mal.

    Wenn ich das richtig sehe, sollte das Modul dann unter Themes -> <mein Theme> -> Frontend-Module bearbeiten -> neues Modul in der Select-Box Modultyp auftauchen, oder?
    Geändert von CBode (16.12.2019 um 08:22 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    14.11.2019.
    Beiträge
    8

    Standard

    Nachtrag:
    Ich habe die Konsolen-Kommandos jetzt ausprobiert, kann das Modul aber immer noch nirgends im Contao-Backend finden.

    Suche ich vielleicht einfach an der falschen Stelle?
    Oder hat die Contao-Version 4.4.45 noch irgendwelche Besonderheiten, die man beachten muss?

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

    Standard

    Ah, ich sehe gerade, dass du noch für Contao 4.4 entwickelst. Der Weg, den du gehst, funktioniert erst ab Contao 4.6. Siehe auch https://docs.contao.org/dev/framewor...t-end-modules/

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
  •