Contao-Summit 2026

Ankündigung

Collapse
No announcement yet.

Query-Parameter werden nicht beibehalten

Collapse
X
 
  • Filter
  • Zeit
  • Show
Clear All
new posts

    Query-Parameter werden nicht beibehalten

    Ich habe mit dem Catalog-Manager ein Backend-Modul erstellt.
    Für dieses Backend-Modul gibt es zwei Reader-Seiten in zwei separaten Seitenbäumen (DE und EN).

    Ich möchte nun einen Wechsel von:
    myproject.com/de/projekte/projekt-xy
    ... zu:
    myproject.com/en/projects/projekt-xy
    ... per ChangeLanguage-Modul zustande kriegen.

    D.h. ich muss irgendwie den Alias (im obigen Fall "projekt-xy") oder die ID des jeweiligen Projekts als Parameter mitgeben.
    Damit ich dann auf der Zielseite diesen Alias-Parameter verwenden kann um zum richtigen Projekte weiterzuleiten.

    Ich hab schon diverse Werte in dieses Feld:
    Click image for larger version

Name:	Bildschirmfoto 2022-05-19 um 13.23.05.png
Views:	1
Size:	72,7 KB
ID:	949408
    ... eingegeben, doch nichts kommt auf der Ziel-Seite an.
    Der "URLParameterBag" (den ich mittel ChangeLanguage-Hook checke) ist auf der Ziel-Seite immer leer.

    Könnt ihr mir hier einen Tipp geben?
    ... macht man das überhaupt so?
    Wäre für jede Hilfe sehr dankbar!

    #2
    Ich konnte das nun selber mit folgendem Code lösen:

    Code:
    <?php 
    
    // src/EventListener/ChangelanguageNavigation.php
    
    namespace App\EventListener;
    
    use Contao\CoreBundle\ServiceAnnotation\Hook;
    
    /**
     * @Hook("changelanguageNavigation")
     */
    class ChangelanguageNavigation
    {
        public function __invoke(\Terminal42\ChangeLanguage\Event\ChangelanguageNavigationEvent $event)
        {
            // den alias der aktuellen Seite abfragen
            global $objPage;
            $alias = $objPage->alias; 
            
            // abfragen ob wir uns auf der beiden Projekt-Reader-Seiten (in DE und EN) befinden
            if($alias == "projekt" || $alias == "project" ) {
                
                // das Alias des aktuell angezeigten Projekts auslesen (zb. "projekt-xy")
                $projectAlias = \Input::get('auto_item');
    
                // dem ChangeLanguage-Menü den Alias zuweisen
                $event->getUrlParameterBag()->setUrlAttribute('items', $projectAlias);
    
            }
    
        }
    }

    ... vielleicht brauchts ja jemand mal

    Comment


      #3
      Zitat von thesweetg Beitrag anzeigen
      Ich konnte das nun selber mit folgendem Code lösen:

      Code:
      <?php 
      
      // src/EventListener/ChangelanguageNavigation.php
      
      namespace App\EventListener;
      
      use Contao\CoreBundle\ServiceAnnotation\Hook;
      
      /**
       * @Hook("changelanguageNavigation")
       */
      class ChangelanguageNavigation
      {
          public function __invoke(\Terminal42\ChangeLanguage\Event\ChangelanguageNavigationEvent $event)
          {
              // den alias der aktuellen Seite abfragen
              global $objPage;
              $alias = $objPage->alias; 
              
              // abfragen ob wir uns auf der beiden Projekt-Reader-Seiten (in DE und EN) befinden
              if($alias == "projekt" || $alias == "project" ) {
                  
                  // das Alias des aktuell angezeigten Projekts auslesen (zb. "projekt-xy")
                  $projectAlias = \Input::get('auto_item');
      
                  // dem ChangeLanguage-Menü den Alias zuweisen
                  $event->getUrlParameterBag()->setUrlAttribute('items', $projectAlias);
      
              }
      
          }
      }

      ... vielleicht brauchts ja jemand mal
      In welche Datei muss das? Direkt ins mod_changelanguage Template?

      Comment


        #4
        Ich würde sagen, dort hin, wie es zu Beginn der Datei angegeben ist: src/EventListener/ChangelanguageNavigation.php

        Ordner, die es noch nicht gibt (z.B.src) dann selbst anlegen.
        Contao-Community-Treff Bayern: http://www.contao-bayern.de

        Comment


          #5
          Ich denke, das macht Sinn ;-)

          Comment

          Working...
          X