====== Интеграция своего дизайна для режима конструктора ====== Конструктор в Astra.CMS автоматически формирует итоговые шаблоны для сайта из **взаимозаменяемых** фрагментов для основных областей/блоков. Поэтому верстка и внедрение html кода и стилей имеет свои особенности и отличается от [[:integration:index|интеграции дизайна обычным способом]]. ===== Каркасы (layouts) ===== Первая особенность состоит в том что для сайта уже заранее предусмотрено несколько вариантов каркасов, в которые на этапе сборки внедряются выбранные фрагменты. Доступно 8 готовых вариантов, достаточно {{:constructor:layout_rez_lr.zip|скачать}} один из них, чтобы увидеть базовые слои и стили. * Фиксированная ширина, левая колонка блоков; * Фиксированная ширина, правая колонка блоков; * Фиксированная ширина, левая и правая колонка блоков; * Фиксированная ширина, без боковых колонок; * Резиновая ширина, левая колонка блоков; * Резиновая ширина, правая колонка блоков; * Резиновая ширина, левая и правая колонка блоков; * Резиновая ширина, без боковых колонок. ===== Основные области ===== Ниже перечислены области сайта, которые подразумевают взаимозаменяемость, т.е. один вариант области можно заменить на другой без ущерба целостности верстки дизайна. ==== Шапка сайта ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/header/. * header.tpl - файл шаблона. * header.css - файл стилей. * images - каталог с графическими файлами. Эта область на уровне каркаса заключена в %%%% , поэтому имеет смысл делать классы стилей относительно #header. Для #header требуется обязательно указать свойство height. Файлы preview.html и preview.css для исходных файлов генерируются автоматически для всех областей. ==== Подвал сайта ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/footer/. * footer.tpl - файл шаблона. * footer.css - файл стилей. * images - каталог с графическими файлами. Эта область на уровне каркаса заключена в %%%% , поэтому имеет смысл делать классы стилей относительно #footer. Для #footer требуется обязательно указать свойство height. ==== Левая колонка блоков ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/sidebar/left/. * sidebar.tpl - файл шаблона. * sidebar.css - файл стилей. * images - каталог с графическими файлами. Эта область на уровне каркаса заключена в %%
...
%% , поэтому имеет смысл делать классы стилей относительно #sl. Для #sl требуется обязательно указать свойство width. ==== Обрамление левого блока ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/frame/left/. * frame.tpl - файл шаблона. * frame.css - файл стилей. * images - каталог с графическими файлами. Шаблон должен содержать специальные вставки [[#TITLE|TITLE]] и [[#CONTENT|CONTENT]]. ==== Правая колонка блоков ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/sidebar/right/. * sidebar.tpl - файл шаблона. * sidebar.css - файл стилей. * images - каталог с графическими файлами. Эта область на уровне каркаса заключена в %%
...
%% , поэтому имеет смысл делать классы стилей относительно #sr. Для #sr требуется обязательно указать свойство width. ==== Обрамление правого блока ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/frame/right/. * frame.tpl - файл шаблона. * frame.css - файл стилей. * images - каталог с графическими файлами. Шаблон должен содержать специальные вставки [[#TITLE|TITLE]] и [[#CONTENT|CONTENT]]. ==== Центральная область ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/content/. * content.tpl - файл шаблона. * content.css - файл стилей. * images - каталог с графическими файлами. Эта область на уровне каркаса заключена в %%
...
%% , поэтому имеет смысл делать классы стилей относительно #content. Шаблон должен содержать специальную вставку [[#CONTENT|CONTENT]]. ==== Строка навигации (хлебные крошки) ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/navigation/. * navigation.tpl - файл шаблона. * navigation.css - файл стилей. * images - каталог с графическими файлами. В шаблоне используется [[:integration:objects#Строка навигации (хлебные крошки)|стандартный набор данных]] для этого объекта. ==== Нумератор страниц ==== Физическое расположение файлов этой области - wizard_config/[mysiteid]/pager/. * pager.tpl - файл шаблона. * pager.css - файл стилей. * images - каталог с графическими файлами. В шаблоне используется [[:integration:objects#Многостраничная навигация (нумератор страниц)|стандартный набор данных]] для этого объекта. ==== Блоки (для каждого типа) ==== Физическое расположение файлов для каждого из блоков - wizard_config/[mysiteid]/blocks/[blockid]. В шаблонах используются стандартные наборы данных для каждого из [[:blocks|типов блоков]]. ===== Особенности верстки ===== Для достижения взаимозаменяемости, верстка каждой области делается максимально изолированной. А именно, отдельный tpl и css файл в котором все используемые стили действуют только в рамках этой области. Набор необходимых графических файлов так же обособлен. Например, для шапки сайта все стили будут иметь вид: #header .classname { … } Для центральной области: #content .classname { … } Таким образом, каждая область (например шапка) будет состоять из своего tpl файла, своего css файла, и своей папки с картинками. Для выбранного варианта шапки физически это будет каталог wizard_config/[mysiteid]/header/. Редактировать файлы tpl и css, а так же загружать используемые картинки можно через веб-редакторы админки для соответствующей области. {{ :constructor:constructoruse.jpg?800 }} ===== Особенности языка шаблонов ===== В качестве языка шаблонов (tpl файлы) используется [[:smarty|Smarty]], такой же как при [[:integration:index|обычном способе интеграции]] дизайна. Кроме этого используются специальные вставки: ==== [IMAGESDIR] ==== Используется для указания пути к графическим файлам. Сами графические файлы загружаются либо с помощью веб-редактора, либо непосредственно в каталог wizard_config/[mysiteid]/header/images/ (для области шапки сайта). Можно использовать так же и {$system.imgdir} как в обычных шаблонах. ==== [BLOCKS_LEFT] ==== Используется только в шаблоне [[index#Левая колонка блоков|левой колонки блоков]] (закладка "Колонка"). На этапе сборки замещается на функцию [[:smarty:smarty6#leftblocks|leftblocks]], которая осуществляет вывод всех блоков с левым расположением. ==== [BLOCKS_RIGHT] ==== Аналогично для правой колонки блоков. ==== [TITLE] ==== Используется только в шаблонах обрамлений боковых блоков. На этапе сборки замещается на вывод переменной с названием блока. ==== [CONTENT] ==== Используется: - В шаблонах обрамлений боковых блоков. На этапе сборки замещается на вывод переменной с содержимым блока. - В шаблоне [[index#Центральная (основная) область|центральной области]]. Подразумевает область основног контента и позволяет добавить для него специальное обрамление. ===== Особенности оформления CSS ===== Про обособленность стилей для локальных областей уже писалось [[#Особенности верстки|выше]]. Все необходимые глобальные стили помещаются в css файл выбранной темы, который доступен для редактирования в секции [[index#Тема дизайна|"Тема дизайна"]]. Пути к графическим файлам должны указываться в относительном виде: url('images/myimage.png'). При этом путь 'images/...' будет таким всегда, меняться могут только имена файлов. ===== Создание опциональных свойств ===== В tpl и css файлах можно использовать специальные конструкции для вынесения каких-то параметров в список визуальных опций (например цвет, размер шрифта и т.п.). ==== Формат ==== [**?ид_опции** **caption**=%%"название опции"%% **type**=%%"тип"%% **default**=%%"значение по умолчанию"%%] * **ид_опции** – уникальное название опции в рамках темы, например header-height. * **название опции** – текстовое название, которое будет показано в редакторе опций. * **тип** – определяет тип значения и формат редактора для опции. Двойные кавычки для значений параметров обязательны для успешного распознавания этой конструкции. ==== Доступные типы ==== * **string** – любая строка. * **px** – целое значение (подставляется сразу с px на конце). * **int** - целое число. * **color** – цвет (подставляется в формате #FFFFFF). * **select** – несколько значений на выбор (список). * **image** – файл картинки. Для типа **select**, в формате конструкции используется дополнительный параметр **options**=%%"значение1:название1, значение2:название2, …"%%. ==== Примеры ==== #header { height: [?header-height caption="Высота" type="px" default="225"]; } #content { background: url('images/[?content-background caption="Фон" type="image"]'); } #content a, #content a:visited { text-decoration: none; color: [?content-a-color caption="Цвет ссылки" type="color" default="FB9233"]; } .pager { font-size: [?pager-font-size caption="Размер шрифта" type="px" default="14"]; text-align: [?pager-align caption="Выравнивание" type="select" options="left:Слева,right:Справа,center:По центру" default="center"]; } ===== Особенности для центральной/рабочей области ===== Центральная область включает в себя основной контент страницы, как для главной, так и для внутренних. В отдельном css файле, с префиксом #content следует указывать стили для форматирования заголовков, текста, списков, таблиц. ==== Шаблоны рабочей области всех типов страниц ==== Для всех предусмотренных в конструкторе типов страниц, шаблоны физически располагаются в wizard_config/[mysiteid]/templates/, откуда они копируются в момент сборки итоговых шаблонов. Веб-редактор этих шаблонов доступен в секции [[index#Тема дизайна|"Тема дизайна"]]. Шаблоны центральной области внутренних страниц можно редактировать и стандартным способом: "Панель управления" -> "Файлы" -> "Шаблоны", однако следует помнить, что изменения в этом случае могут быть потеряны после каких-то изменений в конструкторе.