В этом кейсе мы рассмотрим, как сделать, чтобы при клике пользователь переходил на страницу товара.
Virtuemart 2: как сделать переход на страницу товара при клике по изображению в категории (Кейс #1).

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

Вот что происходит по умолчанию:

virtuemart2 lightbox 

Для того чтобы при клике по изображению открывалась страница товара нужно сделать следующее:

  1. Скопировать файл components/com_virtuemart/views/category/tmpl/default.php в папку templates/[имя вашего шаблона]/html/com_virtuemart/category/ . Если каких-то каталогов не существует, нужно их создать.
  2. Открыть скопированный файл, и   ~ в 239 строке заменить:
echo $product->images[0]->displayMediaThumb ('class="browseProductImage" border="0" title="' . $product->product_name . '" ', TRUE, 'class="modal"');

на

echo JHTML::link ($product->link, $product->images[0]->displayMediaThumb ('class="browseProductImage" border="0" title="' . $product->product_name . '" ', FALSE));

Всё. Теперь при клике по изображению в категории, покупатель будет попадать на страницу товара.

Об авторе
Об авторе
Wedal (Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.

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

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Комментарии  

0 # Misha 19.11.2012 11:30
Цитата:
Если каких-то каталогов не существует, нужно их создать.
Извините за мой не совсем умный вопрос, что подразумевается под предложением, которое в цитате. Без каталога товаров естественно не будет работать виртуемарт.
Проясните, пожалуйста. Спасибо
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 19.11.2012 11:36
Misha, естественно, имеются ввиду каталоги в папке с шаблоном.
Ответить | Ответить с цитатой | Цитировать
0 # lakhtikoff 03.12.2012 22:27
Интересно, надо попробовать
Ответить | Ответить с цитатой | Цитировать
0 # Paty 12.01.2013 17:14
Скажите пожалуйста как сделать чтобы эта ссылка открывалась в новой окне? 'target' => '_blank'
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 14.01.2013 02:43
Paty,
class="browseProductImage" border="0" title="
замените на
class="browseProductImage" target="_blank" border="0" title="
Ответить | Ответить с цитатой | Цитировать
0 # Serj 01.03.2013 19:28
Не подскажете у меня ситуация в обратном, есть категории товара состоят из: кнопки в корзину, картинки, цены, и названия.
Мне нужно что бы при клике по фото, не был переход в карточку товара (в описание), а просто всплывало большое изображени
Ответить | Ответить с цитатой | Цитировать
-3 # Wedal 02.03.2013 08:26
Serj, ну так делайте в обратном порядке :-)
Ответить | Ответить с цитатой | Цитировать
0 # Serj 02.03.2013 10:50
Как убрать артикул из корзины подскажите плиз, не кто не знает ((
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 04.03.2013 02:07
Serj, многие знают, но это не относится к теме данного материала, а потому здесь вам никто не ответит.
Ответить | Ответить с цитатой | Цитировать
0 # Алекс 03.03.2013 09:55
Здравствуйте, и что есть действительно у кого это работает. Лично я все перепробовал, но не работает и ВСЁ!!!
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 04.03.2013 02:08
Алекс, вероятно, у вас используется один макет категории, а правки вы вносите в другой. Посмотрите внимательно на URL страницы. В ней можно увидеть название применяемого макета, при условии, что SEF выключен.
Ответить | Ответить с цитатой | Цитировать
0 # Frolyurik 23.03.2013 09:03
У меня все работает, но у меня в одном ряду было три товара, а теперь все товары в один столбец, несмотря на то что в настрйках виртуемарт все равно стоит 3 столбца
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 25.03.2013 05:15
Frolyurik, возможно где-то скобку ухватили.
Ответить | Ответить с цитатой | Цитировать
+1 # Виталий 06.04.2013 10:50
Ваш метод уже не работает. Обьясню почему. В новой версии .20 строка выглядит следующим образом
echo $product->images[0]->displayMediaThumb('class="browseProductImage"', false);
Ответить | Ответить с цитатой | Цитировать
0 # Ivan 01.08.2016 13:05
И что же делать в таком случае ?
Ответить | Ответить с цитатой | Цитировать
+1 # Виталий 06.04.2013 11:04
Извиняюсь , разобрался..скопировал сгоряча весь каталог views :) Спасибо за статью
Ответить | Ответить с цитатой | Цитировать
0 # max420 07.11.2013 16:35
Действительно, в Virtue mart .20 как уже написал Виталий, строка кода выглядит по другому. Предложенное вами решение не срабатывает(
Ответить | Ответить с цитатой | Цитировать
0 # Вадимка 13.07.2013 20:05
Вы забыли добавить - что если есть меню в стиле, допустим,

Часы
--Часы механические
--Часы электронные

то при клике по просто "часы" в меню, отображению категорий приходит конец. Там наоборот вместо перехода в конкретный подраздел, открывается картинка подраздела. и увы и ах - даже если мы вернем изначальное состояние файла обратно - не лечит (((
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 12.08.2013 08:43
Вадимка, меню категорий и макет категории не связаны. И уж тем более с изображением. Ищите ошибку у себя.
Ответить | Ответить с цитатой | Цитировать
0 # Tanya 19.08.2013 12:54
Здравствуйте. А подскажите где править и что чтобы в списке категорий клацнув на само изображение переходить на список товаров, а не видеть новое окно с увеличенным изображением категории товара. С товаром разобралась, спасибо, все работаеn!
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 20.08.2013 03:05
Tanya, для изображений категории аналогично, но нужно найти место, где они выводятся и в каком макете. Скорее всего в этом же, но выше. Или посмотрите в папке components/com_virtuemart/views/category/tmpl
Ответить | Ответить с цитатой | Цитировать
0 # Tanya 20.08.2013 12:20
Здравствуйте
Я в программировании ничего не понимаю к сожалению. Посмотрела в указаной папке - там заменила как указано в статье, но ничего не изменилось. Искала похожие строчки в том же файле (дефаулт) тоже не нашла. Подскажите пожалуйста решение. Заранее спасибо
Ответить | Ответить с цитатой | Цитировать
0 # max420 07.11.2013 16:36
Действительно, в Virtue mart .20 как уже написал Виталий, строка кода выглядит по другому. Предложенное вами решение не срабатывает(
Ответить | Ответить с цитатой | Цитировать
0 # 4356546 24.12.2013 18:13
Спасибо! Все получилось с первого раза!
Ответить | Ответить с цитатой | Цитировать
0 # Димон_З 24.06.2014 12:58
С категориями сработало, но у меня на главной есть модуль "Последние товары", так вот при клике на товар все равно открывается увеличенная картинка товара. В какой еще папке (html/com_virtuemart/... ) нужно внести аналогичную правку?! (папки: askquestion, cart, categories, category, manufacturer, orders, pluginresponse, productdetails, recommend, state, user, virtuemart) Спасибо.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 25.06.2014 03:10
Димон, если у вас модуль, то правки нужно вносить в модуль, а не в макеты компонента. Переопределите макет модуля в папку с шаблоном:
html/ИМЯ_ПАПКИ_МОДУЛЯ/МАКЕТ_МОДУЛЯ.php
и вносите в нем аналогичные правки.
Ответить | Ответить с цитатой | Цитировать