Joomla - Изображения товаров в результатах поиска в JoomShopping + RokAjaxSearch



Речь пойдет о связке модуля поиска RokAjaxSearch и компонента магазина Joomshopping 3.11.4 + Joomla 2.5

200x-rok.410.jpg

Данный модуль может выводить результаты поиска с помощью ajax технологии сразу под строкой поиска.

Результаты поиска содержат Наименование товара, Описание товара, Категорию и ссылку на полное описание.

Часто на форумах задают вопрос, как туда же вставить и изображение товара, ответа я не увидел. то ли никому это не надо, то ли зажали решение )
Итак добавим изображение для результатов поиска в RokАjaxSearch для Joomshopping.
 
Для этого нам понадобиться сам модуль RokАjaxSearch(скачать можно на официальном сайте модуля) + плагин поиска для Joomshopping, который есть в свободном дуступе на сайте разработчика магазина. Да и думаю, те, кому необходим данный поиска сами знают где достать все необходимые модули и плагины.
Приступим:
1) Вытащим картинку из базы данных joomshopping
Идем в папку \plugins\search\joomshopping\joomshopping.php находим та строку примерно 91
и видим запрос:
 
$query = "SELECT prod.product_id AS slug, pr_cat.category_id AS catslug, prod.`".$lang->get('name')."` as title, 
CONCAT(prod.`"
.$lang->get('short_description')."`,' ',prod.`".$lang->get('description')."`) as text,
'2' AS browsernav,
prod.product_date_added AS created,
cat.`"
.$lang->get('name')."` AS section
FROM `#__jshopping_products` AS prod
LEFT JOIN `#__jshopping_products_to_categories` AS pr_cat ON pr_cat.product_id = prod.product_id
LEFT JOIN `#__jshopping_categories` AS cat ON pr_cat.category_id = cat.category_id
WHERE ($where) AND prod.product_publish = '1' AND cat.category_publish='1'
GROUP BY prod.product_id
ORDER BY $order" ;

В него необходимо добавить вызов картинки, заменяем выше приведенный кусок кода на следующий  (была добавлена строка prod.product_thumb_image AS myimg,):

$query = "SELECT prod.product_id AS slug, pr_cat.category_id AS catslug, prod.`".$lang->get('name')."` as title, CONCAT(prod.`".$lang->get('short_description')."`,' ',prod.`".$lang->get('description')."`) as text, '2' AS browsernav,prod.product_date_added AS created,prod.product_thumb_image AS myimg,cat.`".$lang->get('name')."` AS sectionFROM `#__jshopping_products` AS prodLEFT JOIN `#__jshopping_products_to_categories` AS pr_cat ON pr_cat.product_id = prod.product_idLEFT JOIN `#__jshopping_categories` AS cat ON pr_cat.category_id = cat.category_id WHERE ($where) AND prod.product_publish = '1' AND cat.category_publish='1' GROUP BY prod.product_idORDER BY $order "; 

 

В этом файле больше никаких изменений не требуется.
2) Файл \components\com_search\views\search\tmpl\default_results.php
У меня данный файл перенесен в шаблон и имеет путь : \templates\имя_шаблона\html\com_search\search\default_resuts.php
В данном файле необходимо вставить вывод картинки, скорей всего перед текстом.
Но вот тут-то и наступает то само НО ,из-за которого не сразу получилось вывести картинку.
Дело в том, что RokAjaxSearch берет свои результаты с помощью js напрямую из блоков файла default_results.php кому будет интересно, может задать вопрос либо в комментариях (если я их наконец настрою) либо через форму контактов
<?php if ($result->myimg) : $myimg = "<img src=/components/com_jshopping/files/img_products/$result->myimg class='s-img'/>" ; 
elseif (!$result->myimg) : $myimg = "<img src='/components/com_jshopping/files/img_products/noimage.gif' class='s-img'/>" ;
endif; ?>
<dd class="result-text"><?php echo $myimg; echo $result->text; ?></dd>

 Первые несколько строк это проверка есть ли картинка для данного товара ,если нет, то вывести ту, что по умолчанию. Можно было бы данную проверку вставить прямо в блок result_text, но что-то оно не заработало.

На этом в принципе и все, стили и прочее каждый поправляет для себя сам. И привожу картинку с результатом:
 search_results.jpg

 






comments powered by Disqus