/** * Set the refine option * * @return array $aItems Autocompletion items (suggestions, products) */ public function getAutocomplete() { parent::process(); if (!$this->oPrediggoConfig->autocompletion_active) { return ''; } $aItems = array(); /* If $sQuery is empty return the prediggo suggestion and products */ if (strlen($this->sQuery) >= $this->oPrediggoConfig->search_nb_min_chars && ($oPrediggoResult = $this->launchAutoComplete())) { foreach ($oPrediggoResult->getSuggestedWords() as $oSuggestedWords) { $this->context->smarty->assign(array('oSuggestedWords' => $oSuggestedWords)); $aItems[] = array('value' => $this->module->displayAutocompleteDidYouMean($oSuggestedWords), 'link' => $this->context->link->getModuleLink('prediggo', 'search') . '?q=' . $oSuggestedWords->getWord(), 'notificationId' => '', 'isRecommendation' => false); } foreach ($this->oPrediggoCall->getSuggestedProducts($oPrediggoResult, (int) $this->context->cookie->id_lang, (int) $this->oPrediggoConfig->autocompletion_nb_items) as $aRecommendation) { $this->context->smarty->assign(array('aRecommendation' => $aRecommendation)); $aItems[] = array('value' => $this->module->displayAutocompleteProduct(), 'link' => $aRecommendation['link'], 'notificationId' => $aRecommendation['notificationId'], 'isRecommendation' => true); } } elseif (strlen($this->sQuery) == 0) { if ($aSuggestWords = explode(',', $this->oPrediggoConfig->suggest_words[(int) $this->context->cookie->id_lang])) { foreach ($aSuggestWords as $sSuggestWord) { $this->context->smarty->assign(array('sSuggestWord' => trim($sSuggestWord))); $aItems[] = array('value' => $this->module->displayAutocompleteSuggest(), 'link' => $this->context->link->getModuleLink('prediggo', 'search') . '?q=' . $sSuggestWord, 'notificationId' => '', 'isRecommendation' => false); } } } return $aItems; }