Virtuemart 2 - вывести вторую картинку в списке товаров

В этом материале рассмотрим способ смены первой картинки второй, при наведении на первую в списке товаров. Данный эффект используется во многих интернет-магазинах и бывает очень полезен для пользователя, так как дает больше информации о товаре.

Мой код будет находить в каждом товаре одну последнюю фотографию товара на замену первой, при наведении на нее. Если в товаре будет всего одна картинка, то при наведении - заменит ее саму на себя.

Чтобы реализовать данную задачу в Virtuemart 2 (возможно этот способ работает и в Virtuemart 3, но я не проверял) откройте файл /components/com_virtuemart/views/category/tmpl/default.php.

Найдите строки связанные с:

<?php if (!empty($product->images[0]) )
$image = $product->images[0]->displayMediaThumb('class="ProductImage roundcorners" border="0"',false);
else $image = ''; ?>
<?php echo JHTML::_('link', JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$product->virtuemart_product_id.'&virtuemart_category_id='.$product->virtuemart_category_id), $image,array('title' => $product->product_name) );
?>

У вас код может быть другой, но должна быть переменная $image с $product->images[0]. После этого кода добавьте следующий:

<?php
//Вторая картинка в списке товаров - ищет одну последнюю картинку товара
$otherimgproduct1 = mysql_query("SELECT * FROM ".$database_dbprefix."virtuemart_product_medias WHERE virtuemart_product_id = '".$product->virtuemart_product_id."' order by ordering desc limit 1");
while ($rowotherimgproduct1=mysql_fetch_array($otherimgproduct1)) {
$otherimgproduct2 = mysql_query("SELECT * FROM ".$database_dbprefix."virtuemart_medias WHERE virtuemart_media_id = '".$rowotherimgproduct1['virtuemart_media_id']."'");
while ($rowotherimgproduct2=mysql_fetch_array($otherimgproduct2)) {
$image2last = '<img src="/'.$rowotherimgproduct2['file_url_thumb'].'" class="spfaiter9" border="0">';
echo JHTML::_('link', JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$product->virtuemart_product_id.'&virtuemart_category_id='.$product->virtuemart_category_id), $image2last,array('title' => $product->product_name) );
} }
?>

В самое начало файла поставьте этот код:

<?php
$jconfig2 = new JConfig();
$database_host = $jconfig2->host;
$database_user = $jconfig2->user;
$database_password = $jconfig2->password;
$database_name = $jconfig2->db;
$database_dbprefix = $jconfig2->dbprefix; //префик таблицы
$linkss = mysql_connect($database_host, $database_user, $database_password);
mysql_select_db($database_name);
?>

Если говорить кратко, то код ищет по id товара все media ресурсы из таблицы virtuemart_product_medias и в virtuemart_medias находит ссылки на сами картинки. Далее запоминает картинку и выводит ее в списке товара.

Думаю, сделать замену display:none/block при наведении на первую картинку вы сможете сами. Если у вас не работает код или возникли трудности, то пишите на почту, могу помочь с установкой.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Введите капчу: