Example #1
0
 /**
  * {@inheritdoc}
  */
 public function preFilter($params, Context $context = null)
 {
     // add support for "shopware.php?sViewport,cat&sCategory=3"
     if (is_string($params)) {
         $params = parse_url($params, PHP_URL_QUERY);
         $params = str_replace(',', '=', $params);
         parse_str($params, $params);
     }
     $globalParams = $context->getGlobalParams();
     if (isset($params['sViewport'])) {
         $params['controller'] = $params['sViewport'];
     }
     if (isset($params['sAction'])) {
         $params['action'] = $params['sAction'];
     }
     unset($params['title'], $params['sViewport'], $params['sAction']);
     if (isset($params['controller']) || isset($params['module'])) {
         if (isset($params['module'])) {
             unset($globalParams['controller']);
         }
         unset($globalParams['controller'], $globalParams['action']);
     }
     /** @see \sArticles::buildNavigation */
     if (isset($params['sDetails'])) {
         $params['sArticle'] = $params['sDetails'];
         unset($params['sDetails']);
     }
     /** @see \Shopware_Controllers_Backend_Customer::performOrderAction */
     if (!isset($params['controller']) && isset($params['action']) && $params['action'] == 'performOrderRedirect') {
         $params['module'] = 'backend';
         $params['controller'] = 'customer';
     }
     /** @see \Shopware_Controllers_Widgets_Emotion */
     if (!isset($params['module']) && isset($globalParams['module']) && $globalParams['module'] == 'widgets') {
         $params['module'] = 'frontend';
     }
     $params = array_merge($globalParams, $params);
     $context->setParams($params);
     return $params;
 }