limb3_2007_4:ru:packages:macro:php_code_in_templates
Использование php-кода в шаблонах
Прежде всего нужно понимать, что MACRO компилирует шаблон в обычный php-класс. Поэтому MACRO позволяет вставлять любой php-код в шаблоны, например:
<select name='my_selector'> <?php foreach($this->items as $item) { echo '<option value="'. $item['value'] . '" '; if(some_condition()) echo 'selected'; echo '>'. $item['title'] .'</option>'; } ?> </select>
Единственный момент - нужно понимать, что тот код, котоырый вы пишете, будет находится в одном из методов сгенеренного класса. То, в каком именно методе, зависит частично от использования тегов include, wrap и into. Поэтому, если данные нужны только здесь и сейчас, можно в php-блоках использовать локальные переменные,а если данные нужно везде - переменные-атрибуты сгенеренного класса шаблона.
Когда в MACRO "принято" использовать php-код
- Для генерации условий.
- Для сложных вычислений, если они имеют место в шаблоне (помните: не переносите слишком много логики в шаблоны).
- Для любых нестандартных ситуаций, когда возможностей стандартных MACRO-тегов нехватает, а создание своих MACRO-тегов себя не оправдает.
limb3_2007_4/ru/packages/macro/php_code_in_templates.txt · Последнее изменение: 2010/11/10 10:02 — 127.0.0.1

Обсуждение