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

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


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 (внешнее изменение)