Aufruf eines Tasks aus einer anderen Komponente aktiviert das Menuitem nicht

  • Hallo Community,


    ich habe ein sehr seltsames Problem bei dem ich nicht weiterkomme.


    Zur Erläuterung der Ausgangssituation:
    Ich habe 3 Komponenten. Diese Komponenten waren bisher für sich allein gestellt.
    Jetzt aber soll Komponente 3 einen Task in Komponente 1 oder 2 auslösen.
    Hierzu habe ich rausgefunden, dass man über eine URL diesen Task auslösen kann und hab einen Link generieren lassen, der automatisiert die anderen View laden und und anpassen soll.
    Der Link funktionierte augenscheinlich auch. Die Ansicht springt auf den View von Komponente 1 um und fügt auch die nötigen Daten ein, die mit übertragen werden sollten.
    Aber das Menü-Item, dass zu diesem View in Komponente 1 gehört, wird nicht als Active Item gesetzt, sondern die "Startseite".


    Die Methode im Controller:

    Code
    function search()    {        if(!JSession::checkToken( 'post' ) && !JSession::checkToken( 'get' ))            die( 'Invalid Token' );        $action = JFactory::getApplication()->input->get('action', null, 'STRING');        switch($action)        {            case "search":                $this->search_value();                break;            default:                $this->search_clear();                break;        }        $this->setRedirect ( SPAManagerHelper::getActionLink() );    }


    Aufruf in der default.php des Views in Komponente 3 (Ausgangsansicht):

    PHP
    <a href="index.php?option=<component>&task=<view>.search&action=search&searchstring=<?php echo $item->AdrNr; ?>&<?php echo JFactory::getSession()->getFormToken(); ?>=1">Foo</a>


    Mein Problem ist, dass in den Parametern dieses Menuitems wichtige Einstellungen enthalten sind, die für die Darstellung benötigt werden. Da das Menuitem nicht aktiv ist, bekommt es die Params nicht und die Anzeige stimmt nicht mehr.


    Hat Jemand eine Idee, was das sein kann?

  • ich habs probiert:


    Wenn ich vor setRedirect() ein exit; setze, sehe ich, dass im Menü das korrekte Item active ist. Nach dem Redirect springt er auf die Default-Seite.


    Der Witz ist halt dabei, dass wirklich alles korrekt funktioniert, nur das Menü rafft es nicht das korrekt Item auf Active zu setzen.
    Ich verzweifel bald.


    Gibt es es noch Alternativen einen Task-Call durchzuführen?
    Ich habe es ja mit einem Link gemacht. Geht das evtl. auch über einen POST oder andere Wege?

  • Got it!



    Der Tipp mit der ItemId hat geholfen.
    Jetzt bleibt das MenuItem aktiv :)


    Thx so much!