Предотвращение обработки Smarty

Иногда необходимо, чтобы Smarty не обрабатывал часть шаблона, которая должна по умолчанию обрабатываться. Классическим примером такой ситуации является встраивание Javascript или CSS-кода в шаблон. Проблема появляется из-за того, что эти языки используют символы { и }, которые так же используются в качестве разделителей для Smarty.

Самым простым решением является избежание этой ситуации пут╦м выноса Javascript'а и CSS-кода в отдельные файлы и использования стандартных методов HTML для доступа к ним.

Дословное включение контента возможно при помощи блоков {literal} .. {/literal}. Подобно тому, как вы используете HTML-сущности (  и т.п.), вы можете использовать {ldelim},{rdelim} или {$smarty.ldelim} для отображения текущих разделителей.

Порой бывает удобно просто изменить свойства $left_delimiter и $right_delimiter в объекте Smarty.

Пример 3-7. Изменение разделителей

<?php

$smarty 
= new Smarty;
$smarty->left_delimiter '<!--{';
$smarty->right_delimiter '}-->';
$smarty->assign('foo''bar');
$smarty->display('example.tpl');

?>

Шаблон example.tpl:

<script language="javascript">
  var foo = <!--{$foo}-->;
  function dosomething() {
    alert("foo is " + foo);
  }
  dosomething();
</script>

См. также модификатор escape


HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ