Esempio n. 1
0
 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');
 }
Esempio n. 2
0
 /**
  * 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);
 }
Esempio n. 3
0
 /**
  * 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);
 }
Esempio n. 4
0
 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});
     }
 }
Esempio n. 5
0
    /**
     * 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());
    }
Esempio n. 6
0
 /**
  * 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;
 }
Esempio n. 7
0
 /**
  * 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;
 }
Esempio n. 8
0
 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'));
 }
Esempio n. 9
0
 /**
  * @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);
 }
Esempio n. 10
0
 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']));
         }
     }
 }
Esempio n. 11
0
 /**
  * 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']);
 }
Esempio n. 12
0
 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);
 }
Esempio n. 13
0
 /**
  * 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;
 }
Esempio n. 14
0
 /**
  * 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();
 }
Esempio n. 15
0
 /**
  * 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]);
 }
Esempio n. 16
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;
 }
Esempio n. 19
0
 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';
     }
 }
Esempio n. 21
0
 /**
  *
  * # 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()));
 }
Esempio n. 22
0
 /**
  * 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;
     }
 }
Esempio n. 23
0
 /**
  * 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;
 }
Esempio n. 24
0
 /**
  * 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);
 }
Esempio n. 25
0
 /**
  * @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;
 }
Esempio n. 26
0
/**
 * 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);
	}
}
Esempio n. 27
0
 /**
  * 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');
 }
Esempio n. 28
0
 /**
  * @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);
 }
Esempio n. 29
0
 /**
  * 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'));
 }
Esempio n. 30
-1
 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;
 }