Шаблон (template) - это текстовый файл с расширением tpl. Он представляет собой фрагмент html-кода (без секции заголовка документа и тегов body).
В коде шаблона данные, предназначенные для редактирования замещены 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, то есть кнопка редактирования появится у каждой записи, если пользователь имеет право редактировать данный блок.
Вместо того, чтобы отображать кнопки редактирования записи в каждой записи, в шаблоне можно поставить одну кнопку редактирования на весь блок $edit['button']. По ней откроется окно редактирования в многозаписном режиме.
В шаблоне ничего не говорится о типах данных. Типы данных задаются в файле дескриптора шаблона.