Выдано 132837 лицензий

Сортировка результатов поиска в поисковом модуле

Сортировка результатов поиска в поисковом модуле
#
Seri
760
Результат поиска настроен на поиск только товаров в определенном магазине:
Search_Controller_Show
$Search_Controller_Show->modules(
        array(
            3 => array(array('module_id' => 1, 'module_value_type' => 2))
        )
    );


Поставлено задача, организовать сортировку результатов поиска по наличию товаров. Тогда это в результате первыми показывались товары в наличии, а потом нет в наличии. Для этого сделано нижеследующее:

1. Пишем класс наблюдателя, размещаем его в modules/search/controller/observer.php
class Search_Controller_Observer
{
    static public function onBeforeExecuteFind($object, $args)
    {
        $args[1]
            ->leftJoin('shop_warehouse_items', 'shop_warehouse_items.shop_item_id', '=', 'search_pages.module_value_id')
            ->groupBy('search_pages.module_value_id')
            ->clearOrderBy()
            ->orderBy(Core_QueryBuilder::expression('SIGN(SUM(`shop_warehouse_items`.`count`))'), 'DESC');
    }
}


2. Добавляем наблюдателя в bootstrap.php
Core_Event::attach('Search_Controller_Hostcms.onBeforeExecuteFind', array('Search_Controller_Observer', 'onBeforeExecuteFind'));


Спасибо поддержке HostCMS
E-mail: info@syrbek.ru / skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Re: Сортировка результатов поиска в поисковом модуле
#
Barbaros
100
Добрый день!
После внедрения выдаётся ошибка:
"Предупреждение: call_user_func() expects parameter 1 to be a valid callback, class 'Search_Controller_Observer' not found в файле `/modules/core/event.php (строка 134)"
Не подскажете с чем связана?
www.beregusha.com
Re: Сортировка результатов поиска в поисковом модуле
#
hostcms
Модератор
16553
Barbaros,
файла modules/search/controller/observer.php нет
Re: Сортировка результатов поиска в поисковом модуле
#
Barbaros
100
hostcms,
Точно! Забыл в файле observer.php добавить <?php
Спасибо за подсказку!
Работает!
www.beregusha.com
Re: Сортировка результатов поиска в поисковом модуле
#
alexpimnev
635
Нужно добавить что для драйвера Sphinx это не будет работать
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов
Авторизация