Layout или Шаблон – это статический элемент WEB-приложения, представляющий собой HTML-код, отвечающий за размещение на странице ее базовых элементов (заголовок, основной текст, "шапка", "подвал" и т.д.). Шаблон включает:
В процессе обработки шаблона страницы парсером все теги в шаблоне последовательно заменяются их содержимым (сниппеты выполняются, плейсхолдеры заполняются, чанки заменяются их содержимым и т.д.) до тех пор, пока не получится "чистый" HTML-код страницы для передачи браузеру для отображения (см. Как работает PHP-фреймворк Wad-er).
В PHP-платформе Wad-er шаблон является объектом, отображаемым в Каталоге объектов. Для доступа к дереву шаблонов используется меню Элементы сайта – Шаблоны.
При выборе записи конкретного шаблона, в правом фрейме отображается карточка шаблона, имеющая ряд вкладок – Общие, Шаблон, Прочие, Предпросмотр и Лог.
В полях вкладки Общие задается;
На вкладке Шаблон размещается исходный текст шаблона.
В полях вкладки Прочие задаются:
На вкладке Предпросмотр можно увидеть пример отображения тестовой страницы с использованием шаблона.
После нажатия кнопки Сохранить, вся информация про шаблон сохраняется в базе данных.
Для хранения файлов, связанных с данным шаблоном (файлы таблиц CSS-стилей, картинки, js-скрипты), необходимо создать каталог:
Для каждого шаблона внутри templates/ создаются подкаталоги, каждый из которых носит название соответствующего шаблона. В этих подкаталогах и размещаются все файлы, связанные с шаблоном.
Общие принципы построения шаблонов в PHP-платформе Wad-er практически ничем не отличаются от построения обычных html-шаблонов.
Вот простой пример шаблона, который может использоваться в PHP-платформе Wad-er:
< html > < head > < title >Мой блог< /title > < /head > < body > < h1 >Hello world!< /h1 > < /body > < /html >
Для того чтобы шаблон отображал динамическое содержимое страницы, необходимо вставить соответствующие теги:
< html > < head > < title >Мой блог< /title > < /head > < body > < h1 >{ * longtitle * }< /h1 > { * сontent * } < /body > < /html >
Здесь { * longtitle * } – заголовок текущей страницы, { * сontent * } – ее содержимое.
Добавление к шаблону css-стилей и javascript-кода. Между тегами и шаблона можно указать таблицы используемых стилей:
< link rel="stylesheet" type="text/css" href="path/to/template/style.css" / >
Аналогично можно вставить код для подключения javascript-кода.
< script type="text/javascript" src=" path/to/template/script.js" >< /script >
Здесь path/to/template / - путь к каталогу, где будут сохраняться файлы, связанные с шаблоном.
Список Динамические элементы (теги и поля страниц), используемые в шаблонах:
{ * , * } | Поле страницы, системные установки, значения по-умолчанию или слово для перевода | внутри скобок ставится название поля страницы, например { * content * } |
{ - , - } | Чанк | |
{ { , } } | Кэшируемый сниппет | |
{ ! , ! } | Некэшируемый сниппет | |
{ + , + } | Плейсхолдер | |
{ ~ , ~ } | Ссылка на внутреннюю страницу сайта | внутри скобок ставится уникальный идентификатор страницы - код (id). |
{ ^ t ^ } | Общее время формирования страницы | для программистов, чтобы знать скорость загрузки страницы |
{ ^ s ^ } | Источник данных - кэш или база данных | |
{ ^ p ^ } | Количество проходов парсера | для программистов, чтобы знать, сколько раз парсер "разбирал" страницу |
Список некоторых полей страницы:
Код (ID) | { * id * } | Родитель | { * parent * } |
Название | { * title * } | Псевдоним | { * pagealias * } |
Приватный | { * isprivate * } | Кэшируемый | { * cachable * } |
Опубликован | { * published * } | Рубрика | { * category * } |
Шаблон | { * template * } | Создал | { * creatby * } |
Код типа объекта | { * objtype * } | Изменён | { * updateon * } |
Создан | { * creaton * } | Комментарии | { * сomments * } |
Аватар | { * avatar * } | Краткое описание | { * meta-description * } |
Ключевые слова | { * meta-keywords * } | Аннотация | { * introtext * } |
Содержание | { * сontent * } | Позиция в меню | { * menuindex * } |
Заголовок | { * longtitle * } |