как сделать умную переменную работающей в {literal} {/ literal} - PullRequest
4 голосов
/ 15 февраля 2011

У меня есть следующие коды, использующие шаблонизатор smarty

В файле php:

$smarty->assign('SITE_URL', 'http://localhost/mis/');

В файле tpl:

  {literal}
  <script type="text/javascript" src="{$SITE_URL}lightbox/js/prototype.js"></script>
  <script type="text/javascript" src="{$SITE_URL}lightbox/js/scriptaculous.js?load=effects,builder"></script>;
  <script type="text/javascript" src="{$SITE_URL}lightbox/js/lightbox.js"></script>
{/literal}

Я хочу, чтобы коды отображалиськак показано ниже в виде HTML

   <script type="text/javascript" src="http://localhost/mis/lightbox/js/prototype.js"></script>
    <script type="text/javascript" src="http://localhost/mis/lightbox/js/scriptaculous.js?load=effects,builder"></script>
    <script type="text/javascript" src="http://localhost/mis/lightbox/js/lightbox.js"></script>

Пожалуйста, помогите мне с этим.

Ответы [ 3 ]

14 голосов
/ 15 февраля 2011

{литерал} используется для предотвращения переменных, поэтому вы не можете сделать это так, как вы описали.Вместо этого вы должны закрыть тег {/ literal}, прежде чем захотите использовать переменную.

{literal}&lt;script type=&quot;text/javascript&quot; src=&quot;{/literal}{$SITE_URL}{literal}lightbox/js/prototype.js&quot;&gt;&lt;/script&gt;<br>{/literal}
3 голосов
/ 15 февраля 2011

Другое решение заключается в замене вашего {и} для JavaScript на {ldelim} и {rdelim}. Больше не нужно {literal}.

0 голосов
/ 15 февраля 2011

Между этими двумя тегами {literal} ... {/ literal} нельзя использовать переменные smarty или переменные php.Эти теги упоминаются компилятором smarty, между этими двумя кодами тегов должен быть код javascript.Так что твои умные переменные там не работают.Если вы хотите использовать переменные / функции smarty, вы должны закрыть тег {literal}.

...