Инструменты пользователя

Инструменты сайта


limb3: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/ru/packages/macro/php_code_in_templates.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)