Skip to main content

Изменено: 08 ноября 2023

Избранные товары. Меняем оформление

1. Общая информация

Избранное RadicalMart — пакет расширений, обеспечивающий функционал избранных товаров.

В пакет входят:

  • Компонент. Отображение страницы с избранными товарами.
  • Плагин. Вывод кнопки «Добавить/удалить в избранное» в списке товаров и на странице товара
  • Модуль. Отображение иконки.

2. Переопределение макетов

Переопределения макетов:

Кнопки на странице категории и на странице товара:

/templates/{ВАШ_ШАБЛОН}/html/layouts/components/radicalmart_favorites/buttons/toggle/add.php
/templates/{ВАШ_ШАБЛОН}/html/layouts/components/radicalmart_favorites/buttons/toggle/dropdown.php
/templates/{ВАШ_ШАБЛОН}/html/layouts/components/radicalmart_favorites/buttons/toggle/remove.php

Мета-товары:

/templates/{ВАШ_ШАБЛОН}/html/layouts/components/radicalmart_favorites/metas/variability/item/grid.php

Вид компонента: (список избранных товаров)

/templates/{ВАШ_ШАБЛОН}/html/com_radicalmart_favorites/favorites/default.php
/templates/{ВАШ_ШАБЛОН}/html/layouts/components/radicalmart_favorites/products/item/grid.php

3. Разный вид кнопок на страницах

Задача: в списке товаров (страница категории) нужно вывести маленькую кнопку с иконкой, а на странице товара вывести большую кнопку с надписью «В избранное».

В данном пакете расширений применяется привязка к параметру $context.
(читайте: Что делает параметр $context плагина контента? — на англ.)

Как видим, в списке товаров у нас выводится маленькая иконка, а в карточке товара кнопка большая и с надписью.
Нам нужно привязаться к параметру $context и сделать проверку — если мы на странице товара, то выводим большую кнопку, в противном случае выводится маленькая кнопка.

Вот пример кода на примере файла add.php:


<?php
if ($context === 'com_radicalmart.product')
{

?>
<button type="button" radicalmart-favorite="button" data-state="0"
data-product="<?php echo $product_id; ?>"
onclick="window.RadicalMartFavorites().toggle(event);"
class="uk-button uk-button-default uk-button-large uk-margin-bottom"
uk-tooltip="<?php echo Text::_('COM_RADICALMART_FAVORITES_ADDTO_FAVORITES'); ?>"
title="<?php echo Text::_('COM_RADICALMART_FAVORITES_ADDTO_FAVORITES'); ?>">
    <span class="icon-heart uk-margin-small-right"></span>

 <?php echo Text::_('COM_RADICALMART_FAVORITES_ADDTO_FAVORITES'); ?>
</button>
<?php
    }
    else
    {
?>
<button type="button" radicalmart-favorite="button" data-state="0"
data-product="<?php echo $product_id; ?>"
onclick="window.RadicalMartFavorites().toggle(event);"
class="uk-button uk-button-primary uk-button-small"
uk-tooltip="<?php echo Text::_('COM_RADICALMART_FAVORITES_ADDTO_FAVORITES'); ?>"
title="<?php echo Text::_('COM_RADICALMART_FAVORITES_ADDTO_FAVORITES'); ?>">
    <span class="icon-heart"></span>

</button>
<?php } ?>
Файл dropdown.php оформите по такому же примеру.
Добавьте переопределение констант:

COM_RADICALMART_FAVORITES_ADDTO_FAVORITES = Добавить в избранное
COM_RADICALMART_FAVORITES_IN_FAVORITES = В избранном

В итоге мы получаем вот такой результат:
Иконки в списке товаров
Иконки в списке товаров
Кнопка действия Добавить в избранное
Кнопка действия «Добавить в избранное» / «В избранном»