Ich versuche seit Tagen, ein Arrary über ein Plugin ins Template zu bringen, allerdings mit wenig Erfolg.
public function subscribeEvents()
{
$this->subscribeEvent(
'Enlight_Controller_Action_PreDispatch_Frontend_Register',
'onBeforeSaveRegisterAction'
);
}
public function onBeforeSaveRegisterAction(Enlight_Controller_ActionEventArgs $args)
{
$data = $args->getRequest()->getPost();
$controller = $args->getSubject();
$view = $controller->View();
if ($args->getRequest()->getActionName() != 'saveRegister') {
return;
}
if($this->userExists($data['register']['personal']['email'])){
if($view->hasTemplate()){
$errors['register']['personal']['emial'] = "BLUB";
$errors['occurred'] = true;
$view->addTemplateDir($this->Path() . 'Views/');
$view->extendsTemplate('frontend/register/index.tpl');
$view->assign('myErrors', $errors);
$view->assign($data);
$controller->forward('index');
return;
}
}
}
Ich habe erfolgreich eine Funktion geschrieben, welcher über AJAX ermittelt ob bei einer Gastbestellung die Email schon registriert ist oder nicht. Im Frontend passt es und mein AJAX validiert richtig und zeigt mir bei schon vorhandener Email die Fehlermeldung an. Jedoch bringt mir das alleine natürlich nichts, sondern ich muss nach dem Abschicken des Formulars ja nochmals validieren, was ja auch funktioniert, jedoch bekomme ich mein Array mit Fehlermeldung nicht ins Template, um dementsprechend “BLUB” als Fehlermeldung anzuzeigen,
Hättet Ihr mir eine Idee? Vielleicht bin ich ja auch im falschen Template um mir die Variable zu holen. Über {$myErrors|@var_dump} bekomme ich eine Null und über {$myErrors|@print_r} eine 1 aber ich bekomme nicht mein Array. Ich habe es auch schon ohne addTemplateDir und extendsTemplate versucht, da ich gehofft habe das Shopware schon begreift in welchem Template ich das Array haben möchte aber dem scheint wohl nicht so. Habe ich vielleicht was vergessen oder etwas total simples übersehen?
Grüße insane85