Virtuemart: выводим описание производителя на странице товара
Сегодня столкнемся с нетривиальной задачей. Необходимо получить доступ к описанию производителя со страницы вывода товара Virtuemart (flypage).
Готовы приступить к решению? Я – да
Как обычно, определяем файлы Virtuemart для правки:
administrator/components/com_virtuemart/classes/ps_product.php – класс продукта Virtuemart
administrator/components/com_virtuemart/html/shop.product_details.php – функционал страницы товара Virtuemart
components/com_virtuemart/themes/default/templates/product_details/flypage.tpl.php – шаблон страницы товара Virtuemart
Задача разделяется на три этапа:
- Сделать запрос к БД на получение данных об описании производителя в Virtuemart
- Зарегистрировать переменную $manufacturer_desc
- Вывести переменную $manufacturer_desc на странице описания товара Virtuemart
Начнем, пожалуй.
Этап 1. Добавляем функцию в класс товара Virtuemart
Ищем описание функции
1 | function get_mf_name($product_id) { |
и после закрывающей скобки добавляем новую функцию, которая будет отвечать за получение описания производителя Virtuemart
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function get_mf_desc($product_id) { $db = new ps_DB; $q = "SELECT mf_desc,#__{vm}_manufacturer.manufacturer_id FROM #__{vm}_product_mf_xref,#__{vm}_manufacturer "; $q .= "WHERE product_id='$product_id' "; $q .= "AND #__{vm}_manufacturer.manufacturer_id=#__{vm}_product_mf_xref.manufacturer_id"; $db->query($q); $db->next_record(); if ($db->f("mf_desc")) { return $db->f("mf_desc"); } else { return ""; } } |
Этап 2. Регистрируем переменную на странице описания товара Virtuemart
Ищем код (строка 422)
1 | $tpl->set( "manufacturer_link", $manufacturer_link ); |
Добавляем ниже
1 | $tpl->set( "manufacturer_desc", $manufacturer_desc ); |
Ищем код (строка 257)
1 | $manufacturer_name = $ps_product->get_mf_name($product_id); |
Добавляем ниже
1 | $manufacturer_desc = $ps_product->get_mf_desc($product_id); |
Переменная зарегистрирована и доступна к выводу на странице описания товара Virtuemart
Этап 3. Вывод переменной на странице описания товара Virtuemart
В нужном месте страницы подробного описания товара Virtuemart вставляем код
1 | <?php echo $manufacturer_desc; ?> |
.
Всё. Задача решена!
- Смешные статусы для контакта: выбери свой неповторимый стиль!
- Нашел отличный сайт, где можно быстро и точно провести расчет осаго альфа-ромео. Думаю, вам этот сайт должен быть полезен!
- Если вы затеяли капитальный ремонт квартиры, то обязательно пройдите согласование проекта перепланировки, а то хуже будет!
10 коммент. к записи “Virtuemart: выводим описание производителя на странице товара”
Прокомментировать
Рубрики
- javascript
- SEO
- UIPI
- Боремся со СПАМом
- Верстка
- Движки форумов
- Железо
- Забавно
- Интернет в лицах
- Интернет-магазины
- Новости
- Обзоры сайтов
- Обо всем
- Полезные скрипты
- Работа с CMS
- Создание сайтов
- Уроки рекламы
- Шаблоны

Здравствуйте, не смогли бы объяснить подробно как в категории товаров вывести product_id. Почемуто в карточке товара этот параметр выводится корректно, а вот в категории выводится числовое значение, причем одно и тоже для всех товаров.
Спасибо.
product_id – и есть число.
Читаем этот пост: и делаем аналогично
спасибо. разобрался.
спасибо огромное
Virtuemart не всегда использую, поэтому не сразу все нахочу что нужно
Здравствуйте, не смогли бы объяснить подробно как вывести на страницу описания товара информацию о продавце, именно не ссылку а данные о продавце – Имя, контактная инфа и т.д.
спасибо
ссылку – имел в виду -
У меня не сработало
джумла 1.5.9, виртуемарт 1.1.6. В причинах разобраться пока не получается – такое ощущение, что не происходит запроса к переменной и в итоге $manufacturer_desc всегда пустая… Может кто встречался?
Спасибо большое, ещё бы на старнице каткгории это вывести
Спасибо, помогите пожалуйста вывести наименование производитеся на страницу категорий товара
А как добавить картинку к производителю?