Категории товаров в RokQuickCart

Недавно поступила просьба добавить категории товаров в RokQuickCart. Компонент, довольно интересный и удобный, но настолько простой, что в нем не реализованы категории. Потому данный вопрос мне стал интересен.

В статье описано решение исключительно для Joomla 3+. Связано это с неактуальностью Joomla 2.5. Для написания статьи использовалась сборка: Joomla 3.9.16 + RokQuickCart 2.1.3

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

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

Как это работает?

1. База данных

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

Для этого переходим в базу данных сайта и открываем таблицу #__rokquickcart, переходим на вкладку «Структура» и добавляем новое поле (category).

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

Категории товаров в RokQuickCart - Создаем поле в базе данных
Категории товаров в RokQuickCart — Создаем поле в базе данных

2. Административная часть — Карточка товара

Теперь нам необходимо создать поле ввода категории (группы) в административной панели.

Открываем файл cartitem.xml в каталоге /administrator/components/com_rokquickcart/models/forms/ и находим в данном файле следующий код (14-21 строки):

Сразу после него добавляем наше новое поле:

Поле создали, теперь необходимо его отобразить. Открываем файл edit_30.php в каталоге /administrator/components/com_rokquickcart/views/cartitem/tmpl/ и находим в данном файле следующий код (62-65 строки):

Сразу после него добавляем наше поле:

Также, нам потребуется добавить языковые константы, откроем файл en-GB.com_rokquickcart.ini в каталоге /administrator/components/com_rokquickcart/language/en-GB/ (у меня английская версия) и добавьте строки в конце:

Готово. Если сейчас перейти в административную панель и открыть карточку товара, то можно увидеть наше поле, и оно даже работает — сохраняет наш идентификатор категории (группы).

Категории товаров в RokQuickCart - Параметры товара
Категории товаров в RokQuickCart — Параметры товара

Как писал ранее, мы будем просто делить товары на группы, поэтому просто решаем для себя какие идентификаторы к какой группе относятся, например «1» у нас будет «Кросовки», а «2» — «Футболки», поэтому всем кросовкам на сайте указываем Category = 1, а футболкам — Category = 2. Далее еще вернемся к этому.

3. Административная часть — Пункты меню

Итак, товары мы поделили на группы, идем дальше, теперь нам нужны соответствующие пункты меню под каждую группу.

Как мы знаем, RockQuickCart дает возможность создать пункт меню, в котором будут отображаться все товары. Нам, в свою очередь, необходимо внести изменения так, чтобы можно было создать несколько пунктов меню типа «RockQuickCart» и чтобы каждый из них отображал свою группу товаров.

Откроем файл default.xml в каталоге /components/com_rokquickcart/views/rokquickcart/tmpl/ и сразу после закрывающего тега дописываем вывод поля, должно получиться следующим образом:

Готово. Теперь мы можем смело создавать пункты меню типа «RokQuickCart» с делением на подгруппы. Вернемся к примеру выше. Создадим пункт меню «Кроссовки» и укажем в поле «Category» = 1. Создадим пункт меню «Футболки» с «Category» = 2. Это позволит определить для каждого из пунктов меню товары из каких групп отображать.

Категории товаров в RokQuickCart - Параметры меню
Категории товаров в RokQuickCart — Параметры меню

Если Вам хочется еще добавить пункт меню, в котором будут отображаться все товары без деления на группы, то в поле «Category» укажите ноль (0). В этом случае будут показаны все товары.

4. Лицевая часть — Список товаров

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

Открываем файл rokquickcart.php в каталоге /components/com_rokquickcart/models/ и находим в нем следующую строку (84 строка):

Сразу после нее пишем:

В этом же файле находим строку (примерно 103-105 строка):

И сразу после нее добавляем следующее условие:

Готово. Вернемся к нашему примеру. Если зайти в меню «Кроссовки» или «Футболки», то мы увидим товары, назначенные этим группам соответственно.

Комментарии

Здесь еще никто не оставлял комментарии.

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