ich schaffe es nicht, in einem Template einer Variablen einen Wert zuzuweisen, der dann im Template zur Verfügung steht:
public static function getSubscribedEvents()
{
return [
'Enlight_Controller_Action_Frontend_Checkout_Confirm' => 'createFile',
'Enlight_Controller_Action_Frontend_Checkout_Confirm' => 'loadTemplate',
'Enlight_Controller_Action_Frontend_Checkout_Cart' => 'loadTemplate',
'Enlight_Controller_Action_Frontend_Checkout_AjaxCart' => 'loadTemplate',
];
}
public function loadTemplate(\Enlight_Event_EventArgs $args)
{
$this->container->get('Template')->addTemplateDir($this->getPath() . '/Resources/views/');
}
public function createFile(\Enlight_Event_EventArgs $args){
$subject = $args->getSubject();
$view = $subject->View();
$this->loadTemplate();
$dateiname = date("Ymd-His"); //Dateiname erzeugen
$view->assign('Dateiname',$dateiname);
}
Die Zuweisung des Templates ist erfolgreich, weil ich in diesem {debug} eingebaut habe und das Debugfenster auch erscheint. Aber es enthält keine Variable namens Dateiname.
Das Plugin scheint mir ein wenig unvollständig. Und die Beschreibung wo der Fehler auftaucht ist auch etwas dürftig. Und damit soll man den Fehler finden? Also etwas mehr Infos bitte
Rednaxela: ich versteh Deinen Einwand nicht. Das fertige Plugin soll natürlich mehr machen, aber der gezeigte Code sollte doch ausreichen, um eine Variable zu setzen. Und es gibt keine Fehlermeldung. Alles läuft problemlos. Auch der restliche Code des Plugins. Nur die Variable wird NICHT gesetzt und ist im Template nicht vorhanden. Im Debugfenster wird sie nicht angezeigt.
Was fehlt da an Info - die Events vielleicht? Und das fragliche Template ist das confirm.tpl. Ansonsten steh ich auf dem Schlauch.
das zweite dürfte den ersten überschreiben. Ich würde eh nur auf Checkout gehen (ohne _Confirm) und dann die action im subscriber abfrage. Eh ein bischen viele events für eine Aktion, insbesondere das Templateladen. Müßte ich mir morgen mal am PC angucken, Handy ist eher suboptimal