Возможно ли еще вывести и картинку, если например поиск по инстантшопу, универсальному кталогу, новостям? Это было бы удобно и наглядно для пользователя.
<?php /*********************************************************************************************/ // // // InstantCMS v1.6 (c) 2010 FREEWARE // // http://instantcms.ru/, info@instantcms.ru // // // // written by Vladimir E. Obukhov, 2007-2010 // // // /*********************************************************************************************/ function search_shop($query, $look){ //query sends here already prepared and secured! $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); global $_LANG; //BUILD SQL QUERY $sql = "SELECT DISTINCT con.*, cat.title cat_title, cat.seolink as cat_seolink FROM cms_shop_items con, cms_shop_cats cat WHERE MATCH(con.title, con.shortdesc, con.description) AGAINST ('$query' IN BOOLEAN MODE) AND con.category_id = cat.id AND con.published=1"; //QUERY TO GET TOTAL RESULTS COUNT $result = $inDB->query($sql); $found= $inDB->num_rows($result); if ($found){ while($item = $inDB->fetch_assoc($result)){ //build params $inCore->loadLanguage('components/shop'); $link = "/shop/".$item['seolink'].".html"; $place = $_LANG['SHOP']; $placelink = "/shop/".$item['cat_seolink']; //include item to search results $sql = "INSERT INTO cms_search (`id`, `session_id`, `title`, `link`, `place`, `placelink`) $inDB->query($sql); } } } //BUILD SQL QUERY $sql = "SELECT cat.title cat_title, cat.seolink as cat_seolink FROM cms_shop_cats cat WHERE cat.title LIKE '%{$query}%'"; //QUERY TO GET TOTAL RESULTS COUNT $result = $inDB->query($sql); $found = $inDB->num_rows($result); if ($found){ while($item = $inDB->fetch_assoc($result)){ //build params $inCore->loadLanguage('components/shop'); $link = "/shop/".$item['cat_seolink']; $place = $_LANG['SHOP']; $placelink = "/shop/".$item['cat_seolink']; //include item to search results $sql = "INSERT INTO cms_search (`id`, `session_id`, `title`, `link`, `place`, `placelink`) $inDB->query($sql); } } return; } ?>
Может возможен упрощенный вариант? Например только картинки элементов универсального каталога.
Как это можно сделать?
хм… здорово! а можно подробней, как доработать? Что нужно добавить в код?Просто нужно доработать вывод компонента search и доработать каждый поисковый файл компонента.
тоже очень интересноПожалуйста… вопрос для профи… как вывести картинки в результатах поиска?
Картинки можно вывести:
редактируется 2 файла
\system\controllers\search\model.php
templates\default\controllers\search\index.tpl.php
Пытался выбрать к примеру по полю 'photo' — для новостей. Выборка по значению поля происходит, место для картинки выставляется.
НО! Такое поле имеется только в таблице cms_con_news — то есть только для новостей.
В пейджах такого поля нет, в постах это поле называется Picture и содержание мальца другое.
Поэтому при включенном поиске во всех возможных (настройки компонента поиска в админке) — я получаю ошибку про не найденное поле в таблице.
$query = $this->getFullTextQuery();
$sql_fields = implode(', ', $fields);
$sql = "SELECT id, slug, date_pub, photo, {$sql_fields}
FROM cms_{$table_name}
WHERE MATCH({$sql_fields}) AGAINST ('{$query}' IN BOOLEAN MODE)
";