Форум русской поддержки Joomla!® CMS
08.12.2016, 08:05:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3  Все   Вниз
  Добавить закладку  |  Печать  
Автор

[Решено] Картинки товаров в результате поиска в JoomShopping + RokAjaxSearch

 (Прочитано 14100 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« : 17.10.2012, 13:41:55 »

Здравствуйте, поискал по форуму, не нашел решения Sad
Поэтому Решение:
Речь пойдет о связке модуля поиска RokAjaxSearch и компонента магазина JoomShopping 3.11.4 + Joomla 2.5 + изображения товаров в результатах поиска.
Данный модуль может выводить результаты поиска с помощью AJAX технологии сразу под строкой поиска.

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 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
";

В этом файле больше никаких изменений не требуется.

2) Файл \components\com_search\views\search\tmpl\default_results.php
У меня данный файл перенесен в шаблон и имеет путь : \templates\имя_шаблона\html\com_search\search\default_resuts.php
В данном файле необходимо вставить вывод картинки, скорей всего перед текстом.

Строка 31:
Код:
<?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, но что-то оно не заработало.
на этом в принципе и все, стили и прочее каждый поправляет для себя сам. И привожу картинку с результатом:

Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #1 : 17.10.2012, 14:43:59 »

Кому интересно почему, может и расскажу, как-нибудь...

очень интересно. расскажите пожалуйста. а то у меня работает, а не пойму почему  Smiley
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #2 : 17.10.2012, 14:51:15 »

очень интересно. расскажите пожалуйста. а то у меня работает, а не пойму почему  Smiley

У меня это не заработало без внесения изменений в  файлик rokajaxsearch.js так как данные в этом файлике брались из блоков в default_results
Записан
NepaGoda
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 57


« Ответ #3 : 18.10.2012, 13:29:23 »

Обалдеть..
А можно ли еще как нибудь задать размер фото именно в выдаче результата поиска..
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #4 : 18.10.2012, 16:38:21 »

Обалдеть..
А можно ли еще как нибудь задать размер фото именно в выдаче результата поиска..

Можно, на примере был задан класс самому фото class='s-img' и уже прописываете в стилях:
Код:
.s-img{
width: 150px;
height: 100px;
}
Записан
antoxa7
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 31


« Ответ #5 : 21.10.2012, 17:43:12 »

Спасибо, работает.
Вопрос: если отключаю показ описания (Show Description) в результатах поиска, изображения тоже пропадают. Как быть?
И еще как добавить расширенный поиск по характеристикам и отображение цены в результатах поиска?

« Последнее редактирование: 21.10.2012, 18:09:39 от antoxa7 » Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #6 : 23.10.2012, 00:33:58 »

Спасибо, работает.
Вопрос: если отключаю показ описания (Show Description) в результатах поиска, изображения тоже пропадают. Как быть?
И еще как добавить расширенный поиск по характеристикам и отображение цены в результатах поиска?

Можно вынести картинки из блока текста, если это не сработает, то в файле rockajaxsearch.js надо будет дописать вывод данных из блока с картинкой, если первый вариант не сработает. напишите, я  попробую как-то объяснить что куда писать, либо файлик прикреплю с изменениями.

А насчет цены, там по такому же принципу, в запрос надо добавить и поле цены (product_price) и так же вывести в результатах поиска, делается всё по аналогии с изображениями, с атрибутами и характеристиками помочь не смогу.
Записан
NepaGoda
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 57


« Ответ #7 : 23.10.2012, 01:22:20 »

Как сделать чтобы текст обтекал картинку.. как у вас сбоку..
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #8 : 23.10.2012, 23:28:40 »

Как сделать чтобы текст обтекал картинку.. как у вас сбоку..

Стилями, у меня это как-то так сделано :
Код:
.s-img {
float: left;
margin: 2px 10px 10px 0;
}
Записан
3axap-superstar
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 39



« Ответ #9 : 24.10.2012, 18:38:39 »

Странно, а я установил RokAjaxSearch и в результатах поиска отсутствуют товары из ЖШ, чаднт?
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #10 : 24.10.2012, 18:39:44 »

плагин поиска для JoomShopping поставили и опубликовали?
Записан
3axap-superstar
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 39



« Ответ #11 : 24.10.2012, 18:58:42 »

Спасибо)
Записан
3axap-superstar
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 39



« Ответ #12 : 24.10.2012, 19:45:28 »

Отлично, всё работает!
А можете подсказать, как и где задать класс самому фото class='s-img' ??
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #13 : 24.10.2012, 19:46:47 »

Отлично, всё работает!
А можете подсказать, как и где задать класс самому фото class='s-img' ??

Полагаю что в templates/имя_шаблона/css/template.css
Записан
3axap-superstar
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 39



« Ответ #14 : 25.10.2012, 00:29:23 »

Вот нашел минус: при попытке найти что-то в материалах вместе с найденным вылазит NO IMAGE
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #15 : 25.10.2012, 00:49:43 »

Вот нашел минус: при попытке найти что-то в материалах вместе с найденным вылазит NO IMAGE

Действительно, мне важен только поиск по товарам. вот и не обратил внимания, можете вот так:

Код:
<?php if ($result->myimg) :
$myimg = "<img src=/components/com_jshopping/files/img_products/$result->myimg class='s-img'/>" ;
elseif (!$result->myimg) :
$myimg = "" ;
 endif; ?>

Но тогда если нет картинки и в товаре, то ничего не выведется.
Записан
3axap-superstar
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 39



« Ответ #16 : 31.10.2012, 12:49:59 »

Не могу понять, откуда берётся <br> между названием товара и картинкой?  Cry
А так же после дескрипшн и перед "Читать далее"
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #17 : 31.10.2012, 12:58:05 »

Не могу понять, откуда берётся <br> между названием товара и картинкой?  Cry
А так же после description и перед "Читать далее"
В файле \modules\mod_rokajaxsearch\js\rokajaxsearch.js ищите br, правда если просто удалить, то поиск прекращает работать, попробуйте заменить на другой элемент.
Записан
3axap-superstar
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 39



« Ответ #18 : 31.10.2012, 13:12:09 »

Спасибо, вставил р и получилось компактнее)))
Записан
denjer
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 38


« Ответ #19 : 02.11.2012, 12:08:43 »

Можно вынести картинки из блока текста, если это не сработает, то в файле rockajaxsearch.js надо будет дописать вывод данных из блока с картинкой, если первый вариант не сработает. напишите, я  попробую как-то объяснить что куда писать, либо файлик прикреплю с изменениями.

А насчет цены, там по такому же принципу, в запрос надо добавить и поле цены (product_price) и так же вывести в результатах поиска, делается всё по аналогии с изображениями, с атрибутами и характеристиками помочь не смогу.

Уважаемый, MrJenika, так как все таки вывести картинку без описания, если убирать вывод описания - картинка тоже пропадает. Первый вариант не помог, что нужно прописать в файлике rockajaxsearch.js?
И насчет вывода цены тоже не помешало бы инструкция. Заранее огромное спасибо!
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #20 : 02.11.2012, 12:49:11 »

Уважаемый, MrJenika, так как все таки вывести картинку без описания, если убирать вывод описания - картинка тоже пропадает. Первый вариант не помог, что нужно прописать в файлике rockajaxsearch.js?
И насчет вывода цены тоже не помешало бы инструкция. Заранее огромное спасибо!


Ну если вам надо ТОЛЬКО картинки, совсем без описания (даже через поиск с помощью стандартной формы), то можно просто в файлике  \components\com_search\views\search\tmpl\default_results.php убрать вывод $result->text
Если же убрать описание только в rockajaxsearch, то это малость сложнее будет. Как будет время, погляжу что там и как, но пока могу посоветовать через стили спрятать текст, там вроде как-то так:

Код:
.roksearch_result_wrapper5 span{
text-indent: -9999px;
}

Если  исчезает и название товара, надо будет добавить вроде такое:

Код:
.roksearch_result_wrapper5 a{
text-indent: 0;
}

С ценой можно сделать по тому же принципу что и с картинками.
Записан
Emotion
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 101


« Ответ #21 : 14.11.2012, 21:46:03 »

Здравствуйте! А для версии JoomShopping 2.7 не могли бы подсказать что именно прописать в файле шаблона вывода картинки.
Запрос к базе подправил так как есть а вот где именно прописать вывод картинки? прописал в  com_search но что то оно не подхватывает.
Помнится что шла речь о каких то правках в файле rokajaxsearch.js ?
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #22 : 14.11.2012, 23:09:57 »

в файлик rokajaxsearch.js лучше не лезть, там сам черт ногу сломит. Посмотрите из какого id или класса берется текст в результатах AJAX поиска и в этот же блок вставить вывод картинки. сперва без классов или сторонних блоков и проверить выводится ли код картинки в простом поиске и тогда уже можно искать что-то в AJAX поиске.
Выше писали, что правка не обязательна, всё и так должно работать.
Записан
Feroxprox
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 28


« Ответ #23 : 14.11.2012, 23:28:55 »

У меня это не заработало без внесения изменений в  файлик rokajaxsearch.js так как данные в этом файлике брались из блоков в default_results
MrJenika, а что конкретно было внесено в файлик rokajaxsearch.js, потому как у меня также не отображаются картинки, хотя сделал все четко как написано в теме.
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #24 : 15.11.2012, 00:15:33 »

Честно говоря, уже   точно и не помню, попытаюсь восстановить события по закоментированному коду.
Итак файлик rokajaxsearch.js
Он ужат, пришлось поиграться чтобы понять что где, поэтому точно строку сказать не могу.
Ниже привожу часть кода, то что закоментированно, это уже рабочие изменения, то что до комментариев и после. это ориентир чтобы найти строку
Код:
var J=new Element("span").set("html",P).inject(K,"after"),Q;

/******* MY ***********//*
var DD=M.getNext(".s-img");
TT=DD.innerHTML;
 var jj=new Element("span",{"class":"s-img"}).set("html",TT).inject(K,"after"),Q;
/**********************/

if(this.options.showcategory){var L=M.getNext(".result-category")||H[1];

Поясню что это означает.
var DD=M.getNext(".s-img"); - это получение данных из блока s-img
s-img - блок в файлике \components\com_search\views\search\tmpl\default_results.php в котором я вывел картинку,
как то примерно так, за точность не ручаюсь :

Код:
<dic class="s-img"> <img src="/components/com_jshopping/files/img_products/$result->myimg"></div>

var jj=new Element("span",{"class":"s-img"}).set("html",TT).inject(K,"after"),Q; - вставляет новый span с тем, что вытащили из блока s-img

Вроде все, остальное описано в первом посте.
Не забудьте расскоментировать код.
Эти все действия производились для Joomla 2.5
Записан
Feroxprox
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 28


« Ответ #25 : 15.11.2012, 12:13:16 »

MrJenika, сделал все как написано в посте, картинки так не появились. Но в консоле фаербага вылазит следующая ошибка:
NetworkError: 404 Not Found - ..../components/com_jshopping/files/img_products/.... . Причем путь к картинке правильный и сами картинки есть, однако он пишет что их нет.  Cry
Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #26 : 15.11.2012, 12:14:50 »

MrJenika, сделал все как написано в посте, картинки так не появились. Но в консоле фаербага вылазит следующая ошибка:
NetworkError: 404 Not Found - ..../components/com_jshopping/files/img_products/.... . Причем путь к картинке правильный и сами картинки есть, однако он пишет что их нет.  Cry

Возможно стоит в начале пути вставить домен сайта, хотя тоже не рекомендую, ну или пару точек перед слешем ../
Записан
Feroxprox
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 28


« Ответ #27 : 15.11.2012, 21:50:13 »

Вообщем, действительно была проблема с неправильным src картинки, проблемка решилась добавлением в начале путь  $this->baseurl.  MrJenika, спасибо  drink.
Записан
NepaGoda
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 57


« Ответ #28 : 17.11.2012, 22:15:45 »

Может кто напишет полный код страницы.. где отображаются все результаты поиска..
Настраиваю страницу как нужно.. и поиск перестает работать..

Ситуация сейчас такая:


Записан
MrJenika
Осваиваюсь на форуме
***

Репутация: +12/-0
Offline Offline

Сообщений: 49


« Ответ #29 : 17.11.2012, 22:42:36 »

ошибка в вёрстке, примените свойство clear:both для блока в котором содержится заголовок, картинка и текст результата.
Записан
Страниц: [1] 2 3  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet