コード例 #1
0
 public function getFilters(Layer $layer)
 {
     if (!$this->helper->isActiveEngine()) {
         return parent::getFilters($layer);
     }
     if (!count($this->filters)) {
         $this->filters = [];
         // $response = $this->_getResponse($layer);
         $response = $this->searchHelper->getCustomResults();
         $questions = $response->QwiserSearchResults->Questions;
         $aaa = '';
         foreach ($questions->children() as $question) {
             $this->filters[] = $this->createQuestionFilter($question, $layer);
             $this->appliedFilters[] = $question->getAttribute('Text');
         }
     }
     $remFilters = array_diff($this->searchHelper->getFilterRequestVars(), $this->appliedFilters);
     foreach ($this->request->getParams() as $var => $value) {
         if (in_array($var, $remFilters)) {
             $question = $this->searchHelper->getQuestionByField($var, 'Text');
             if ($question) {
                 $this->createQuestionFilter($question, $layer)->apply($this->request);
                 $this->appliedFilters[] = $var;
             }
         }
     }
     return $this->filters;
 }
コード例 #2
0
 public function create(array $data = [])
 {
     if ($this->helper->isActiveEngine()) {
         $adapter = $this->objectManager->create('Celebros\\ConversionPro\\Model\\Search\\Adapter\\Celebros\\Adapter');
         return $adapter;
     }
     return parent::create($data);
 }
コード例 #3
0
 public function generate()
 {
     if (!$this->helper->isActiveEngine()) {
         return parent::generate();
     }
     $requests['quick_search_container'] = $this->generateQuickSearchRequest();
     // TODO: advanced search
     return $requests;
 }
コード例 #4
0
 /**
  * @param \Magento\Framework\Event\Observer $observer
  * @return $this
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     $currentHandle = $observer->getEvent()->getFullActionName();
     if ($this->_helper->isActiveEngine()) {
         if (isset($this->handles[$currentHandle])) {
             return $this->_addHandleToLayout($observer, $this->handles[$currentHandle]);
         }
     }
 }
コード例 #5
0
 public function getRecommendedMessage()
 {
     if ($this->helper->isActiveEngine()) {
         $response = $this->_getResponse();
         $message = $response->QwiserSearchResults->getAttribute('RecommendedMessage');
         return $message;
     } else {
         return '';
     }
 }
コード例 #6
0
 public function afterExecute($controller, $result)
 {
     if ($result instanceof \Magento\Framework\View\Result\Page && $this->helper->isEnabledOnFrontend() && $this->helper->getNavToSearch()) {
         $categoryId = $this->context->getRequest()->getParam('id');
         if (!$this->helper->isCategoryIdBlacklisted($categoryId)) {
             $result->getConfig()->setPageLayout('1column');
         }
     }
     return $result;
 }
コード例 #7
0
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     if (!$this->helper->isEnabledOnFrontend()) {
         return;
     }
     $view = $this->context->getView();
     $page = $view->getPage();
     $layoutUpdate = $page->getLayout()->getUpdate();
     $layoutUpdate->addHandle('conversionpro_catalogsearch_result_index');
     $page->getConfig()->setPageLayout('1column');
 }
コード例 #8
0
 public function getRemoveUrl()
 {
     if ($this->helper->isActiveEngine()) {
         if (!$this->hasSelectedValues() || empty($this->getSelectedValues())) {
             return parent::getRemoveUrl();
         }
         /** @var array $values */
         $values = $this->getSelectedValues();
         $values = array_diff($values, [$this->getValue()]);
         if (empty($values)) {
             return parent::getRemoveUrl();
         }
         $query = [$this->getFilter()->getRequestVar() => implode(',', $values), $this->_htmlPagerBlock->getPageVarName() => null];
         return $this->_url->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true, '_query' => $query]);
     }
     return parent::getRemoveUrl();
 }
コード例 #9
0
 public function getLastPageNum()
 {
     if ($this->helper->isActiveEngine() && $this->helper->isPermittedHandle()) {
         return (int) $this->getData('last_page_num');
     } else {
         return parent::getLastPageNum();
     }
 }
コード例 #10
0
 public function getFilterValue($requestVar)
 {
     $filterRequestVars = $this->getFilterRequestVars();
     $value = $this->getValueFromRequest($requestVar);
     if (!is_null($value) && !$this->helper->isMultiselectEnabled()) {
         $values = $this->filterValueToArray($value);
         $value = reset($values);
     }
     return $value;
 }
コード例 #11
0
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     if (!$this->helper->isEnabledOnFrontend()) {
         return;
     }
     $layoutUpdate = $observer->getEvent()->getLayout()->getUpdate();
     $fullActionName = $observer->getEvent()->getFullActionName();
     switch ($fullActionName) {
         case 'catalogsearch_result_index':
             $layoutUpdate->addHandle('conversionpro_catalogsearch_result_index');
             break;
         case 'catalog_category_view':
             if ($this->helper->getNavToSearch()) {
                 $categoryId = $this->context->getRequest()->getParam('id');
                 if (!$this->helper->isCategoryIdBlacklisted($categoryId)) {
                     $layoutUpdate->addHandle('conversionpro_catalog_category_view');
                     if ($this->helper->getHideContent()) {
                         $layoutUpdate->addHandle('conversionpro_catalog_category_view_hide_content');
                     }
                 }
             }
             break;
     }
 }
コード例 #12
0
 protected function getOptionText($optionId)
 {
     if ($this->_isPrice()) {
         if (preg_match('@^_P(\\d+)_(\\d+)$@', $optionId, $matches)) {
             $optionId = str_replace('_P', $this->getCurrencySymbol(), $optionId);
             return str_replace('_', ' - ' . $this->getCurrencySymbol(), $optionId);
         }
     }
     if ($this->hasAnswers()) {
         foreach ($this->getAnswers()->children() as $answer) {
             if ($answer->getAttribute('Id') == $optionId) {
                 return $this->_prepareAnswerText($answer);
             }
         }
     }
     foreach ($this->searchHelper->getQuestionAnswers($this->getQuestion()->getAttribute('Id'))->Answers->Answer as $answer) {
         if ($answer->getAttribute('Id') == $optionId) {
             return $this->_prepareAnswerText($answer);
         }
     }
     return __('Unknown value');
 }