 
Файлы шаблона Файл ∗.oh (обработчик вывода)
Обработчики вывода применяются, если необходимо обработать данные поступающие в шаблон перед выводом блока на странице.
Правила написания обработчиков вывода
- Обработчики пишутся на языке PHP.
- Файл скрипта должен иметь расширение .oh (output handler) и имя, совпадающее с именем файла шаблона.
- Входными данными обработчика являются переменные:
- Данные, которые необходимо передать на шаблон, должны быть собраны в массиве $odat (output data). Под тем же именем массив доступен и шаблоне.
- Если используется php-шаблон, то код обработчика можно поместить прямо в шаблон, как это сделано в шаблоне отправки сообщений с сайта. В этом случае, для передачи обработанных данных в шаблон, не обязательно использовать массив $odat.
Пример. Суммирование колонок таблицы
Шаблон sum.tpl
<?php echo "
<table>
foreach ($tab as $dat)
echo "
<tr>
<td>{$dat['edit']}</td>
<td>$dat[1]</td>
<td>$dat[2]</td>
</tr>
";
echo "
<tr>
<td>Итого:</td>
<td>{$odat[1]}</td>
<td>{$odat[2]}</td>
</tr>
</table>
";
?>
Обработчик sum.oh
<?php
$sum1 = 0;
$sum2 = 0;
foreach ($tab as $dat)
{
$sum1 = $sum1 + $dat[1];
$sum2 = $sum2 + $dat[2];
}
$odat[1] = $sum1;
$odat[2] = $sum2;
?>
Примечания
-
Если вы используете php-шаблоны, то скрипты обработчиков вывода можно, в принципе, перенести прямо в шаблон (.tpl), поместив код скрипта в начале кода шаблона, и тем самым избавиться от файла обработчика. Однако, нужно стараться, все же, помещать php-код в отдельный файл обработчика (.oh) - это позволит применять его как для php-шаблонов, так и для smarty-шаблонов.
-
В коде обработчика желательно убрать пробелы и пустые строки перед тегом <?php и после завершающего тега ?>, так как иногда они могут быть интерпретированы, как вывод документа.
См. также
|