(eure forum post betreff feld ist zu kurz, oder event namen zu lang…) wie finden wir die von benutzer gefüllte form data in unsere plugin durch Shopware_Controllers_Frontend_Forms_commitForm_Mail event? was shopware selber macht: https://github.com/shopware/shopware/bl … s.php#L291 foreach ($this-\>\_postData as $key =\> $value) { if ($this-\>\_elements[$key]['typ'] == "text2") { $names = explode(";", $this-\>\_elements[$key]['name']); $mailBody = str\_replace("{sVars." . $names[0] . "}", $value[0], $mailBody); $mailBody = str\_replace("{sVars." . $names[1] . "}", $value[1], $mailBody); } else { $mailBody = str\_replace("{sVars." . $this-\>\_elements[$key]['name'] . "}", $value, $mailBody); } }
also sind die werte in $this->_postData und was die werte sind in $this->_elements und $this wird an die event als „subject“ gegeben: https://github.com/shopware/shopware/bl … s.php#L312 $mail = Enlight()-\>Events()-\>filter('Shopware\_Controllers\_Frontend\_Forms\_commitForm\_Mail', $mail, array('subject' =\> $this));
dann schauen wir mal: \Doctrine\Common\Util\Debug::dump($args-\>getSubject()); \>\>\> object(stdClass)#1891 (11) { ["\_\_CLASS\_\_"]=\> string(54) "Shopware\_Proxies\_ShopwareControllersFrontendFormsProxy" ["\_postData"]=\> array(7) { [24]=\> string(4) "Frau" [35]=\> string(3) "foo" [36]=\> string(3) "bar" [37]=\> string(20) "foobar@foobar.foobar" [38]=\> string(0) "" [39]=\> string(3) "foo" [40]=\> string(3) "fff" } ["\_errors"]=\> array(0) { } ["\_elements"]=\> array(7) { [24]=\> string(8) "Array(9)" [35]=\> string(8) "Array(9)" [36]=\> string(8) "Array(9)" [37]=\> string(8) "Array(9)" [38]=\> string(8) "Array(9)" [39]=\> string(8) "Array(9)" [40]=\> string(8) "Array(9)" } ...
juhuu, wir haben „_postData“ und „_elements“ für unsere event… holen wir mal die benutzer daten: \Doctrine\Common\Util\Debug::dump($args-\>getSubject()-\>\_postData); \>\>\> array(7) { [24]=\> string(4) "Frau" [35]=\> string(3) "foo" [36]=\> string(3) "bar" [37]=\> string(20) "foobar@foobar.foobar" [38]=\> string(0) "" [39]=\> string(3) "foo" [40]=\> string(3) "fff" }
und jetzt noch was ist was: \Doctrine\Common\Util\Debug::dump($args-\>getSubject()-\>\_elements); \>\>\> Fatal error: Uncaught exception 'Enlight\_Exception' with message 'Property "\_elements" not found failure' in ...
wat?!