Макет¶
Макет — это мощный инструмент кастомизации внешнего вида и удобства использования вашего магазина. Вы можете изменить расположение определенной информации на страницы, просто перетаскивая информационные блоки.
Редактирование макета доступно через Панель администратора CS-Cart/Multi-Vendor в разделе Веб-сайт → Темы → Макеты.
Примечание
Сетка макета основана на фреймворке Bootstrap 2.3. Подробнее об этом фреймворке читайте на официальном сайте Bootstrap.
Настройки макета¶
У макета есть следующие настройки:
scheme — текущая версия —
1.1. Она расширяет возможности макета. Вы можете указать edition (ULTIMATE, MULTIVENDOR) и build (RU, B2B) для элементов, и вам не нужно создавать несколько макетов для каждой версии продукта.edition — edition продукта для макета, например
<layout edition="MULTIVENDOR">. В схеме 1.1 edition обычно не указывается.Grid columns — количество колонок в сетке (12 или 16). Сетка с 16 колонками предпочтительна и используется по умолчанию. Такая сетка позволяет построить больше комбинаций колонок: т.к. ширина каждой колонки меньше, количество колонок на сетке больше.
В Bootstrap по умолчанию используется сетка с 12 колонками, на основе которой построено большое количество шаблонов. Используйте такую сетку, если на ее основе построен весь ваш макет, и вы хотите перенести его в CS-Cart.
Важно
Если вы хотите трансформировать сетку с 16 колонками в сетку с 12 колонками, значения ширины сетки будут изменены в Панели администратора несимметрично. Для покупателя ширина сетки не изменится, но вместо этого изменится ширина всего сайта. Вам придется изменить значение ширины сетки отдельно для каждой сетки.
Layout width — выберите фиксированную ширину (Fixed), диапазон ширины (Fluid) или значение по ширине окна (Full width):
- Если выбрано Fixed, вы можете указать ширину колонки в пикселях (px). Ширина колонки и интервал между колонками определяется в файле css/tygh/grid.less. Они определяются с помощью переменных
@gridColumnWidthи@gridGutterWidth. По умолчанию эти значения равны 40px и 20px. - Если выбрано Fluid, вы можете определить минимальную и максимальную ширину страницы. Ширина колонки определяется в процентах (%). Ширина колонки и интервала между колонками определяется пропорционально в зависимости от значений переменных, используемых для страницы с фиксированной шириной.
Примечание
Вычислить максимальную ширину страницы можно с помощью формулы: (@gridColumns * @gridColumnWidth) + ((@gridGutterWidth * (@gridColumns - 1). Максимальная ширина по умолчанию равна 1175px.
- Если выбрано Full width, ширина страницы будет адаптирована к полной ширине экрана.
- Если выбрано Fixed, вы можете указать ширину колонки в пикселях (px). Ширина колонки и интервал между колонками определяется в файле css/tygh/grid.less. Они определяются с помощью переменных
Для изменения ширины блоков в зависимости от ширины экрана можно также использовать медиа-запросы.
Элементы макета¶
Расположение¶
Расположение (location) определяет внешний вид страницы. При добавлении расположения задаются следующие параметры:
Name — название расположения.
edition — edition продукта для расположения, например
<location edition="MULTIVENDOR" dispatch="companies.apply_for_vendor" ... >.build— build продукта для расположения, например
<location build="B2B" ... >.Dispatch — определенная страница или тип страниц, с которым ассоциировано расположение. Параметр dispatch имеет следующий формат:
[controller_name].[mode_name][controller_name]— названия контроллера.[mode_name]— режим работы контроллера.
Значение dispatch добавляется к
index.php?dispatch=и указывает на определенное расположение. Например:index.php?dispatch=checkout.cartуказывает на страницу содержимого корзины.index.php?dispatch=checkout.checkoutуказывает на страницу оформления заказа.
Вы можете выбрать предустановленные значения из выпадающего списка.
Такие элементы сайта как заголовок и подвал обычно одинаковы для каждой страницы. Используйте расположение По умолчанию, чтобы не дублировать это содержимое для каждой страницы.
Расположение По умолчанию не привязано к конкретной странице, но определяет внешний вид, общий для всех расположений. Расположение По умолчанию должно быть всегда определено. Чтобы сделать определенное расположение по умолчанию, в настройках расположения поставьте галочку для параметра По умолчанию.
Контейнеры¶
Макет расположения состоит из 4 контейнеров: верхняя панель, заголовок, контент и подвал.
Контейнеры верхняя панель, заголовок и подвал определяются только для расположения По умолчанию.
В Bootstrap контейнеры имеют следующую структуру:
Для макета с фиксированной шириной:
<div class="container">...</div>
Для макета с диапазоном ширины:
<div class="container-fluid">...</div>
Контейнеры имеют следующие настройки:
- edition — edition продукта для контейнера, например
<container edition="MULTIVENDOR" ... >. - build — build продукта для контейнера, например
<container build="B2B" ... >.
Сетки¶
Сетки располагаются в контейнерах. В Bootstrap сетка включает .span и .row. По умолчанию в CS-Cart используется сетка с 16 колонками.
Вы можете настроить следующие параметры сетки:
- edition — edition продукта для сетки, например
<grid edition="MULTIVENDOR" ... >. - build — build продукта для сетки, например
<grid build="B2B" ... >. - Width — количество колонок, используемое в контейнере. Для дочерних контейнеров это число не может превышать длину корневого контейнера. Данная настройка определяет .span, который будет использоваться для блока (
.span1—.span16). - Content alignment — положение контейнера внутри корневого (или родительского) контейнера:
- Right — справа (добавляет класс
ty-float-right). - Left — слева (добавляет класс
ty-float-left). - Full Length — по длине.
- Right — справа (добавляет класс
- Offset — добавляет отступ блока слева. Использует те же значения, что и .span. Для сетки добавляется класс
.offset. - User-defined CSS-class — добавляет CSS-класс.
Блоки¶
Блок — это отдельный блок, представляющий определенный компонент витрины. Блоки добавляются в сетки.
Блоки создаются на основе схем. Схема представляет собой файл, в котором определяются все блоки, их настройки и шаблоны. Путь до файла схемы блоков: app/schemas/block_manager/blocks.php
Настройки блока:
- name — название блока.
- edition — edition продукта для блока, например
<block edition="MULTIVENDOR" ... >. - build — build продукта для блока, например
<block build="B2B" ... >. - Template — шаблон (файл .tpl), определенный для блока. Шаблоны блока содержатся в папке templates/blocks/.
- Wrapper — шаблон, который включает контент. Надстройки содержатся в папке /templates/blocks/wrappers/.
- User-defined CSS-class — используется для добавления CSS-класса.
Подсказка
Если вам нужно поместить блок на верхней панели, в заголовке или в подвале (контейнеры, которые используются в расположении По умолчанию) на конкретной странице, используйте HTML блок с поддержкой Smarty. Для определения текущей страницы используйте переменные $runtime.controller и $runtime.mode.
Пример:
Чтобы отобразить какой-либо заголовок на странице Категории:
Создайте в контейнере заголовка HTML блок с поддержкой Smarty.
В этом блоке напишите следующий код:
{if $runtime.controller == "categories" && $runtime.mode == "view"} <p>Categories page</p> {/if}
Экспорт / импорт макетов¶
Вы можете экспортировать макет в файл либо импортировать ранее созданный макет:
- В Панели администратора перейдите в раздел Веб-сайт → Темы → Макеты.
- Нажмите кнопку шестеренки в правом верхнем углу страницы.
- Выберите желаемое действие.
При создании новой темы экспортируйте макет в папку layouts после подбора размера блоков (предварительно удалите предыдущие файлы). Этот макет будет применен автоматически при установке темы.
Файл экспорта / импорта включает следующее:
Настройки макета.
Структура и настройки контейнеров, сетки и блоков.
Контент блоков. Оно определяется на вкладке Контент и зависит от типа блока. Но не во всех блоках есть контент.
Например для блока HTML и HTML блок с поддержкой Smarty контентом является текст, введенный в текстовое поле.
В таких блоках как Товары контентом является критерии отображения товаров (например, по новизне, недавно просмотренные).
Предупреждение
Макет устанавливается только при установке темы. Если вы устанавливаете одну тему, а затем переключаетесь на другую, активной будет та тема, которая установлена последней.
Совместимость макетов¶
При разработке темы можно указать, будет ли конкретный макет работать с CS-Cart, Multi-Vendor или с ними обоими. Для этого:
- Экспортируйте макет.
- Откройте экспортированный файл.
- Для атрибута
editionдобавьте элементLayout, например:
<?xml version="1.0"?> <block_scheme scheme="1.0"> <settings> <default_language>en</default_language> </settings> <layout edition="MULTIVENDOR"> <name>Main</name> <is_default>1</is_default> <width>16</width> <layout_width>fluid</layout_width> <min_width>280</min_width> <max_width>1200</max_width> <style_id>Modern</style_id> </layout> </block_scheme>
Ниже указаны возможные значения атрибута edition:
- ULTIMATE — макет работает только с CS-Cart.
- MULTIVENDOR — макет работает только с Multi-Vendor.
- ULTIMATE/MULTIVENDOR — макет работает и с CS-Cart, и с Multi-Vendor.
При установке темы все макеты с подходящим значением edition будут установлены в папку layouts.
Для схемы 1.1
Схема 1.1 позволяет указывать edition (ULTIMATE, MULTIVENDOR) и build (RU, B2B) у любых элементов. При обработке layout элементы с этими атрибутами, не подходящие под edition или build продукта, будут удалены.
Макеты модулей¶
Модули могут добавлять собственные макеты. Это делается посредством файла layouts.xml, расположенного в папке модуля app/addons/[addon_name]/layouts.xml.
Темы могут переопределять макеты модулей. Если в каталоге темы есть файл layouts/addons/[имя_аддона]/layouts.xml, то эти макеты будут использоваться при установке модуля вместо макетов, которые устанавливаются вместе с модулем.