Ankündigung

Einklappen
Keine Ankündigung bisher.

Config Anpassungen über contao/dca

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Config Anpassungen über contao/dca

    Ab Contao 5 sollen config Anpassungen ja über contao/dca/ laufen. Wir würden unsere Vorfilterungen, die wir bisher über die langconfig.php eingerichtet haben, jetzt auch gerne umziehen. Wie funktioniert das? Hier steht, jede Tabelle braucht eine eigene Datei in contao/dca/. https://contao-academy.de/blog/conta...und-langconfig
    Ich habe es mal mit tl_pct_customcatalog.php und der Tabelle unseres CC's versucht. Ohne Erfolg. Wenn ich die Anweisungen in die tl_content.php packe klappt es, fühlt sich aber falsch an
    Was ist hier zukünftig best practice?

    Bsp. langconfig.php
    Code:
     if($GLOBALS['objPage']->id == '11549') {
    \Contao\Input::setGet('category','23');
    }
    Zuletzt geändert von EBL; 27.04.2023, 13:29.

  • #2
    fühlt sich aber falsch an
    haha ja, ist es auch

    Solche Anweisungen setzt man in die initconfig.php, nicht in die langconfig.php.

    Ein updatesicherer Weg wäre eine kleine eigene Erweiterung. Es reicht hier die config.php für diese Logiken. Noch sauberer wäre z.B. der generatePage Hook.

    Nicht schön, aber selten wäre, direkt in die localconfig.php
    Zuletzt geändert von Tim; 27.04.2023, 13:55.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Hmm initconfig.php funktioniert leider nicht :/

      Kommentar


      • #4
        Kann es sein dass der generatePage Hook hierfür zu spät greift? Die Vorfilterung will so noch nicht, wenn ich den Get Parameter auf der Seite ausgebe ist er auch leer.

        PHP-Code:
        <?php // src/EventListener/GeneratePageListener.php
        namespace App\EventListener;

        use 
        Contao\CoreBundle\DependencyInjection\Attribute\As Hook;
        use 
        Contao\PageRegular;
        use 
        Contao\LayoutModel;
        use 
        Contao\PageModel;

        use 
        Psr\Log\LogLevel;
        use 
        Contao\CoreBundle\Monolog\ContaoContext;
        use 
        Contao\System;

        use 
        Contao\Input;

        #[AsHook('generatePage')]
        class GeneratePageListener
        {
        public function 
        __invoke(PageModel $pageModelLayoutModel $layoutPageRegular $pageRegular): void
        {
        System::getContainer()
        ->
        get('monolog.logger.contao')
        ->
        log(LogLevel::INFO'Generate Page hook - id: '.$pageModel->id.' tag: '.$pageModel->topic_tag, array(
        'contao' => new ContaoContext(__METHOD__ContaoContext::GENERAL
        )));

        $pageId $pageModel->id;

        Input::setGet('tags'$pageModel->topic_tag);
        }
        }

        In config/config.php & localconfig.php sind die Page-Attribute ($GLOBALS['objPage']->id) anscheinend noch nicht verfügbar? (Contao 5)

        Kommentar


        • #5
          Du kannst auch in einem früheren Template vorfiltern. Hauptsache vor der Abarbeitung von CC und dem CC Filter. Wo ist egal.
          http://www.premium-contao-themes.com

          Kommentar


          • #6
            Also zB. im Modultemplate?
            Sollte der Hook dann nicht aber eigentlich auch früh genug sein? Der wird ja laut Dok noch vor der fe_page ausgeführt..
            Zuletzt geändert von EBL; Gestern, 07:39.

            Kommentar


            • #7
              Zitat von EBL Beitrag anzeigen
              Also zB. im Modultemplate?
              Sollte der Hook dann nicht aber eigentlich auch früh genug sein? Der wird ja laut Dok noch vor der fe_page ausgeführt..
              Das Template des jeweiligen Moduls ist natürlich schlecht. Aber du kannst doch einfach irgendein File vorher einbinden via {{file::...}}

              Der generatePage sollte auch gehen. Ist aber für diese Aufgabe overkill.
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                Aus irgendeinem Grund greifen die Get Parameter nie, es sei denn ich setze sie in der localconfig. Der Hook wird anonsten korrekt ausgeführt. Habe es auch mit einem eigenen HTML Modul & derselben Anweisung versucht, nützt aber alles nichts.

                Kommentar


                • #9
                  Ich nutze in einem Projekt unter Contao5.3 die /contao/config/config.php dafür. Das funktioniert ohne Probleme.
                  http://www.premium-contao-themes.com

                  Kommentar


                  • #10
                    Jap, das funktioniert grundsätzlich. Hat man dort Zugriff auf die aktuelle Seite im Stil von $GLOBALS['objPage']->fieldName; (oder anders) ?
                    Hat bisher leider noch nicht geklappt..
                    Zuletzt geändert von EBL; Gestern, 09:03.

                    Kommentar


                    • #11
                      Eigentlich hab ich hier schon alles gesagt. Warum geht ihr nicht diesen Weg? Das ist doch nun schon x-mal supportet für Euch hier im Forum
                      https://forum.premium-contao-themes....fig-vorbelegen

                      Das funktioniert ohne Probleme mit einem eigenen kleinen FE-Modul und darin direkt im Template.

                      Klar, kann man dafür auch Hooks nehmen. Aber so find ichs persönlich viel simpler für den Anwendungsfall.

                      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: screenshot_3534.jpg Ansichten: 0 Größe: 79,1 KB ID: 30925
                      Angehängte Dateien
                      Zuletzt geändert von Tim; Gestern, 10:56.
                      http://www.premium-contao-themes.com

                      Kommentar

                      Lädt...
                      X