Шаблонизация Сontent Cart
Переопределение шаблонов Content Cart 4.0
Content Cart 4.0 поддерживает полное переопределение шаблонов через стандартную систему шаблонизации Joomla
Важные изменения в версии 4.0
В версии 4.0 структура шаблонов была полностью переработана:
- Плагин теперь использует Joomla Layouts вместо обычных шаблонов
- Layouts обеспечивают лучшую переносимость и повторное использование кода
- Улучшена безопасность шаблонов (удалена функция extract())
- Поддержка современной архитектуры Joomla 5/6
Переопределение шаблона модуля
Модуль «Content Cart»
Стандартный способ (через админку Joomla)
- Перейдите: Система → Шаблоны сайта → Детали и файлы
- Выберите ваш активный шаблон
- Нажмите «Создать переопределения»
- Найдите и выберите mod_contentcart
- Система автоматически создаст переопределение
Ручной способ
Скопируйте файл шаблона модуля из:
В папку вашего шаблона:
Что изменилось в 4.0
- Динамическое обновление через JavaScript
- Отображение списка товаров
- Поддержка localStorage
- AJAX-взаимодействие
Совет: Не удаляйте data-атрибуты и классы для JS
Переопределение шаблонов плагина (Layouts)
Новая структура в версии 4.0 - Joomla Layouts
Плагин использует систему Joomla Layouts для всех шаблонов. Это позволяет:
- Переопределять шаблоны через стандартную систему Joomla
- Использовать переопределения в нескольких шаблонах одновременно
- Получать обновления безопасности без потери кастомизации
Пошаговая инструкция по переопределению
Шаг 1 Создание структуры папок
Создайте папку для переопределений layouts в вашем шаблоне:
Обратите внимание: путь включает layouts, а не просто html
Шаг 2 Копирование файлов layouts
Скопируйте нужные файлы из папки layouts плагина:
В созданную папку переопределений:
| Файл | Назначение | Изменения в 4.0 |
|---|---|---|
cart.php |
Страница корзины с формой заказа | Обновлен |
default.php |
Кнопка "В корзину" в материале | Обновлен |
mail.php |
Шаблон email-письма с заказом | Новый layout |
Преимущество Layouts
Система Layouts автоматически ищет переопределения в правильном порядке:
- В вашем шаблоне:
/templates/ваш_шаблон/html/layouts/plg_content_contentcart/ - В плагине:
/plugins/content/contentcart/layouts/
Шаг 3 Редактирование шаблонов
Теперь вы можете редактировать скопированные файлы под свои нужды.
Критически важно сохранить:
- Data-атрибуты - используются JavaScript для работы корзины
- ID элементов - необходимы для AJAX-обновлений
- Классы для JS - например,
contentcart-add-btn - CSRF-токены - критически важны для безопасности
- Переменные $displayData - передаются из плагина
Подробное описание layouts
cart.php - Страница корзины
Назначение: Основной шаблон страницы корзины с формой оформления заказа
Основные элементы:
- Таблица товаров в корзине
- Поля для изменения количества товаров
- Кнопки удаления товаров
- Форма с данными клиента (имя, email, телефон, комментарий)
- Подсчет общей суммы заказа
- Кнопка отправки заказа
- CSRF-токен для безопасности
Новое в версии 4.0:
- Работа с localStorage через JavaScript
- Динамическое обновление через AJAX
- Валидация на стороне сервера
- Улучшенная безопасность (CSRF-защита)
Доступные переменные
$displayData['row']- материал$displayData['params']- параметры$displayData['cart_url']- URL корзины$displayData['session']- сессия
default.php - Кнопка "В корзину"
Назначение: Кнопка добавления товара в корзину на странице материала
Основные элементы:
- Кнопка "Добавить в корзину"
- Отображение цены товара
- Data-атрибуты для JavaScript
- CSRF-токен
Новое в версии 4.0:
- Умная кнопка (меняет состояние после добавления)
- Цена берется только с сервера (безопасность)
- Поддержка AJAX-добавления
- Автоматическое обновление модуля корзины
Доступные переменные
$displayData['row']- материал$displayData['params']- параметры$displayData['link']- ссылка$displayData['cart_url']- URL корзины
mail.php - Email-уведомление
Назначение: Шаблон email-письма с информацией о заказе
Основные элементы:
- Информация о клиенте (имя, email, телефон)
- Список заказанных товаров
- Цены и количество товаров
- Общая сумма заказа
- Комментарий клиента (если есть)
Критические изменения в версии 4.0:
- Удалена функция extract() - была угрозой безопасности
- Теперь это Joomla Layout вместо обычного шаблона
- Добавлена валидация данных
- Улучшена HTML-структура письма
Важно!
Не используйте extract() в переопределениях. Это небезопасно!
Обращайтесь к переменным через $displayData.
Итоговая структура папок
Переопределения модуля
Переопределения плагина (Layouts)
Миграция переопределений с версии 2.0
Если вы обновляетесь с версии 2.0
В версии 2.0 шаблоны плагина находились в папке tmpl/ и переопределялись в:
В версии 4.0 нужно переместить в:
Пошаговая миграция:
- Создайте новую папку:
/templates/ваш_шаблон/html/layouts/plg_content_contentcart/ - Скопируйте ваши переопределенные файлы из старой папки в новую
- Обновите код файлов согласно новым требованиям безопасности (удалите extract(), обновите CSRF-токены)
- Проверьте работу всех шаблонов
- Удалите старую папку после успешного тестирования
Полезные советы
Рекомендуется
- Делайте резервные копии перед изменениями
- Тестируйте на локальном сервере
- Сохраняйте все data-атрибуты
- Проверяйте работу JavaScript после изменений
- Используйте комментарии в коде
- Обновляйте переопределения после обновления плагина
- Используйте переменные через
$displayData
Не рекомендуется
- Редактировать оригинальные файлы плагина
- Удалять CSRF-токены
- Использовать extract() в шаблонах
- Изменять ID и классы для JavaScript
- Удалять data-атрибуты
- Забывать про безопасность
- Использовать старый путь из версии 2.0