Newslettergruppen im Frontend auswählbar machen

Hallo,

bin gerade mit meinem Latein am Ende  Grin.

Wir haben in einem Shop mehrere Newslettergruppen, die Idee ist recht simpel, es soll eine Selectbox mit den derzeit zwei verschiedenen Gruppen angezeigt werden (bisher kein Problem - GroupIds über Plugin aus der DB eingelesen im Template integriert und dieses um die Selectbox erweitert).

Nun stoße ich aber an meine Grenzen (bin leider kein Profi was Plugins angeht), ich habe versucht per Event mich an die indexAction der Newsletter.php zu hängen, jedoch sehe ich mit meinen derzeitigen Kenntnissen keine Möglichkeit irgendwie einen Parameter an die „sNewsletterSubscription“ zu schicken. 
Die Core Funktion in sAdmin -> sNewsletterSubscription kann optional einen Parameter mit der GruppenId erhalten, habe hier per Hook versucht einfach mal statisch eine Id zu übergeben leider auch ohne erfolg.

Mein Code sieht zurzeit folgend aus:

 

class NewsletterGroup extends Plugin
{
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Frontend' => 'onPostDispatch',
            'Enlight_Controller_Action_PreDispatch_Frontend' => ['onFrontend',-100],
            'Enlight_Controller_Action_PostDispatchSecure_Widgets' => 'onPostDispatch',
            'sAdmin::sNewsletter::before' => 'saveNewsletterGroup',
            'Enlight_Controller_Action_Frontend_Newsletter_Index' => 'onPreDispatchNL',
        ];
    }

    public function install(InstallContext $context)
    {
        return true;
    }

    public function uninstall(UninstallContext $context)
    {
        return true;
    }

    public function onPostDispatch(\Enlight_Controller_ActionEventArgs $args)
    {
        $groupIDs = $this->getIds();
        $args->getSubject()->View()->assign('groupIDs', $groupIDs) ;
    }

    public function getIds(){
        $var = [1,2];
        return $var;
    }

    public function onFrontend(\Enlight_Event_EventArgs $args)
    {
        $this->container->get('Template')->addTemplateDir(
            $this->getPath() . '/Resources/views/'
        );
    }

    public function saveNewsletterGroup(\Enlight_Hook_HookArgs $args){
        $groupID = "2";
    }

    public function onPreDispatchNL(\Enlight_Event_EventArgs $args){
        $groupID = null;
        $controller = $args->getSubject();
        $request = $controller->Request();
        if($request->getActionName() === "index"){
            $data = $request->getParams();
            if(isset($data['chooseNL'])){
                $groupID = $data['chooseNL'];
                $request->setParam("groupID",$groupID);
            }
        }
    }


}

Hoffe jemand kann mir weiterhelfen.

Wie gesagt habe es derzeit recht simpel gehalten, damit ich irgendwie eine Veränderung mal wahrnehme, jedoch ohne Erfolg.

 

Mfg

Wurde gelöst, falls wer Fragen hat -> PN

1 Like