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

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

Смена фото при наведении в списке товаров категории

 (Прочитано 694 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Taatshi
Support Team
*****

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

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« : 24.04.2015, 22:43:25 »

Задача:
При наведении на фото менять его на второе по порядку в карточке товара.

Реализация:

Код
<?php
$jshopConfig = JSFactory::getConfig();
$db = JFactory::getDBO();
$Query = "SELECT image_name FROM #__jshopping_products_images WHERE product_id = {$product->product_id} LIMIT 2";
$db->setQuery($Query);
$prodimg = $db->loadObjectList();
if (count($prodimg)){
foreach($prodimg as $primg) {
print "<a title='{$product->name}' class='screenshot lightbox' href='{$product->product_link}'>";
print "<img src='{$jshopConfig->image_product_live_path}/thumb_{$primg->image_name}'/></a>";
 
}
}
else {
print "<a href='{$product->product_link}'><img src='{$jshopConfig->image_product_live_path}/noimage.gif'/></a>";
}
?>
Код
<script>
jQuery(document).ready(function(){
  jQuery("div.three_img").each(function(index){jQuery(this).find("a.screenshot img:first").css("display","block");});
  jQuery("div.three_img").hover(
  function()
  {
     jQuery(this).find("a.screenshot img:last").css("display","block");
     jQuery(this).find("a.screenshot img:first").css("display","none");
  },
  function()
  {
  jQuery(this).find("a.screenshot img:first").css("display","block");
     jQuery(this).find("a.screenshot img:last").css("display","none");
  });
});
</script>

Проблема:
Оно меня с ума сводит. Я не понимаю каким образом из трех-четырех фоток выбираются изображения. То нормально, по порядку, а то в разнобой. Особенно если надумать поменять фотографии в карточке товара.
Записан
robert
Профи
********

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

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


« Ответ #1 : 24.04.2015, 23:27:12 »

http://jsfiddle.net/n_robert/07y4rt7t/
Записан
dmitry_stas
Профи
********

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

Сообщений: 7784



« Ответ #2 : 24.04.2015, 23:56:53 »

Задача:
При наведении на фото менять его на второе по порядку в карточке товара.

Проблема:
Оно меня с ума сводит.

 Grin Grin Grin


так а проблема в javascript? или все таки в MySQL?
« Последнее редактирование: 25.04.2015, 00:13:47 от dmitry_stas » Записан
Taatshi
Support Team
*****

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

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #3 : 25.04.2015, 00:14:41 »

Проблема не в скрипте, проблема в выборке. В самом списке два рисунка получается, и отображаются они как и положено - сначала первый в очереди, при наведении - второй. Но вот в саму выборку попадают они по совершенно непонятному принципу.

Кстати, аналогичная проблема была и в одном модуле от смартаддонз для показа товаров - там рисунок брался не первый по порядку, а почему-то последний. Но не всегда.

Там я убрала их функцию вывода и заменила на что-то свое. Вот только не помню на что
Записан
dmitry_stas
Профи
********

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

Сообщений: 7784



« Ответ #4 : 25.04.2015, 00:23:07 »

т.е. порядок выборки меняется каждый раз? а если добавить в запрос
Код
ORDER BY ordering ASC
?
Записан
Taatshi
Support Team
*****

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

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #5 : 25.04.2015, 00:39:52 »

Если пишу
Код
$Query = "SELECT image_name FROM #__jshopping_products_images WHERE product_id = {$product->product_id} LIMIT 2 ORDER BY ordering ASC";

получаю 1064-ю
Записан
dmitry_stas
Профи
********

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

Сообщений: 7784



« Ответ #6 : 25.04.2015, 00:43:54 »

Код
ORDER BY ordering ASC LIMIT 2
Записан
Taatshi
Support Team
*****

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

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #7 : 25.04.2015, 09:07:29 »

Святой! Святой! /*падает на колени и прикидывает, какого бестолкового новичка можно по-быстрому принести в жертву*/

Работает  Grin


Получается, порядок имеет значение... /*Ушла читать по БД MySQL*/
« Последнее редактирование: 25.04.2015, 09:11:51 от Taatshi » Записан
Taatshi
Support Team
*****

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

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #8 : 25.04.2015, 10:06:59 »

А вот ходят слухи... Что в Joomla, начиная с 2.5 вроде, существует механизм, с помощью которого можно составлять запросы в произвольном порядке. Примерно так
Код
$db = JFactory::getDBO();		
$Query = $db->getQuery(true);
$Query->select('image_name');
$Query->from('#__jshopping_products_images');
$Query->where('product_id = '. $pid);
$Query->order('ASC');
$Query->limit('2');
$db->setQuery($Query);

но что-то он у меня не запустился...
Записан
dmitry_stas
Профи
********

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

Сообщений: 7784



« Ответ #9 : 25.04.2015, 10:57:44 »

Святой! Святой! /*падает на колени и прикидывает, какого бестолкового новичка можно по-быстрому принести в жертву*/

не надо  Grin и так обижаются Azn

но что-то он у меня не запустился...

$Query->order('ordering ASC');
$Query->limit('2');
$db->setQuery($Query, $offset = 0, $limit = 2);
Записан
Taatshi
Support Team
*****

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

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #10 : 25.04.2015, 11:17:03 »

Дык... некому ж будет обижаться  Wink

Код
$jshopConfig = JSFactory::getConfig();
$db = JFactory::getDBO();
 
$pid = $product->product_id;
$Query = $db->getQuery(true);
$Query->select('image_name');
$Query->from('#__jshopping_products_images');
$Query->where('product_id = '.$pid);
$Query->order('ASC');
$db->setQuery($Query, $offset = 0, $limit = 2);
$prodimg = $db->loadObjectList();

1064  Sad
Записан
Taatshi
Support Team
*****

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

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #11 : 25.04.2015, 11:20:37 »

Все, все, понятно...

пропустила

Код
$Query->order('ordering ASC');

УРА)
Записан
samogon13
Захожу иногда
**

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

Сообщений: 24


« Ответ #12 : 24.06.2015, 00:29:05 »

 Cheesyв какой файлик добавлять код
« Последнее редактирование: 24.06.2015, 01:53:03 от samogon13 » Записан
Taatshi
Support Team
*****

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

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #13 : 24.06.2015, 09:43:56 »

/templates/вашшаблон/html/com_jshopping/list_products/product.php
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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