/** * 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; } }
/** * @param Enlight_Event_EventArgs $arguments */ public function onPostDispatchConfig(Enlight_Event_EventArgs $arguments) { /* @var Enlight_View_Default $view */ $view = $arguments->getSubject()->View(); //if the controller action name equals "load" we have to load all application components. if ($arguments->getRequest()->getActionName() === 'load') { $view->addTemplateDir($this->Path() . 'Views/'); $view->extendsTemplate('backend/config/view/form/document_paypal_plus.js'); } }
/** * Called when the BackendCustomerPostDispatch Event is triggered * * @param Enlight_Event_EventArgs $args */ public function onBackendCustomerPostDispatch(Enlight_Event_EventArgs $args) { /**@var $view Enlight_View_Default*/ $view = $args->getSubject()->View(); // Add template directory $args->getSubject()->View()->addTemplateDir($this->Path() . 'Views/'); //if the controller action name equals "load" we have to load all application components if ($args->getRequest()->getActionName() === 'load') { $view->extendsTemplate('backend/customer/model/customer_preferences/attribute.js'); $view->extendsTemplate('backend/customer/model/customer_preferences/list.js'); $view->extendsTemplate('backend/customer/view/list/customer_preferences/list.js'); $view->extendsTemplate('backend/customer/view/detail/customer_preferences/window.js'); $view->extendsTemplate('backend/boxalino_export/view/main/window.js'); //if the controller action name equals "index" we have to extend the backend customer application if ($args->getRequest()->getActionName() === 'index') { $view->extendsTemplate('backend/customer/customer_preferences_app.js'); $view->extendsTemplate('backend/boxalino_export/boxalino_export_app.js'); } } }
/** * Called when the BackendCustomerPostDispatch Event is triggered * * @param Enlight_Event_EventArgs $args */ public function onBackendCustomerPostDispatch(Enlight_Event_EventArgs $args) { /**@var $view Enlight_View_Default */ $view = $args->getSubject()->View(); //if the controller action name equals "load" we have to load all application components if ($args->getRequest()->getActionName() === 'load') { $view->addTemplateDir($this->Path() . 'Views/emotion/'); $view->extendsTemplate('backend/customer/payment_methods/controller/detail.js'); $view->extendsTemplate('backend/customer/payment_methods/view/detail/payment_methods.js'); } }
public static function onPreDispatch(Enlight_Event_EventArgs $args) { $request = $args->getSubject()->Request(); if ($request->getModuleName() && $request->getModuleName() != 'frontend') { return; } switch ($request->getControllerName()) { case 'shopware.php': case 'sViewport,sale': $url = $args->getRequest()->getPathInfo(); $url = trim($url, '/'); foreach (explode('/', $url) as $part) { $part = explode(',', $part); if (!empty($part[0]) && !empty($part[1])) { $request->setParam($part[0], $part[1]); } } if ($request->getParam('sAction') && $request->getParam('sAction') == 'doSale') { $request->setControllerName('checkout')->setActionName('finish')->setDispatched(false); } else { $request->setControllerName('checkout')->setActionName('confirm')->setDispatched(false); } break; case 'cat': $request->setControllerName('listing')->setDispatched(false); break; case 'captcha': $request->setModuleName('widgets')->setControllerName('captcha')->setDispatched(false); break; case 'password': case 'login': case 'logout': $request->setActionName($request->getParam('sViewport')); case 'admin': $request->setControllerName('account')->setDispatched(false); break; case 'registerFC': case 'register1': case 'register2': case 'register2shipping': case 'register3': $request->setControllerName('register')->setDispatched(false); break; case 'sale': if ($request->getParam('sAction') && $request->getParam('sAction') == 'doSale') { $request->setControllerName('checkout')->setActionName('finish')->setDispatched(false); } else { $request->setControllerName('checkout')->setActionName('confirm')->setDispatched(false); } break; case 'sViewport,basket': case 'basket': $request->setControllerName('checkout')->setActionName('cart')->setDispatched(false); break; case 'searchFuzzy': $request->setControllerName('search')->setActionName('index')->setDispatched(false); break; case 'newsletterListing': $request->setControllerName('newsletter')->setActionName('listing')->setDispatched(false); break; case 'support': $request->setControllerName('forms')->setActionName('index')->setDispatched(false); break; case 'ticketdirect': $request->setControllerName('ticket')->setActionName('direct')->setDispatched(false); break; default: break; } }
/** * This method loads the new backend article-module. * This is necessary to extend the default article-module. * * @param Enlight_Event_EventArgs $args * @return bool success */ public function loadArticleBackendModule(Enlight_Event_EventArgs $args) { $this->Application()->Snippets()->addConfigDir($this->Path() . 'Snippets/'); $this->registerMyTemplateDir(true); if ($args->getRequest()->getActionName() === 'load') { $args->getSubject()->View()->extendsTemplate('backend/article/view/accessory/detail/window.js'); } if ($args->getRequest()->getActionName() === 'index') { $args->getSubject()->View()->extendsTemplate('backend/article/accessory_app.js'); } }
/** * Reads the route based on the url. * * @param Enlight_Event_EventArgs $args * @return array|null */ public function onRoute(Enlight_Event_EventArgs $args) { /** @var $request Enlight_Controller_Request_RequestHttp */ $request = $args->getRequest(); $url = $request->getPathInfo(); if (strpos($url, '/backend') === 0 || strpos($url, '/api') === 0) { return; } if (!Shopware()->Bootstrap()->issetResource('Shop')) { return; } $shop = Shopware()->Shop(); $sql = 'SELECT org_path, main FROM s_core_rewrite_urls WHERE path LIKE ? AND subshopID =?'; $result = Shopware()->Db()->fetchRow($sql, array( ltrim($url, '/'), $shop->getId() )); if (!empty($result)) { $alias_list = $this->sGetQueryAliasList(); foreach ($alias_list as $key => $alias) { $value = $request->getQuery($alias); if ($value !== null) { $request->setQuery($key, $value); $request->setQuery($alias, null); } } parse_str($result['org_path'], $query); if (empty($result['main'])) { $request->setParam('rewriteAlias', true); } else { $request->setParam('rewriteUrl', true); } return $query; } return null; }
/** * On Route add user-agent and remote-address to log component * * @param Enlight_Event_EventArgs $args */ public function onStartDispatch(Enlight_Event_EventArgs $args) { /** @var $request Enlight_Controller_Request_RequestHttp */ $request = $args->getRequest(); if (($site = $request->getParam('__site')) !== null) { /** @var $siteManager Enlight_Components_Site_Manager */ $siteManager = $this->Application()->Sites(); $site = $siteManager->findOneBy('id', $site); /** @var $log Enlight_Components_Session_Namespace */ $session = $this->Application()->Session(); $session->Site = $session; } else { /** @var $site Enlight_Components_Site */ $site = $this->Application()->Site(); } if (($locale = $request->getParam('__locale')) !== null) { $site->setLocale($locale); } if (($currency = $request->getParam('__currency')) !== null) { $site->setCurrency($currency); } }
/** * Routes the path information, if the router symfony match it. * * @param Enlight_Event_EventArgs $args * @return array|null */ public function onRoute(Enlight_Event_EventArgs $args) { /** @var $request Enlight_Controller_Request_RequestHttp */ $request = $args->getRequest(); /** @var $routes Symfony\Component\Routing\RouteCollection */ $routes = $this->Application()->SymfonyRoutes(); $context = $this->getRequestContext($request); $matcher = new UrlMatcher($routes, $context); try { return $matcher->match($request->getPathInfo()); } catch (ResourceNotFoundException $e) { return null; } }
/** * extends the Orderdetailview * * @param Enlight_Event_EventArgs $arguments */ public function extendOrderDetailView(Enlight_Event_EventArgs $arguments) { $arguments->getSubject()->View()->addTemplateDir($this->Path() . 'Views/backend/rpay_ratepay_orderdetail/'); if ($arguments->getRequest()->getActionName() === 'load') { $arguments->getSubject()->View()->extendsTemplate('backend/order/view/detail/ratepaydetailorder.js'); } if ($arguments->getRequest()->getActionName() === 'index') { $arguments->getSubject()->View()->extendsTemplate('backend/order/ratepayapp.js'); } }
/** * Cancels payment slip before order is deleted. * * @param Enlight_Event_EventArgs $args */ public function onGetOrderControllerPreDispatch(Enlight_Event_EventArgs $args) { if ($args->getRequest()->getActionName() === 'delete') { $id = $args->getSubject()->Request()->getParam('id', null); $order = Shopware()->Models()->getRepository('Shopware\\Models\\Order\\Order')->find($id); if ($order->getPayment()->getName() === 'barzahlen') { $transactionId = $order->getTransactionId(); $cancel = new Barzahlen_Request_Cancel($transactionId); $config = $this->Config(); $shopId = $config->barzahlenShopId; $paymentKey = $config->barzahlenPaymentKey; $sandbox = $config->barzahlenSandbox; $api = new Barzahlen_Api($shopId, $paymentKey, $sandbox); $api->setDebug($config->barzahlenDebug, self::LOGFILE); try { $api->handleRequest($cancel); } catch (Exception $e) { $this->_logError($e); } } } }
/** * @param Enlight_Event_EventArgs $args */ public function onPostDispatchPaymentPaypal(Enlight_Event_EventArgs $args) { /* @var Enlight_View_Default $view */ $view = $args->getSubject()->View(); if ($args->getRequest()->getActionName() === 'getList') { $orders = $view->getAssign('data'); $orderNumbers = array_map(function ($order) { return $order['orderNumber']; }, $orders); $payPalPlusPuiOrderNumbers = $this->getPuiOrderNumbers($orderNumbers); foreach ($orders as &$order) { if (in_array($order['orderNumber'], $payPalPlusPuiOrderNumbers)) { $order['paymentDescription'] = $order['paymentDescription'] . ' Plus (R)'; } } $view->assign('data', $orders); } }
/** * Listener method for the Enlight_Controller_Front_PostDispatch event. * * @param Enlight_Event_EventArgs $args * @return void */ public function onPostDispatch(Enlight_Event_EventArgs $args) { $this->handleError($args->getSubject(), $args->getRequest()); }
/** * Eventhandler for checkout confirmation. * Displays any error messages stored in the session * * @param Enlight_Event_EventArgs $arguments */ public function onCheckoutConfirm(Enlight_Event_EventArgs $arguments) { $params = $arguments->getRequest()->getParams(); if ($arguments->getRequest()->getControllerName() !== 'account' || $arguments->getRequest()->getActionName() !== 'payment' || $params["errorMessage"] != 1) { return; } else { $helper = new Shopware_Plugins_Frontend_SofortPayment_Components_Helpers_Helper(); $view = $arguments->getSubject()->View(); $helper->event()->displayErrors($view); } }