====== Введение в структуру шаблонов ====== В этом руководстве рассмотрены особенности интеграции дизайна. На этом этапе структура требуемого сайта должна быть сформирована и необходимые дополнительные элементы (блоки) созданы. Сайт уже готов и функционален, остается "одеть" его в нужный дизайн. Уровень представления в Astra.CMS обособлен от уровня формирования данных, поэтому вмешиваться в исходные коды модулей не потребуется. На уровне проектирования шаблонов необходимо только описать правила, по которым из исходных данных будут формироваться страницы. К отдельному изучению рекомендуется [[:smarty:smarty1|язык шаблонов Smarty]]. Итак, после всех [[:build:sections#Анализ и формирование набора разделов сайта|действий по созданию разделов и блоков]] и заполнения некоторых данных, переходим из панели управления на внешний сайт, и приступаем к работе с шаблонами представления. Для всех [[:sections|разделов]] или [[:blocks|блоков]], которые создавались, автоматически уже были созданы базовые шаблоны поэтому сайт будет представлен в "голом" схематическом виде. {{ :integration:defaultdiz.jpg }} ===== Файлы шаблонов ===== Для того чтобы начать работать с шаблонами представления, нужно знать где они находятся. Существует два пути редактирования шаблонов. - Непосредственно через панель управления, в общем редакторе шаблонов, в который можно попасть через меню "Файлы" -> "Шаблоны". - С помощью специальных программ-редакторов. Сами файлы шаблонов стоит искать при этом в /templates/[mysiteid]/ от корневого каталога, в который установлена Astra.CMS. Первый способ, как правило, используется для небольших корректировок уже интегрированного дизайна. Для внедрения дизайна с нуля преобладает второй способ. При этом, чтобы потом иметь возможность экспортировать [[:architecture#конфигурации|конфигурацию сайта]], и потом без проблем импортировать в другую систему, важно соблюдать одно правило: Вся презентационная графика и файлы css стилей должны находиться в том же каталоге, где и smarty шаблоны, обычно это - /templates/[mysiteid]/images/. Это необходимо для возможности корректного экспорта сайта. ==== Структура шаблонов ==== Посмотрим содержимое каталога /templates/[mysiteid]/ * **blocks** – каталог содержит файлы шаблонов, назначенные для блоков. * **frames** – каталог содержит файлы шаблонов-оберток, назначенные для блоков. * **mails** – каталог содержит файлы шаблонов писем. * **others** – каталог содержит файлы дополнительных шаблонов, например для объекта многостраничной навигации (нумератор страниц). * ***.tpl** – набор файлов шаблонов страниц. [[:smarty:smarty1|Язык шаблонов Smarty]], позволяет собирать итоговый шаблон из нескольких файлов. Это позволяет, например, выделить области, которые одинаковые для всех страниц сайта в отдельные файлы. Обычно это верхняя часть сайта (шапка), колонки и нижняя часть (подвал). По умолчанию создается именно такой набор шаблонов. * **_header.tpl** – фрагмент страницы, содержащий верхнюю часть (шапка) и левую колонку. * **_footer.tpl** - фрагмент страницы, содержащий нижнюю часть (подвал) и правую колонку. Остальные шаблоны, описывают уже полные страницы, с использованием включения вышеописанных фрагментов и своих индивидуальных данных. Например: {* Простой шаблон страницы для раздела на базе модуля "Страницы". *} {include file="_header.tpl"} {* Шапка страницы. *}

{$page.name}

{* Название страницы. *} {$page.content} {* Текст страницы. *} {include file="_footer.tpl"} {* Подвал страницы. *}
Такой подход удобен тем, что в случае изменений в шапке сайта, придется поменять только один файл. Плюс к этому позволяет делать шаблоны страниц более компактными. Однако язык Smarty хорош и тем, что предоставляет полную свободу действий в рамках доступных данных, поэтому для более сложного дизайна, возможно и использование цельных страниц в каждом таком шаблоне. ===== Назначение шаблонов ===== Каждый из созданных разделов имеет свой набор типов страниц, для каждой из которых назначается файл шаблона. Кроме этого, свои шаблоны назначаются для блоков, которые обрабатываются отдельно и интегрируются в html код страниц. Переопределять, в случае необходимости, шаблоны для страниц, назначенные по умолчанию, можно в секции "Сайт" -> "Типы шаблонов" панели управления. Там же можно их и редактировать через веб-редактор. Для блоков шаблоны назначаются в секции упрваления блоками - "Сайт" -> "Блоки". ===== Типы шаблонов ===== Как уже говорилось выше - каждый шаблон закрепляется за определенным типом страницы от конкретного раздела. Отличаются эти типы наборами доступных в них данных. Например, существует [[:sections|раздел]] "Новости" (news) на базе модуля [[:modules:catalog|"Каталог материалов"]]. Он будет иметь три типа страниц, по умолчанию это: * **news_main.tpl** - [[:modules:catalog:templates#Главная страница ([раздел]_main.tpl)|главная страница раздела]], содержит обычно список категорий (если есть) и список последних записей. * **news_category.tpl** - [[:modules:catalog:templates#Cтраница категории ([раздел]_category.tpl)|страница выбранной категории]], содержит обычно список подкатегорий (если есть) и список записей в категории. * **news_page.tpl** - [[:modules:catalog::templates#Детальная страница ([раздел]_page.tpl)|детальная страница записи]], содержит полные данные выбранной записи, например текст новости. Каждый из этих шаблонов имеет свой набор данных, который включает [[:integration:globaldata|общие (глобальные) данные]], которые доступны на всех страницах, а так же индивидуальные, которые зависят от типа страницы и [[:modules|модуля]] на котором построен раздел. Читайте далее, про [[:integration:analize|анализ исходных html шаблонов и их интеграцию]].