コード例 #1
1
ファイル: Index.php プロジェクト: nja78/magento2
 /**
  * Display search result
  *
  * @return void
  */
 public function execute()
 {
     $this->layerResolver->create(Resolver::CATALOG_LAYER_SEARCH);
     /* @var $query \Magento\Search\Model\Query */
     $query = $this->_queryFactory->get();
     $query->setStoreId($this->_storeManager->getStore()->getId());
     if ($query->getQueryText() != '') {
         if ($this->_objectManager->get('Magento\\CatalogSearch\\Helper\\Data')->isMinQueryLength()) {
             $query->setId(0)->setIsActive(1)->setIsProcessed(1);
         } else {
             if ($query->getId()) {
                 $query->setPopularity($query->getPopularity() + 1);
             } else {
                 $query->setPopularity(1);
             }
             if ($query->getRedirect()) {
                 $query->save();
                 $this->getResponse()->setRedirect($query->getRedirect());
                 return;
             } else {
                 $query->prepare();
             }
         }
         $this->_objectManager->get('Magento\\CatalogSearch\\Helper\\Data')->checkNotes();
         $this->_view->loadLayout();
         $this->_view->renderLayout();
         if (!$this->_objectManager->get('Magento\\CatalogSearch\\Helper\\Data')->isMinQueryLength()) {
             $query->save();
         }
     } else {
         $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl());
     }
 }
コード例 #2
0
ファイル: Result.php プロジェクト: shabbirvividads/magento2
 /**
  * @return void
  */
 public function execute()
 {
     try {
         $this->layerResolver->create('advanced');
         $this->_catalogSearchAdvanced->addFilters($this->getRequest()->getQueryValue());
         $this->_view->loadLayout();
         $this->_view->renderLayout();
     } catch (\Magento\Framework\Exception\LocalizedException $e) {
         $this->messageManager->addError($e->getMessage());
         $defaultUrl = $this->_urlFactory->create()->addQueryParams($this->getRequest()->getQueryValue())->getUrl('*/*/');
         $this->getResponse()->setRedirect($this->_redirect->error($defaultUrl));
     }
 }
コード例 #3
0
ファイル: Index.php プロジェクト: boxalino/plugin-magento2
 /**
  * Display search result
  *
  * @return void
  */
 public function execute()
 {
     if ($this->bxHelperData->isSearchEnabled()) {
         $this->layerResolver->create(Resolver::CATALOG_LAYER_SEARCH);
         /* @var $query \Magento\Search\Model\Query */
         $query = $this->_queryFactory->get();
         try {
             if ($this->p13Helper->areThereSubPhrases()) {
                 $queries = $this->p13Helper->getSubPhrasesQueries();
                 if (count($queries) == 1) {
                     $this->_redirect('*/*/*', array('_current' => true, '_query' => array('q' => $queries[0])));
                 }
             }
             if ($this->p13Helper->areResultsCorrected()) {
                 $correctedQuery = $this->p13Helper->getCorrectedQuery();
                 $query->setQueryText($correctedQuery);
             }
         } catch (\Exception $e) {
             $this->bxHelperData->setFallback(true);
             $this->_logger->critical($e);
         }
         $query->setStoreId($this->_storeManager->getStore()->getId());
         if ($query->getQueryText() != '') {
             if ($this->_objectManager->get('Magento\\CatalogSearch\\Helper\\Data')->isMinQueryLength()) {
                 $query->setId(0)->setIsActive(1)->setIsProcessed(1);
             } else {
                 $query->saveIncrementalPopularity();
                 if ($query->getRedirect()) {
                     $this->getResponse()->setRedirect($query->getRedirect());
                     return;
                 }
             }
             $this->_objectManager->get('Magento\\CatalogSearch\\Helper\\Data')->checkNotes();
             $this->_view->loadLayout();
             $this->_view->renderLayout();
         } else {
             $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl());
         }
     } else {
         parent::execute();
     }
 }
コード例 #4
0
ファイル: Result.php プロジェクト: Doability/magento2dev
 /**
  * @return void
  */
 public function init()
 {
     if (!self::$isLayerCreated) {
         try {
             $this->layerResolver->create(LayerResolver::CATALOG_LAYER_SEARCH);
         } catch (\Exception $e) {
         } finally {
             self::$isLayerCreated = true;
         }
     }
 }
コード例 #5
0
ファイル: View.php プロジェクト: Doability/magento2dev
 /**
  * Category view action
  *
  * @return \Magento\Framework\Controller\ResultInterface
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function execute()
 {
     if ($this->_request->getParam(\Magento\Framework\App\ActionInterface::PARAM_NAME_URL_ENCODED)) {
         return $this->resultRedirectFactory->create()->setUrl($this->_redirect->getRedirectUrl());
     }
     $category = $this->_initCategory();
     if ($category) {
         $this->layerResolver->create(Resolver::CATALOG_LAYER_CATEGORY);
         $settings = $this->_catalogDesign->getDesignSettings($category);
         // apply custom design
         if ($settings->getCustomDesign()) {
             $this->_catalogDesign->applyCustomDesign($settings->getCustomDesign());
         }
         $this->_catalogSession->setLastViewedCategoryId($category->getId());
         $page = $this->resultPageFactory->create();
         // apply custom layout (page) template once the blocks are generated
         if ($settings->getPageLayout()) {
             $page->getConfig()->setPageLayout($settings->getPageLayout());
         }
         $hasChildren = $category->hasChildren();
         if ($category->getIsAnchor()) {
             $type = $hasChildren ? 'layered' : 'layered_without_children';
         } else {
             $type = $hasChildren ? 'default' : 'default_without_children';
         }
         if (!$hasChildren) {
             // Two levels removed from parent.  Need to add default page type.
             $parentType = strtok($type, '_');
             $page->addPageLayoutHandles(['type' => $parentType]);
         }
         $page->addPageLayoutHandles(['type' => $type, 'id' => $category->getId()]);
         // apply custom layout update once layout is loaded
         $layoutUpdates = $settings->getLayoutUpdates();
         if ($layoutUpdates && is_array($layoutUpdates)) {
             foreach ($layoutUpdates as $layoutUpdate) {
                 $page->addUpdate($layoutUpdate);
                 $page->addPageLayoutHandles(['layout_update' => md5($layoutUpdate)]);
             }
         }
         $page->getConfig()->addBodyClass('page-products')->addBodyClass('categorypath-' . $this->categoryUrlPathGenerator->getUrlPath($category))->addBodyClass('category-' . $category->getUrlKey());
         return $page;
     } elseif (!$this->getResponse()->isRedirect()) {
         return $this->resultForwardFactory->create()->forward('noroute');
     }
 }
コード例 #6
0
ファイル: Ajax.php プロジェクト: smile-sa/elasticsuite
 /**
  * Init the current navigation layer.
  *
  * @return \Smile\ElasticsuiteCatalog\Controller\Navigation\Filter\Ajax
  */
 private function initLayer()
 {
     $this->layerResolver->create($this->getLayerType());
     $this->applyFilters();
     return $this;
 }