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 * } |