Компонент "Избранное" для Joomla 2.5.x и Virtuemart 2.x
Начнем с того, что я начал как-то поиски модуля, плагина или компонента, который сможет реализовать хотя бы элементарный функционал "Избранного" для посетителей на сайте под управлением Virtuemart 2.x. К моему сожалению я нашел только платные решения, которых не было на варезниках или просто в открытом доступе. Вот тогда-то я и решился на то, что бы написать самому такой функционал, а конкретнее:
а) Добавление в некое пространство (избранное) товара без перезагрузки страницы. Другими словами просто отметить товар, как избранное и все.
б) Посмотреть товары, которые уже есть в "Избранном"
в) Возможность добавлять в "Избранное" для всех пользователей, а не только для зарегистрированных
Все это я решил реализовать через компонент для Joomla 2.5.x. Это мой первый компонент, поэтому прошу в меня не бросать камни по внутреннему исполнению компонента! =) Пишите в комментариях Ваши мнения по этому компоненту.
Пример использования компонента Вы можете посмотреть на моем демонстрационном сайте.
Ссылка на актуальную версию компонента (vm_favorite v.1.1.2)
Скачать компонент "Избранное" для Virtuemart 2.x.
Инструкция по настройке компонента:
1) Для корректной работы компонента понадобится добавить кнопку для добавления товара в избранное:
а) Для отображения кнопки в карточке товара открываем файл
/templates/Ваш_шаблон/html/com_virtuemart/productdetails/default.php
если нет такого файла, то открываем другой файл
/components/com_virtuemart/views/productdetails/tmpl/default.php
и добавляем в самом начале файла следующие строчки:
echo '<script type="text/javascript" src="'.$_SERVER['HOST'].'/components/com_vm_favorite/script/jquery-2.0.2.min.js"></script>'; //Закомментируйте эту строчку, если эта библиотека конфликтует с другим jQuery echo '<script type="text/javascript" src="'.$_SERVER['HOST'].'/components/com_vm_favorite/script/jquery.cookie.js"></script>'; echo '<link rel="stylesheet" href="'.$_SERVER['HOST'].'/components/com_vm_favorite/css/heart.css" type="text/css">';
Таким образом мы подгрузили необходимые скрипты для кнопки избранного, но что бы отображалась сама кнопка надо добавить код ниже туда, где Вы хотели бы видеть кнопку:
<!--Начало кнопки избранного--> <?php $productId = $this->product->virtuemart_product_id; // при необходимости поменять на переменную id продукта include ($_SERVER['DOCUMENT_ROOT'].'/components/com_vm_favorite/script/heart.php'); ?> <!--Конец кнопки избранного-->
б) Для отображения кнопки в просмотре категории открываем файл
/templates/Ваш_шаблон/html/com_virtuemart/category/default.php
если нет такого файла, то открываем другой файл
/components/com_virtuemart/views/category/tmpl/default.php
и добавляем в самом начале файла следующие строчки:
echo '<script type="text/javascript" src="'.$_SERVER['HOST'].'/components/com_vm_favorite/script/jquery-2.0.2.min.js"></script>'; //Закомментируйте эту строчку, если эта библиотека конфликтует с другим jQuery echo '<script type="text/javascript" src="'.$_SERVER['HOST'].'/components/com_vm_favorite/script/jquery.cookie.js"></script>'; echo '<link rel="stylesheet" href="'.$_SERVER['HOST'].'/components/com_vm_favorite/css/heart.css" type="text/css">';
Таким образом мы подгрузили необходимые скрипты для кнопки избранного, но что бы отображалась сама кнопка надо добавить код ниже туда, где Вы хотели бы видеть кнопку:
ВАЖНО! Код ниже надо добавлять ниже этой строчки:
foreach ($this->products as $product) {
и до закрытия этого процесса (примерно такая строчка):
} // end of foreach ( $this->products as $product )
т.е. код должен быть в промежутке между этими двумя строчками!
Сам код:
<!--Начало кнопки избранного--> <?php $productId = $product->virtuemart_product_id; // при необходимости поменять на переменную id продукта include ($_SERVER['DOCUMENT_ROOT'].'/components/com_vm_favorite/script/heart.php'); ?> <!--Конец кнопки избранного-->