Example #1
0
 /**
  * Call method around dispatch frontend action
  *
  * @param FrontControllerInterface $subject
  * @param \Closure                 $proceed
  * @param RequestInterface         $request
  * @return $this
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  * @SuppressWarnings(PHPMD)
  */
 public function aroundDispatch(FrontControllerInterface $subject, \Closure $proceed, RequestInterface $request)
 {
     $startTime = microtime(true);
     if (isset($_SERVER['REQUEST_TIME_FLOAT'])) {
         $startTime = $_SERVER['REQUEST_TIME_FLOAT'];
     }
     /** @var \Magento\Framework\App\Request\Http $request */
     if (strpos($request->getOriginalPathInfo(), 'searchautocomplete/ajax/suggest') !== false) {
         $this->result->init();
         $proceed($request);
         #require for init translations
         $request->setControllerModule('Magento_CatalogSearch');
         $request->setDispatched(true);
         $identifier = 'QUERY_' . $this->storeManager->getStore()->getId() . '_' . md5($request->getParam('q'));
         if ($result = $this->cache->load($identifier)) {
             $result = \Zend_Json::decode($result);
             $result['time'] = round(microtime(true) - $startTime, 4);
             $result['cache'] = true;
             $data = \Zend_Json::encode($result);
         } else {
             // mirasvit core event
             $this->eventManager->dispatch('core_register_urlrewrite');
             $result = $this->result->toArray();
             $result['success'] = true;
             $result['time'] = round(microtime(true) - $startTime, 4);
             $result['cache'] = false;
             $data = \Zend_Json::encode($result);
             $this->cache->save($data, $identifier, [\Magento\PageCache\Model\Cache\Type::CACHE_TAG]);
         }
         $this->response->setPublicHeaders(3600);
         return $this->response->representJson($data);
     } else {
         return $proceed($request);
     }
 }
Example #2
0
 /**
  * Match controller name
  *
  * @param \Magento\Framework\App\RequestInterface $request
  * @param string $param
  * @return string
  */
 protected function matchActionPath(\Magento\Framework\App\RequestInterface $request, $param)
 {
     if ($request->getControllerName()) {
         $actionPath = $request->getControllerName();
     } elseif (!empty($param)) {
         $actionPath = $param;
     } else {
         $actionPath = $this->_defaultPath->getPart('controller');
         $request->setAlias(\Magento\Framework\Url::REWRITE_REQUEST_PATH_ALIAS, ltrim($request->getOriginalPathInfo(), '/'));
     }
     return $actionPath;
 }
Example #3
0
 /**
  * This method returns an indicator of whether or not the current request is for vde
  *
  * @param RequestInterface $request
  * @return bool
  */
 public function isVdeRequest(RequestInterface $request = null)
 {
     $result = false;
     if (null !== $request) {
         $splitPath = explode('/', trim($request->getOriginalPathInfo(), '/'));
         if (count($splitPath) >= 3) {
             list($frontName, $currentMode, $themeId) = $splitPath;
             $result = $frontName === $this->_frontName && in_array($currentMode, [\Magento\DesignEditor\Model\State::MODE_NAVIGATION]) && is_numeric($themeId);
         }
     }
     return $result;
 }