wir wollen die registrierung validierung erweitern, und nach folgen was shopware macht, nehme ich an wir sollen das event Shopware_Modules_Admin_ValidateStep2_FilterResult benutzen? laut dokumentation auf http://community.shopware.com/Shopware- … _1072.html ist definition: list($sErrorMessages,$sErrorFlag) = Enlight()-\>Events()-\>filter('Shopware\_Modules\_Admin\_ValidateStep2\_FilterResult', array($sErrorMessages,$sErrorFlag), array('edit'=\>$edit,'rules'=\>$rules,'subject'=\>$this,"post"=\>$this-\>sSYSTEM-\>\_POST));
und listener: public function ShopwareModulesAdminValidateStep2FilterResult(Enlight\_Event\_EventArgs $arguments) { /\*\* @var $sAdmin sAdmin \*/ $sAdmin = $arguments-\>getSubject(); $post = $arguments-\>getPost(); /\*\* @var boolean $edit \*/ $edit = $arguments-\>getEdit(); $rules = $arguments-\>getRules(); }
nun, wie erhalten, bearbeiten und senden wir die $sErrorMessages und $sErrorFlag in der listener? ps. wenn es ne besser methode gibt unsere eigene validierung zu addieren, bitte erwähnen!
guck mal hier: http://community.shopware.com/Warenkorb … 1_868.html das könnte dir weiterhelfen.
*facepalm* ich hab nicht aufgepasst und hab die return zeile von der funktion sValidateStep2 kopiert: return array("sErrorFlag" =\> $sErrorFlag, "sErrorMessages" =\> $sErrorMessages);
aber der event erwartet die in andere reihenfolge: list($sErrorMessages, $sErrorFlag) = $this-\>eventManager-\>filter(
also hier example das funst: <?php class Shopware_Plugins_Frontend_FoobarValidate_Bootstrap
extends Shopware_Components_Plugin_Bootstrap
{
public function install()
{
$this->subscribeEvent( "Shopware\_Modules\_Admin\_ValidateStep2\_FilterResult", "onWhatever" ); return true; } public function onWhatever(Enlight\_Event\_EventArgs $args) { $sAdmin = $args-\>getSubject(); $post = $args-\>getPost(); $edit = $args-\>getEdit(); $rules = $args-\>getRules(); list($sErrorMessages, $sErrorFlag) = $args-\>getReturn(); foreach ($rules as $ruleKey =\> $ruleValue) { if ($ruleKey === "street") { if (strlen($post[$ruleKey]) \< 6) { $sErrorFlag[$ruleKey] = true; $sErrorMessages[] = "blah blah"; } } } return [$sErrorMessages, $sErrorFlag]; } }