Contao-Camp 2024
Ergebnis 1 bis 2 von 2

Thema: Query-Parameter werden nicht beibehalten

  1. #1
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard 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:
    Bildschirmfoto 2022-05-19 um 13.23.05.png
    ... 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. #2
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard

    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

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
  •