Ergebnis 1 bis 6 von 6

Thema: Template wird (manchmal) nicht gefunden

  1. #1
    Contao-Nutzer
    Registriert seit
    04.07.2011.
    Beiträge
    11

    Standard Template wird (manchmal) nicht gefunden

    Hallo liebe Community,

    ich habe mal wieder ein, für mich, sehr komisches Problem.

    Ich habe ein eigenes Theme erstellt und dort auch ein paar Templates für eigene neue Module erstellt.
    Das funktioniert auch meistens wunderbar. Doch hin und wieder, werden die Templates nicht gefunden:

    Code:
    [2022-10-18T09:58:51.538020+02:00] request.CRITICAL: Uncaught PHP Exception Exception: "Could not find template "mod_nextgame_preheader"" at /...path.../vendor/contao/core-bundle/src/Resources/contao/library/Contao/TemplateLoader.php line 156 {"exception":"[object] (Exception(code: 0): Could not find template \"mod_nextgame_preheader\" at /...path.../vendor/contao/core-bundle/src/Resources/contao/library/Contao/TemplateLoader.php:156)"} []
    [2022-10-18T09:58:51.546239+02:00] request.CRITICAL: Uncaught PHP Exception RuntimeException: "Error when rendering "https://...domain.../_fragment?_hash=0TJoUV4TVaEI4tNmrlE3Cs%2BagKiicb9NzgczJZt7a2w%3D&_path=_scope%3Dfrontend%26moduleModel%3D83%26section%3Dmain%26pageModel%3D63%26_format%3Dhtml%26_locale%3Dde%26_controller%3Dcontao.frontend_module.nextgame" (Status code is 500)." at /usr/www/users/steelg/2022/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php line 99 {"exception":"[object] (RuntimeException(code: 0): Error when rendering \"https://...domain.../_fragment?_hash=0TJoUV4TVaEI4tNmrlE3Cs%2BagKiicb9NzgczJZt7a2w%3D&_path=_scope%3Dfrontend%26moduleModel%3D83%26section%3Dmain%26pageModel%3D63%26_format%3Dhtml%26_locale%3Dde%26_controller%3Dcontao.frontend_module.nextgame\" (Status code is 500). at /usr/www/users/steelg/2022/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php:99)"} []
    Den zweiten Fehler interpretiere ich als Folgefehler des ersten.

    Das Problem tritt leider nicht im Debug Modus auf, so dass es natürlich schwer ist, den Fehler zu finden.
    Sobald der Fehler auftritt, löst er sich nicht von selbst.
    Sobald der Produktions-Cache aktualisiert wird, funktioniert es wieder.
    Sobald ich irgendein Modul editiere, funktioniert es wieder.
    Dem Theme ist der richtige Template-Ordner zugeordnet.

    Da schein aber irgendwie das Problem zu bestehen. Denn wenn ich alle individuelle Templates in das Template-Root kopiere, tritt der Fehler nicht mehr auf. Nur wenn die Templates im Theme spezifischen Ordner sind, werden sie manchmal nicht gefunden. Aber ich weiß nicht so recht, was ich falsch gemacht habe, dass die Templates nicht immer gefunden werden.

    Hat jemand noch eine Idee was ich probieren könnte?

    Vielen Dank!

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

    Standard

    Poste mal den Code der eigenen Module.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    04.07.2011.
    Beiträge
    11

    Standard

    Da es in Summe sechs Module sind, nehme mal eines exemplarisch: (die anderen wären dort zu sehen: https://github.com/dominixdesign/ste...ilastot/Module)
    PHP-Code:
    <?php

    namespace App\Tilastot\Module;

    use 
    App\Tilastot\Model\Rounds;
    use 
    App\Tilastot\Model\Games;
    use 
    App\Tilastot\Model\Standings;


    use 
    Contao\CoreBundle\Controller\FrontendModule\AbstractFrontendModuleController;
    use 
    Contao\ModuleModel;
    use 
    Contao\Template;
    use 
    Symfony\Component\HttpFoundation\Request;
    use 
    Symfony\Component\HttpFoundation\Response;

    class 
    NextGameModule extends AbstractFrontendModuleController
    {
        protected 
    $strTemplate 'mod_nextgame';

        protected function 
    getResponse(Template $templateModuleModel $modelRequest $request): Response
        
    {
            if (
    $model->tilastot_my_team 0) {
                
    $games Games::findAll(array(
                    
    'order'   => ' gamedate ASC',
                    
    'limit'   => ' LIMIT 1',
                    
    'column'  => array('gamedate >= ? AND hometeam = ?'),
                    
    'value'   => array(time(), $model->tilastot_my_team$model->tilastot_my_team)
                ));
            } else {
                
    $games Games::findAll(array(
                    
    'order'   => ' gamedate ASC',
                    
    'limit'   => ' LIMIT 1',
                    
    'column'  => array('gamedate >= ?'),
                    
    'value'   => array(time())
                ));
            }

            if (!
    $games) {
                return new 
    Response();
            }

            
    $gameArray $games->fetchAll();
            foreach (
    $gameArray as $key => $game) {
                
    $gameArray[$key]['home'] = Standings::findByIdAndRound($game['hometeam'], $game['round'], true);
                
    $gameArray[$key]['away'] = Standings::findByIdAndRound($game['awayteam'], $game['round'], true);
                
    $gameArray[$key]['season'] = Rounds::findByPkFiltered($game['round'], true);

                unset(
    $gameArray[$key]['id']);
                unset(
    $gameArray[$key]['tstamp']);
                unset(
    $gameArray[$key]['round']);
                unset(
    $gameArray[$key]['gamestatus']);
                unset(
    $gameArray[$key]['hometeam']);
                unset(
    $gameArray[$key]['awayteam']);
                unset(
    $gameArray[$key]['spectators']);
                unset(
    $gameArray[$key]['periodscore']);
            }

            
    $template->my_team $model->tilastot_my_team;
            
    $template->game $gameArray[0];
            
    $template->headline unserialize($model->headline);
            
    $template->headlineUnit $model->hl;
            
    $template->cssId $model->cssID[0];
            
    $template->cssClass $model->cssID[1];

            return 
    $template->getResponse();
        }
    }
    Und die zugehörige Konfiguration in der services.yml: (die ganze services.yml: https://github.com/dominixdesign/ste...g/services.yml)
    Code:
      App\Tilastot\Module\NextGameModule:
        tags:
          - name: contao.frontend_module
            category: tilastot
            template: mod_nextgame
            renderer: esi
            type: nextgame

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

    Standard

    Du hast renderer auf esi gestellt. Hast du das aus einem bestimmten Grund gemacht? Bei einem gecachten Response bist du da dann limitiert.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    04.07.2011.
    Beiträge
    11

    Standard

    Sagen wir es mal so: Als ich den Code hier reinkopiert hab, habe ich mir erst nochmal die Doku dazu durchgelesen, weil ich da auch drüber gestolpert bin und keine Ahnung mehr hatte, was das tut.

    Also: nein, keinen bestimmten Grund. Habe es mal rausgenommen und schaue, ob das Problem erneut auftritt.

    Danke!

  6. #6
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.508
    User beschenken
    Wunschliste

    Standard

    Bei ESI gibt es wie erwähnt Probleme in der Art:
    https://community.contao.org/de/show...plates-Warnung!
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

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
  •