public function extendExtJS(\Enlight_Event_EventArgs $arguments) { /** @var \Enlight_View_Default $view */ $view = $arguments->getSubject()->View(); $view->addTemplateDir($this->getPath() . '/Views/'); $view->extendsTemplate('backend/swag_attribute/Shopware.attribute.Form.js'); }
/** * Initialize important variables * @param Enlight_Event_EventArgs $arguments */ protected function init(Enlight_Event_EventArgs $arguments) { $this->controller = $arguments->getSubject(); $this->request = $this->controller->Request(); $this->view = $this->controller->View(); $this->helper->setRequest($this->request); }
/** * Event listener method * * Read the last article in defined controllers * Saves the last article in detail controller * * @param Enlight_Event_EventArgs $args */ public function onPostDispatch(Enlight_Event_EventArgs $args) { $request = $args->getSubject()->Request(); $response = $args->getSubject()->Response(); $view = $args->getSubject()->View(); if (!$request->isDispatched() || $response->isException() || $request->getModuleName() != 'frontend' || !$view->hasTemplate()) { return; } $config = $this->Config(); if ($request->getControllerName() == 'detail' && !Shopware()->Session()->Bot && Shopware()->Shop()->getTemplate()->getVersion() == 1) { $this->setLastArticleById($view->sArticle["articleID"]); } if (rand(0, 100) === 0) { $time = $config->time > 0 ? (int) $config->time : 15; $sql = ' DELETE FROM s_emarketing_lastarticles WHERE time < DATE_SUB(CONCAT(CURDATE(), ?), INTERVAL ? DAY) '; Shopware()->Db()->query($sql, array(' 00:00:00', $time)); Shopware()->Events()->notify('Shopware_Plugins_LastArticles_ResetLastArticles', array('subject' => $this)); } if (empty($config->show)) { return; } if (!empty($config->controller) && strpos($config->controller, $request->getControllerName()) === false) { return; } $view->assign('sLastArticlesShow', true); }
public function onPostDispatchFrontend(Enlight_Event_EventArgs $arguments) { /**@var $controller Shopware_Controllers_Frontend_Index*/ $controller = $arguments->getSubject(); /** * @var $request Zend_Controller_Request_Http */ $request = $controller->Request(); /** * @var $response Zend_Controller_Response_Http */ $response = $controller->Response(); /** * @var $view Enlight_View_Default */ $view = $controller->View(); //Check if there is a template and if an exception has occured if (!$request->isDispatched() || $response->isException() || $request->getModuleName() != 'frontend' || !$arguments->getSubject()->View()->hasTemplate()) { return; } //Add our plugin template directory to load our slogan extension. $view->addTemplateDir($this->Path() . 'Views/'); $view->extendsTemplate('frontend/index/footer-navigation.tpl'); for ($i = 1; $i < 5; $i++) { $contentShow = "pprContentShow{$i}"; $contentColumn = "pprContentColumn{$i}"; $view->assign("show{$i}", $this->Config()->{$contentShow}); $view->assign("column{$i}", $this->Config()->{$contentColumn}); } }
/** * Plugin event method * * @param Enlight_Event_EventArgs $args * @return mixed */ public function onFilterRender(Enlight_Event_EventArgs $args) { $request = $args->getSubject()->Action()->Request(); /** @var $response Enlight_Controller_Response_ResponseHttp */ $response = $args->getSubject()->Action()->Response(); $headers = $response->getHeaders(); foreach($headers as $header) { if($header['name'] == 'Content-Type' && strpos($header['value'], 'application/javascript') === 0) { $source = $args->getReturn(); $source = str_replace(array("\r\n", "\r"), "\n", $source); $expressions = array( // Remove comments '#/\*.*?\*/#ms' => '', '#^\s*//.*$#m' => '', //'#\n\s+#ms' => '', '#^\s+#ms' => '', //'#\s+$#ms' => '', ); $source = preg_replace(array_keys($expressions), array_values($expressions), $source); return $source; } } if ($request->getModuleName() !== 'frontend' && $request->getModuleName() !== 'widgets') { return $args->getReturn(); } return $this->filterSource($args->getReturn()); }
/** * Add our own encoder to the internal encoder collection * * @param Enlight_Event_EventArgs $args * @return array|mixed */ public function onAddEncoder(Enlight_Event_EventArgs $args) { $this->registerMyComponents(); $hashes = $args->getReturn(); $hashes[] = new \Shopware\SwagMd5Reversed\Md5ReversedEncoder(); return $hashes; }
/** * Called from the Event Manager after the dispatch process * * @param Enlight_Event_EventArgs $args * @return bool */ public function onPostDispatch(Enlight_Event_EventArgs $args) { /** @var $subject Enlight_Controller_Action */ $subject = $args->get('subject'); $response = $subject->Response(); $request = $subject->Request(); if (!$request->isDispatched()) { return; } // If the attribute padding is a boolean true if ($this->padding === true) { $this->padding = $request->getParam('callback'); $this->padding = preg_replace('#[^0-9a-z_]+#i', '', (string) $this->padding); } // decide if we should render the data or the whole page if ($this->renderer === true) { $content = $subject->View()->getAssign(); } elseif (!empty($this->padding)) { $content = $response->getBody(); } else { return; } // Convert content to json $content = $this->convertToJson($content); if (!empty($this->padding)) { $response->setHeader('Content-type', 'text/javascript', true); $response->setBody($this->addPadding($content, $this->padding)); } elseif ($this->renderer === true) { $response->setHeader('Content-type', 'application/json', true); $response->setBody($content); } $this->padding = null; $this->encoding = 'UTF-8'; $this->renderer = null; }
public function onSecureCheckoutConfirmPostDispatch(Enlight_Event_EventArgs $arguments) { $controller = $arguments->get('subject'); $view = $controller->View(); $view->addTemplateDir($this->Path() . '/Views'); $view->assign('number', $this->Config()->get('number')); }
/** * @param \Enlight_Event_EventArgs $args */ public function onAfterRegisterShop(\Enlight_Event_EventArgs $args) { /** @var $container Container */ $container = $args->getSubject(); /** @var $router \Shopware\Components\Routing\RouterInterface */ $router = $container->get('router'); /** @var $shop \Shopware\Models\Shop\Shop */ $shop = $container->get('shop'); /** @var $config \Shopware_Components_Config */ $config = $container->get('config'); // Register the shop (we're to soon) $config->setShop($shop); $context = $router->getContext(); $newContext = Context::createFromShop($shop, $config); // Reuse the host if ($newContext->getHost() === null) { $newContext->setHost($context->getHost()); $newContext->setBaseUrl($context->getBaseUrl()); // Reuse https if (!$newContext->isSecure()) { $newContext->setSecure($context->isSecure()); $newContext->setSecureBaseUrl($context->getSecureBaseUrl()); } } // Reuse the global params like controller and action $globalParams = $context->getGlobalParams(); $newContext->setGlobalParams($globalParams); $router->setContext($newContext); }
public function onPostDispatchIndexController(Enlight_Event_EventArgs $arguments) { $controller = $arguments->getSubject(); $view = $controller->View(); $view->addTemplateDir($this->Path() . 'Views/'); $shopLang = Shopware()->Front()->Request()->getCookie('shopLang'); // $ip = $_SERVER['REMOTE_ADDR']; $ip = '195.149.248.130'; //BG // $ip = '194.50.69.124'; //DE // $ip = '211.156.198.82'; //CN $gi = geoip_open(__DIR__ . '/GeoIp/db/GeoIP.dat', GEOIP_STANDARD); $countryCode = geoip_country_code_by_addr($gi, $ip); geoip_close($gi); if ($shopLang != strtolower($countryCode)) { $shopLang = strtolower($countryCode); Shopware()->Front()->Response()->setCookie('shopLang', $shopLang, 0); $builder = Shopware()->Container()->get('dbal_connection')->createQueryBuilder(); $shopId = $builder->select('scs.id')->from('s_core_locales', 'scl')->innerJoin('scl', 's_core_shops', 'scs', 'scl.id = scs.locale_id')->where('scl.locale LIKE ?')->setParameter(0, $shopLang . '%')->execute()->fetch(); if ($shopId) { $view->extendsTemplate('frontend/index/change_shop.tpl'); $view->assign(array('shopId' => $shopId['id'])); } } }
/** * Creates adapter instance * * @param Enlight_Event_EventArgs $args * @return AdapterInterface */ public function createS3Adapter(Enlight_Event_EventArgs $args) { $defaultConfig = ['key' => '', 'secret' => '', 'region' => '', 'version' => 'latest', 'bucket' => '', 'prefix' => '']; $config = array_merge($defaultConfig, $args->get('config')); $client = S3Client::factory(['credentials' => ['key' => $config['key'], 'secret' => $config['secret']], 'region' => $config['region'], 'version' => $config['version']]); return new AwsS3Adapter($client, $config['bucket'], $config['prefix']); }
public function testOnFilterCollectors() { $container = Shopware()->Container(); $debug = $this->getDebugClass(); $eventManager = $container->get('events'); $utils = new Utils(); $arguments = new \Enlight_Event_EventArgs(['utils' => $utils, 'eventManager' => $eventManager]); $arguments->setReturn([]); $collectors = $debug->onFilterCollectors($arguments); $this->assertCount(count($arguments->getReturn()), $collectors); $arguments->setReturn([new EventCollector($eventManager, $utils)]); $collectors = $debug->onFilterCollectors($arguments); $this->assertCount(count($arguments->getReturn()), $collectors); $this->assertInstanceOf('\\Shopware\\Plugins\\ShopwareClockwork\\Clockwork\\Components\\Collector\\EventCollector', $collectors[0]); $arguments->setReturn([new TemplateCollector($container->get('template'), $utils, $container->get('kernel')->getRootDir())]); $collectors = $debug->onFilterCollectors($arguments); $this->assertCount(count($arguments->getReturn()), $collectors); $this->assertInstanceOf('\\Shopware\\Plugins\\ShopwareClockwork\\Clockwork\\Components\\Collector\\TemplateCollector', $collectors[0]); $arguments->setReturn([new EventCollector($eventManager, $utils), new TemplateCollector($container->get('template'), $utils, $container->get('kernel')->getRootDir())]); $collectors = $debug->onFilterCollectors($arguments); $this->assertCount(count($arguments->getReturn()), $collectors); $this->assertInstanceOf('\\Shopware\\Plugins\\ShopwareClockwork\\Clockwork\\Components\\Collector\\EventCollector', $collectors[0]); $this->assertInstanceOf('\\Shopware\\Plugins\\ShopwareClockwork\\Clockwork\\Components\\Collector\\TemplateCollector', $collectors[1]); $info = [1, 2, 3]; $arguments->setReturn($info); $collectors = $debug->onFilterCollectors($arguments); $this->assertCount(count($arguments->getReturn()), $collectors); $this->assertSame($info, $collectors); }
/** * Event listener method * * Read base controller data * * @param Enlight_Event_EventArgs $args */ public function onPostDispatch(Enlight_Event_EventArgs $args) { $request = $args->getSubject()->Request(); $response = $args->getSubject()->Response(); $view = $args->getSubject()->View(); if (!$request->isDispatched() || $response->isException() || $request->getModuleName() != 'frontend' || !$view->hasTemplate()) { return; } $view->baseUrl = $request->getBaseUrl() . $request->getPathInfo(); $shop = Shopware()->Shop(); $view->Controller = $args->getSubject()->Request()->getControllerName(); $view->Shopware = Shopware(); $view->sBasketQuantity = $view->sBasketQuantity ?: 0; $view->sBasketAmount = $view->sBasketAmount ?: 0; $view->sNotesQuantity = $view->sNotesQuantity ?: 0; $view->sUserLoggedIn = $view->sUserLoggedIn ?: false; $view->Shop = $shop; $view->Locale = $shop->getLocale()->getLocale(); $view->sCategoryStart = $shop->getCategory()->getId(); $view->sCategoryCurrent = $this->getCategoryCurrent($view->sCategoryStart); $view->sCategories = $this->getCategories($view->sCategoryCurrent); $view->sMainCategories = $view->sCategories; $view->sOutputNet = Shopware()->Session()->sOutputNet; $activePage = isset($view->sCustomPage['id']) ? $view->sCustomPage['id'] : null; $view->sMenu = $this->getMenu($shop->getId(), $activePage); $view->sShopname = Shopware()->Config()->shopName; }
/** * Called from the event manager before the dispatch process. * Parse the json input data, when it was activated. * * @param Enlight_Event_EventArgs $args * @return bool */ public function onPreDispatch(Enlight_Event_EventArgs $args) { /** @var $subject Enlight_Controller_Action */ $subject = $args->get('subject'); $request = $subject->Request(); // Parses the json input data, if the content type is correct if ($this->parseInput === true && ($contentType = $request->getHeader('Content-Type')) !== false && strpos($contentType, 'application/json') === 0 && ($input = file_get_contents('php://input')) !== false) { $input = Zend_Json::decode($input); foreach ((array) $input as $key => $value) { if ($value !== null) { $request->setPost($key, $value); } } } // Parse the json Params if (count($this->parseParams)) { foreach ($this->parseParams as $Param) { if (($value = $request->getParam($Param)) !== null) { $value = Zend_Json::decode($value); $request->setParam($Param, $value); } } } // Rests the configuration for the next dispatch $this->parseInput = false; $this->parseParams = array(); }
/** * Listener method for the Enlight_Controller_Front_PostDispatch event. * * @param Enlight_Event_EventArgs $args * @return void */ public function onDispatchEvent(Enlight_Event_EventArgs $args) { if (!$args->getResponse()->isException()) { return; } $exception = $args->getResponse()->getException(); $this->handleException($exception[0]); }
/** * adds the Views folder to the template directory to provide the rating images for the e-mail templates * * @param \Enlight_Event_EventArgs $args */ public function onPreDispatchBackendMail(\Enlight_Event_EventArgs $args) { /* @var \Enlight_Controller_Action $subject */ $subject = $args->getSubject(); if ($subject->Request()->getActionName() != 'sendTestmail') { return; } $this->template->addTemplateDir($this->bootstrapPath . 'Views/'); }
public function onFrontendPostDispatch(Enlight_Event_EventArgs $args) { $controller = $args->get('subject'); $view = $controller->View(); $view->addTemplateDir(__DIR__ . '/Views'); $view->assign('facebookLink', $this->Config()->get('facebook-link')); $view->assign('twitterLink', $this->Config()->get('twitter-link')); $view->assign('emailLink', $this->Config()->get('email-link')); }
public function onFilterSql(Enlight_Event_EventArgs $args) { $sql = $args->getReturn(); $newSql = 'attr20,'; for ($i = 21; $i <= 40; $i++) { $newSql .= 'swag_attr' . $i . ','; } $sql = str_replace('attr20,', $newSql, $sql); return $sql; }
public function onFrontendPostDispatch(Enlight_Event_EventArgs $args) { /** @var \Enlight_Controller_Action $controller */ $controller = $args->get('subject'); $view = $controller->View(); $view->addTemplateDir(__DIR__ . '/Views'); $view->assign('sloganSize', $this->Config()->get('font-size')); $view->assign('italic', $this->Config()->get('italic')); $view->assign('slogan', $this->getSlogan()); }
/** * This function is responsible to resolve the backend / frontend controller path. * * @param \Enlight_Event_EventArgs $args * @return string */ public function onGetCustomSortControllerPath(\Enlight_Event_EventArgs $args) { $this->templateManager->addTemplateDir($this->bootstrapPath . 'Views/'); switch ($args->getName()) { case 'Enlight_Controller_Dispatcher_ControllerPath_Backend_CustomSort': return $this->bootstrapPath . 'Controllers/Backend/CustomSort.php'; case 'Enlight_Controller_Dispatcher_ControllerPath_Widgets_CustomSort': return $this->bootstrapPath . 'Controllers/Widgets/CustomSort.php'; } }
/** * * # Test if condition is accessible * # Test if request contains filter-data * # set minstock from config (-Adapter) * * * @param \Enlight_Event_EventArgs $args */ public function addMinStockCondition(\Enlight_Event_EventArgs $args) { if (!$this->getAccessibilityService()->isValid()) { return; } if (!$this->getRequestAdapter()->hasVariantIds()) { return; } $args->getCriteria()->addCondition(new MinStockCondition($this->getConfigAdapter()->getMinStock())); }
/** * Event listener method * * @param Enlight_Event_EventArgs $args */ public static function onRoute(Enlight_Event_EventArgs $args) { $request = $args->getRequest(); $url = $request->getPathInfo(); $url = trim($url, '/'); if (empty($url)) { return; } $query = array(); if (preg_match('#.*?_(detail)_([0-9]+)(?:_([0-9]+))?_?(?:SESS\\-(.*?))?.html#', $url, $match)) { $query['sViewport'] = $match[1]; $query['sArticle'] = $match[2]; $query['sCategory'] = $match[3]; $query['sCoreId'] = $match[4]; } elseif (preg_match('#.*?_(cat)_([0-9]+)(?:_([0-9]+))?_?(?:SESS\\-(.*?))?.html#', $url, $match)) { $query['sViewport'] = $match[1]; $query['sCategory'] = $match[2]; $query['sPage'] = $match[3]; $query['sCoreId'] = $match[4]; } elseif (preg_match('#.*?_(campaign)_([0-9]+)_?(?:SESS\\-(.*?))?.html#', $url, $match)) { $query['sViewport'] = $match[1]; $query['sCampaign'] = $match[2]; $query['sCoreId'] = $match[4]; } elseif (preg_match('#unternehmen/.*?_(custom)_([0-9]+)_?([0-9]+)?_?(?:SESS\\-(.*?))?.html#', $url, $match)) { $query['sViewport'] = $match[1]; $query['sCustom'] = $match[2]; $query['sCoreId'] = $match[4]; if (!empty($match[3])) { $query['sId'] = $match[3]; } } elseif (preg_match('#Artikelindex.*_(.*).html#', $url, $match)) { $query['sViewport'] = 'search'; $query['sSearchMode'] = 'bychar'; $query['sSearchChar'] = $match[1]; $query['sSearchText'] = 'Artikelindex-' . $match[1]; } elseif (preg_match('#Supplier-(.*)_(.*).html#', $url, $match)) { $query['sViewport'] = 'search'; $query['sSearchMode'] = 'supplier'; $query['sSearch'] = $match[2]; $query['sSearchText'] = $match[1]; } else { foreach (explode('/', $url) as $part) { $part = explode(',', $part); if (!empty($part[0]) && !empty($part[1])) { $query[$part[0]] = $part[1]; } } } if (!empty($query) && !empty($query['sViewport'])) { $request->setParam('rewriteOld', true); return $query; } else { return; } }
/** * Event listener method * * Read base controller data * * @param Enlight_Event_EventArgs $args */ public function onPostDispatch(Enlight_Event_EventArgs $args) { $request = $args->getSubject()->Request(); $response = $args->getSubject()->Response(); $view = $args->getSubject()->View(); if (!$request->isDispatched() || $response->isException() || $request->getModuleName() != 'frontend' || !$view->hasTemplate()) { return; } $shop = Shopware()->Shop(); $view->Controller = $args->getSubject()->Request()->getControllerName(); $view->Shopware = Shopware(); if (!$shop->get('esi')) { $view->sBasketQuantity = Shopware()->Modules()->Basket()->sCountBasket(); $view->sBasketAmount = $this->getBasketAmount(); $view->sNotesQuantity = Shopware()->Modules()->Basket()->sCountNotes(); $view->sUserLoggedIn = Shopware()->Modules()->Admin()->sCheckUser(); $categoryContent = $view->sCategoryContent; $topSellerActive = $this->Application()->Config()->get('topSellerActive', true); if (!empty($categoryContent) && $categoryContent['level'] <= 2 && $topSellerActive) { $view->sCharts = Shopware()->Modules()->Articles()->sGetArticleCharts($categoryContent['id']); } if (!empty($view->sCompareShow)) { $view->sComparisons = Shopware()->Modules()->Articles()->sGetComparisons(); } if (!empty($view->sLastArticlesShow)) { $view->sLastArticles = Shopware()->Modules()->Articles()->sGetLastArticles(); } if (!empty($view->sCloudShow)) { $view->sCloud = Shopware()->Modules()->Marketing()->sBuildTagCloud(); } if (empty($view->sBlog) && $view->Controller == "index") { $view->sBlog = $this->getBlog(); } $view->sLanguages = $this->getLanguages(); $view->sCurrencies = $this->getCurrencies(); } else { $view->sBasketQuantity = $view->sBasketQuantity ?: 0; $view->sBasketAmount = $view->sBasketAmount ?: 0; $view->sNotesQuantity = $view->sNotesQuantity ?: 0; $view->sUserLoggedIn = $view->sUserLoggedIn ?: false; } $view->Shop = $shop; $view->Locale = $shop->getLocale()->getLocale(); $view->sCategoryStart = $shop->getCategory()->getId(); $view->sCategoryCurrent = $this->getCategoryCurrent($view->sCategoryStart); $view->sCategories = $this->getCategories($view->sCategoryCurrent); $view->sMainCategories = $view->sCategories; $view->sOutputNet = Shopware()->Session()->sOutputNet; $activePage = isset($view->sCustomPage['id']) ? $view->sCustomPage['id'] : null; $view->sMenu = $this->getMenu($shop->getId(), $activePage); if (!Shopware()->Shop()->get('esi')) { $view->sCampaigns = $this->getCampaigns($view->sCategoryCurrent); } $view->sShopname = Shopware()->Config()->shopName; }
/** * Generic callback function for all registered subscribers in this class. Will dispatch the event to * the anonymous function of the corresponding service * * @param \Enlight_Event_EventArgs $args * @return mixed */ public function load(\Enlight_Event_EventArgs $args) { // get registered service from event name $name = str_replace('Enlight_Bootstrap_InitResource_', '', $args->getName()); // call anonymous function in order to register service $method = self::$definitions[$name]; if (!$method) { throw new \RuntimeException("Service named {$name} not found"); } return $method(self::$container, $args); }
/** * @param Enlight_Event_EventArgs $args * @return bool */ public function onMyCustomRule(Enlight_Event_EventArgs $args) { $rule = $args->get('rule'); $user = $args->get('user'); $basket = $args->get('basket'); $value = $args->get('value'); if ($basket['AmountNumeric'] > $value) { return true; // it's a risky customer } return false; }
/** * Saves userdata from payment field * * @param Enlight_Event_EventArgs $piPaymorrowArgs Arguments */ function piPaymorrowSaveNewUserdata(Enlight_Event_EventArgs $piPaymorrowArgs) { $piPaymorrowView = $piPaymorrowArgs->getSubject()->View(); $piPaymorrowResponse = $piPaymorrowArgs->getSubject()->Response(); $piPaymorrowGetPost = $piPaymorrowArgs->getSubject()->Request()->getPost(); $piPaymorrowUserdata = array(); $piPaymorrowUserdata = $piPaymorrowArgs->getSubject()->View()->sUserData; $piPaymorrowInvoiceId = ""; $piPaymorrowBirthday = ""; if ($piPaymorrowGetPost['pi_Paymorrow_saveBirthday']) { $piPaymorrowInvoiceId = piPaymorrowGetInvoicePaymentId(); } else { $piPaymorrowInvoiceId = piPaymorrowGetRatePaymentId(); } if ($piPaymorrowGetPost['register']['personal']['phone']) { $sql = "UPDATE s_user_billingaddress SET phone= ? WHERE ID= ?"; Shopware()->Db()->query($sql, array($piPaymorrowGetPost['register']['personal']['phone'], (int)$piPaymorrowUserdata['billingaddress']['id'])); } if ($piPaymorrowGetPost['register']['personal']['birthday_rate']) { $piPaymorrowBirthday = $piPaymorrowGetPost['register']['personal']['birthyear_rate'] . "-" . $piPaymorrowGetPost['register']['personal']['birthmonth_rate'] . "-" . $piPaymorrowGetPost['register']['personal']['birthday_rate']; } else { $piPaymorrowBirthday = $piPaymorrowGetPost['register']['personal']['birthyear'] . "-" . $piPaymorrowGetPost['register']['personal']['birthmonth'] . "-" . $piPaymorrowGetPost['register']['personal']['birthday']; } if ($piPaymorrowUserdata["billingaddress"]["birthday"] == "0000-00-00") { $sql = "UPDATE s_user_billingaddress SET birthday= ? WHERE id= ?"; Shopware()->Db()->query($sql, array($piPaymorrowBirthday, (int)$piPaymorrowUserdata['billingaddress']['id'])); $piPaymorrowView->pi_Paymorrow_birthdayflag = true; } $sql = "SELECT birthday FROM s_user_billingaddress WHERE id= ?"; $piPaymorrowNewBirthday = Shopware()->Db()->fetchOne($sql, array((int)$piPaymorrowUserdata['billingaddress']['id'])); $sql = "SELECT phone FROM s_user_billingaddress WHERE id= ?"; $piPaymorrowNewphone = Shopware()->Db()->fetchOne($sql, array((int)$piPaymorrowUserdata['billingaddress']['id'])); if ($piPaymorrowNewBirthday != "0000-00-00" && $piPaymorrowNewphone && !$piPaymorrowUserdata["billingaddress"]["company"] && !$piPaymorrowUserdata["shippingaddress"]["company"] ) { $sql = "UPDATE s_user SET paymentID = ? WHERE id = ?"; Shopware()->Db()->query($sql, array((int)$piPaymorrowInvoiceId,(int)$piPaymorrowUserdata['billingaddress']['userID'])); } else { $piPaymorrowHeader = $piPaymorrowResponse->getHeaders(); $piPaymorrowUrl = $piPaymorrowHeader[1][value]; $piPaymorrowNewUrl = str_replace("/sViewport,account/success,payment", "/sViewport,account/sAction,payment", $piPaymorrowUrl); $piPaymorrowNewUrl = str_replace("/sViewport,checkout/success,payment", "/sViewport,account/sAction,payment/sTarget,checkout", $piPaymorrowNewUrl); $piPaymorrowResponse->setHeader('Location', $piPaymorrowNewUrl, 2); } }
/** * Define template and variables * @param Enlight_Event_EventArgs $args */ public function onPostDispatch(Enlight_Event_EventArgs $args) { $request = $args->getSubject()->Request(); $response = $args->getSubject()->Response(); $view = $args->getSubject()->View(); $config = Shopware()->Plugins()->Frontend()->SwagPiwik()->Config(); if (!$request->isDispatched() || $response->isException() || $request->getModuleName() != 'frontend' || !$view->hasTemplate()) { return; } $view->SwagPiwik = $config; $view->addTemplateDir($this->Path() . 'Views/'); $args->getSubject()->View()->extendsTemplate('frontend/plugins/swag_piwik/index.tpl'); }
/** * @param string $event * @param mixed $value * @param null $eventArgs * @return mixed * @throws Enlight_Event_Exception */ public function filter($event, $value, $eventArgs = null) { if (isset($eventArgs) && is_array($eventArgs)) { $eventArgs = new Enlight_Event_EventArgs($eventArgs); } elseif (!isset($eventArgs)) { $eventArgs = new Enlight_Event_EventArgs(); } elseif (!$eventArgs instanceof Enlight_Event_EventArgs) { throw new Enlight_Event_Exception('Parameter "eventArgs" must be an instance of "Enlight_Event_EventArgs"'); } $eventArgs->setReturn($value); $this->getPluginBootstrap()->addEvent($event, 'filter', $this->getListeners($event), $eventArgs); return $this->events->filter($event, $value, $eventArgs); }
/** * PreDispatch callback for widget and frontend requests * * @param \Enlight_Event_EventArgs $args * @return bool */ public function onPreDispatch(\Enlight_Event_EventArgs $args) { if (!$this->config['frontendblocks']) { return; } /** @var $controller \Enlight_Controller_Action */ $controller = $args->getSubject(); $view = $controller->View(); // set own caching dirs $this->reconfigureTemplateDirs($view->Engine()); // configure shopware to not strip HTML comments Shopware()->Config()->offsetSet('sSEOREMOVECOMMENTS', false); $view->Engine()->registerFilter('pre', array($this, 'preFilter')); }
public function onFilterCollectors(\Enlight_Event_EventArgs $arguments) { $collectors = $arguments->getReturn(); $utils = $arguments->get('utils'); foreach ($collectors as $key => $collector) { if ($collector instanceof EventCollector) { $collectors[$key] = new ClockworkEventCollector($arguments->get('eventManager'), $utils); } elseif ($collector instanceof TemplateCollector) { $collectors[$key] = new ClockworkTemplateCollector($this->container->get('template'), $utils, $this->container->get('kernel')->getRootDir()); } } return $collectors; }