 
Шаблон блока
Шаблон (template) - это текстовый файл с расширением tpl. Он представляет собой фрагмент html-кода (без секции заголовка документа и тегов body).
В именах файлов шаблонов разрешено использовать следующие символы:
- буквы латинского алфавита в любом регистре [a-zA-Z]
- цифры [0-9]
- нижнее подчеркивание [_]
В этом коде данные, предназначенные для редактирования замещены php-переменными.
Это справедливо только при использовании php-шаблонизатора и записи php-кода в альтернативной форме или при использовании smarty-шаблонизатора. В действительности во всех примерах шаблонов данного справочника не php-код вставляется в html-код, а, наооборот, html-код с помощью оператора echo вставляется в php-код.
Шаблоны бывают двух типов: однозаписные и многозаписные.
В однозаписном шаблоне задан один набор данных, именуемый записью (например, заголовок, дата, тест и фото).
Многозаписный шаблон получается путем применения циклического оператора foreach к однозаписному шаблону.
В многозаписных блоках пользователь может вставлять неограниченное число новых записей.
Однозаписный шаблон
Изменяемые данные вставляются в код шаблона с помощью переменных вида $dat[5], где 5 - это номер поля.
Дополнительно, в любое место кода нужно поместить переменную $dat['edit'], которая в режиме редактора будет отображать кнопку для перехода в окно редактирования блока.
single.tpl
<?php echo "
{$dat['edit']}
Имя: $dat[1]<br>
Дата рождения: $dat[2]<br>
Фото: <img src='dataFiles/$dat[3]'><br>
Биография: $dat[4]<br>
<a href='?page=$dat[5]'>Моя веб-страничка</a><br>
"; ?>
Примечание. Зеленым цветом выделяется синтаксис HTML, синим - PHP.
Многозаписный шаблон
Данные в многозаписном шаблоне поступают в виде двумерного массива $tab[*][*].
Этот массив с помощью оператора foreach перебирается по первому индексу с выделением одномерного массива $dat[*] (такого же, как в примере однозаписного шаблона).
table.tpl
<?php echo "
<table>";
foreach ($tab as $dat)
echo "
<tr>
<td>{$dat['edit']}</td>
<td>$dat[1]</td>
<td>$dat[2]</td>
<td>$dat[3]</td>
</tr>
"; echo "
</table>
"; ?>
Первый индекс массива $tab играет вспомогательную роль и служит только для задания порядка следования записей (порядок и количество записей может изменяться с помощью различных команд, например, командой сортировки). Не путайте этот индекс с идентификатором (уникальным порядковым номером) записи - значение которого находится в элементе массива $tab[*]['rec'], или $dat['rec']. Сами данные находятся в элементах: $dat[1], $dat[2], $dat[3], ...
Естественно, многозаписный шаблон вовсе необязательно оформлять в виде таблицы - это может быть последовательность статей блога, галерея картинок с подписями и т.п. Кнопку редактирования $dat['edit'] можно помещать в любое место кода внутри цикла foreach, то есть кнопка редактирования появится у каждой записи, если пользователь имеет право редактировать данный блок.
В шаблоне ничего не говорится о типах данных. Типы данных задаются в файле дескриптора шаблона.
Примечания
-
После добавления или удаления в шаблоне новых переменных $dat[], не забывайте отразить это и в дескрипторе шаблона.
-
Что касается кода странички, находящегося за пределами элемента body, то этот код находится
в файле системы управления: BLOX/templates/main.tpl и обычно не редактируется (см. статью Главный шаблон ).
|