====== Автодополнение в строке поиска ====== В этой статье описано, как реализовать такое автодополнение вариантов поиска в редакции Халява {{:private:koding:hostcms:shop:12e3.jpg|}} такую функцию выполняет плагин Autocomplete | jQuery UI. Свежую версию плагина можно скачать на Github'е: https://github.com/devbridge/jQuery-Autocomplete - Необходимо добавить загруженные файлы скрипта и стилей на сервер ''styles.css'' и ''jquery.autocomplete.min.js'' в папки ''css'' и ''js'' соответственно. - Подключить эти файлы в основном макете сайта - В основной макет сайта в блок ''head'' добавить следующий код: - Для '''', у которого должен выводиться выпадающий список добавляете ''id="search_text"'' - В ТДС, в Настройки страницы интернет магазина добавить код: (данный пример кода ищет варианты автозаполнения по имени и артикулу) /** * Поиск товаров для автозаполнения * * @author Malinovskii Aleksandr, KAD Systems (©) 2015 * @date 24-11-2015 * Начало >> */ if (Core_Array::getGet('autocomplete')) { $aResultJson = array(); $sQuery=Core_Array::getGet('query'); $aResultJson['query'] = $sQuery; $aResultJson['suggestions'] = array(); //ищем совпадающие запросу имена $aResultName = Core_QueryBuilder::select(array('shop_items.name', 'value')) ->from('shop_items') ->where('shop_items.name', 'LIKE', '%'.$sQuery.'%') ->setAnd() ->where('shop_items.shop_id', '=', '5')->setAnd() ->where('shop_items.active', '=', '1')->setAnd() ->where('shop_items.deleted', '=', '0'); //аналогично ищем артикули $aResultMarking = Core_QueryBuilder::select(array('shop_items.marking', 'value')) ->from('shop_items') ->where('shop_items.marking', 'LIKE', '%'.$sQuery.'%') ->setAnd() ->where('shop_items.shop_id', '=', '5')->setAnd() ->where('shop_items.active', '=', '1')->setAnd() ->where('shop_items.deleted', '=', '0'); $aResultJson['suggestions'] = array_merge($aResultName->execute()->asAssoc()->result(), $aResultMarking->execute()->asAssoc()->result()) ; echo json_encode($aResultJson); exit(); } /** * << Конец * @author Malinovskii Aleksandr, KAD Systems (©) 2015 * @date 24-11-2015 */