On 3/7/2017 at 9:13 PM, Idiotic said:Cool, bless the founder ) saved my life man. Little tip for these who were fighting the searchcontroller and didnt solve it after all - should look like this (1.6.1.6):
class SearchControllerCore extends FrontController{public $php_self = 'search';public $instant_search;public $ajax_search;/*** Initialize search controller* @see FrontController::init()*/public function init(){parent::init();$this->instant_search = Tools::getValue('instantSearch');$this->ajax_search = Tools::getValue('ajaxSearch');if ($this->instant_search || $this->ajax_search) {$this->display_header = false;$this->display_footer = false;}}/*** Assign template vars related to page content* @see FrontController::initContent()*/public function initContent(){$original_query = Tools::getValue('q');$query = Tools::replaceAccentedChars(urldecode($original_query));if ($this->ajax_search) {$searchResults = Search::find((int)(Tools::getValue('id_lang')), $query, 1, 10, 'position', 'desc', true);if (is_array($searchResults)) {foreach ($searchResults as &$product) {$product['product_link'] = $this->context->link->getProductLink($product['id_product'], $product['prewrite'], $product['crewrite']);}Hook::exec('actionSearch', array('expr' => $query, 'total' => count($searchResults)));}$this->ajaxDie(Tools::jsonEncode($searchResults));}//Only controller content initialization when the user use the normal searchparent::initContent();$product_per_page = isset($this->context->cookie->nb_item_per_page) ? (int)$this->context->cookie->nb_item_per_page : Configuration::get('PS_PRODUCTS_PER_PAGE');if ($this->instant_search && !is_array($query)) {$this->productSort();$this->n = abs((int)(Tools::getValue('n', $product_per_page)));$this->p = abs((int)(Tools::getValue('p', 1)));$search = Search::find($this->context->language->id, $query, 1, 10, 'position', 'desc');Hook::exec('actionSearch', array('expr' => $query, 'total' => $search['total']));$nbProducts = $search['total'];$this->pagination($nbProducts);$this->addColorsToProductList($search['result']);$products = $search['result'];foreach($products as &$pro){$pro['combinations'] = Product::getProductAttributeCombinations($pro['id_product']);}$this->context->smarty->assign(array('products' => $search['result'], // DEPRECATED (since to 1.4), not use this: conflict with block_cart module'combinations' => $combinations,'search_products' => $products,'nbProducts' => $search['total'],'search_query' => $original_query,'instant_search' => $this->instant_search,'homeSize' => Image::getSize(ImageType::getFormatedName('home'))));} elseif (($query = Tools::getValue('search_query', Tools::getValue('ref'))) && !is_array($query)) {$this->productSort();$this->n = abs((int)(Tools::getValue('n', $product_per_page)));$this->p = abs((int)(Tools::getValue('p', 1)));$original_query = $query;$query = Tools::replaceAccentedChars(urldecode($query));$search = Search::find($this->context->language->id, $query, $this->p, $this->n, $this->orderBy, $this->orderWay);if (is_array($search['result'])) {foreach ($search['result'] as &$product) {$product['link'] .= (strpos($product['link'], '?') === false ? '?' : '&').'search_query='.urlencode($query).'&results='.(int)$search['total'];}}Hook::exec('actionSearch', array('expr' => $query, 'total' => $search['total']));$nbProducts = $search['total'];$this->pagination($nbProducts);$this->addColorsToProductList($search['result']);$products = $search['result'];foreach($products as &$pro){$pro['combinations'] = Product::getProductAttributeCombinations($pro['id_product']);}$this->context->smarty->assign(array('products' => $search['result'], // DEPRECATED (since to 1.4), not use this: conflict with block_cart module'search_products' => $products,//'combinations' => $combinations,'nbProducts' => $search['total'],'search_query' => $original_query,'homeSize' => Image::getSize(ImageType::getFormatedName('home'))));} elseif (($tag = urldecode(Tools::getValue('tag'))) && !is_array($tag)) {$nbProducts = (int)(Search::searchTag($this->context->language->id, $tag, true));$this->pagination($nbProducts);$result = Search::searchTag($this->context->language->id, $tag, false, $this->p, $this->n, $this->orderBy, $this->orderWay);Hook::exec('actionSearch', array('expr' => $tag, 'total' => count($result)));$this->addColorsToProductList($result);$products = $result;foreach($products as &$pro){$pro['combinations'] = Product::getProductAttributeCombinations($pro['id_product']);}$this->context->smarty->assign(array('search_tag' => $tag,'products' => $result, // DEPRECATED (since to 1.4), not use this: conflict with block_cart module'combinations' => $combinations,'search_products' => $products,'nbProducts' => $nbProducts,'homeSize' => Image::getSize(ImageType::getFormatedName('home'))));} else {$products = array();foreach($products as &$pro){$pro['combinations'] = Product::getProductAttributeCombinations($pro['id_product']);}$this->context->smarty->assign(array('products' => array(),'combinations' => $combinations,'search_products' => $products,'pages_nb' => 1,'nbProducts' => 0));}$this->context->smarty->assign(array('add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'comparator_max_item' => Configuration::get('PS_COMPARATOR_MAX_ITEM')));$this->setTemplate(_PS_THEME_DIR_.'search.tpl');}public function displayHeader($display = true){if (!$this->instant_search && !$this->ajax_search) {parent::displayHeader();} else {$this->context->smarty->assign('static_token', Tools::getToken(false));}}public function displayFooter($display = true){if (!$this->instant_search && !$this->ajax_search) {parent::displayFooter();}}public function setMedia(){parent::setMedia();if (!$this->instant_search && !$this->ajax_search) {$this->addCSS(_THEME_CSS_DIR_.'product_list.css');}}}
At last, this has worked for me, thanks!