Актуально для Dharma Shop 0.1.15. Макеты определяют внешний вид, а модели и службы компонента — данные, доступ, цены и действия. Переопределяйте HTML через стандартные каталоги Joomla и сохраняйте штатные вызовы макетов и событий.
Где находятся макеты
- Страницы сайта:
components/com_dharmashop/tmpl/. - Общие подключаемые макеты:
layouts/components/dharmashop/. - Переопределение в шаблоне:
templates/<имя_шаблона>/html/layouts/components/dharmashop/с той же структурой подпапок.
Административные экраны размещены в administrator/components/com_dharmashop/tmpl/. Это отдельные макеты, они не используются на витрине. Пользовательские изменения храните в переопределениях шаблона, чтобы обновление пакета не заменило их.
Список товаров
Каталог поддерживает сетку, список и таблицу. Выбор макета и отображения наследуется от настроек магазина, категории/таксономии и пункта меню; локально заданное значение имеет приоритет.
- Сетка — карточки товара.
- Список — горизонтальная карточка с описанием и характеристиками, отмеченными для вывода в карточке.
- Таблица — ровно две колонки: «Товар» и «Цена». Характеристики и отдельные товары-варианты группы под названием не выводятся. Это актуальный контракт выпуска 0.1.15.
Товарные карточки используют общие части изображения, цены и действий. Сохраняйте их вызовы при переопределении, чтобы продолжили работать корзина, счётчик количества, скидки и состояния товара. В макетах нельзя повторно загружать товары или рассчитывать цены.
Посадочные страницы
Для страницы и списка посадочных страниц используются макеты компонента com_dharmashop_landing. Их переопределения следуют той же схеме Joomla. Параметры списка и фильтр не должны подменять сохранённые условия самой страницы.
Полоса скидки от суммы
Общий макет уровня акции устанавливается в layouts/components/dharmashop/cart/promotion-progress.php; переопределение — templates/<имя_шаблона>/html/layouts/components/dharmashop/cart/promotion-progress.php. Макет получает готовые уровни и суммы от расчёта корзины. Мини-корзина сохраняет собственный вид.
Стили и интерактивность
Компонент использует Bootstrap и штатные классы/данные JavaScript. Не удаляйте data-* атрибуты, имена полей, идентификаторы, подписи доступности и формы отправки: они связывают макет с фильтром, корзиной и переключением вариантов. Отдельный CSS нужен только для оформления, а не для восстановления логики компонента.