Php 告诉smarty按原样打印块
我需要将一些javascript代码内联到Smarty模板文件中,而这些{ldelim}{rdelim}东西正在折磨我。有没有办法告诉smarty忽略块的标记并按原样输出?类似于xml中的CDATA块 以防万一:下面是javascript现在看起来有多简单:Php 告诉smarty按原样打印块,php,javascript,smarty,Php,Javascript,Smarty,我需要将一些javascript代码内联到Smarty模板文件中,而这些{ldelim}{rdelim}东西正在折磨我。有没有办法告诉smarty忽略块的标记并按原样输出?类似于xml中的CDATA块 以防万一:下面是javascript现在看起来有多简单: $(function() {ldelim} $( "#slides" ).accessNews({ldelim} speed : "{$speed}", slideBy :
$(function() {ldelim}
$( "#slides" ).accessNews({ldelim}
speed : "{$speed}",
slideBy : 1
{rdelim});
{rdelim});
令人毛骨悚然的呵呵?关于您的更新:您可以使用
{literal}。。。。在此处插入内容{/literal}
以关闭整个块的Smarty变量解析
旧答案:正是出于这个原因,我想将默认分隔符字符更改为其他字符。(据我所知,这只能在整个项目中完成,所以你必须看看它是否适合你。)
比如说
<( $variablename )>
更新:您可以使用
{literal}。。。。在此处插入内容{/literal}
以关闭整个块的Smarty变量解析
旧答案:正是出于这个原因,我想将默认分隔符字符更改为其他字符。(据我所知,这只能在整个项目中完成,所以你必须看看它是否适合你。)
比如说
<( $variablename )>
在这种情况下,使用{literal}标记很有用,但正如Pekka所说的,每次插入变量时关闭和开始标记都非常烦人。 您可以更改Smarty的分隔符,但是如果您已经有很多模板,那么这就不太好了
Smarty团队在Smarty 3中解决了此问题。不再有{literal}标记,模板工作正常。也许您可以尝试更新它。在这种情况下,使用{literal}标记很有用,但正如Pekka所说,每次插入变量时关闭和开始标记都非常烦人。 您可以更改Smarty的分隔符,但是如果您已经有很多模板,那么这就不太好了
Smarty团队在Smarty 3中解决了此问题。不再有{literal}标记,模板工作正常。也许你可以尝试更新它。比{literal}{/literal}混乱要好得多。不幸的是,它不适合我的情况,因为我已经有很多旧模板文件要处理。@Juriy我明白了。嗯,除了使用{literal}排除JS块之外,我看不到解决这个问题的方法。你说的{literal}是什么意思,看起来正是我需要的。如果我用{literal}{/literal}包围js块,那么我就不需要在?@Juriy内部使用{rdelim}etc;缺点是,如果要在内部使用模板变量,必须执行
{/literal}{$varname}{literal}
。。。如果您不需要模板变量,那么literal就可以了。它比{literal}{/literal}混乱要好得多。不幸的是,它不适合我的情况,因为我已经有很多旧模板文件要处理。@Juriy我明白了。嗯,除了使用{literal}排除JS块之外,我看不到解决这个问题的方法。你说的{literal}是什么意思,看起来正是我需要的。如果我用{literal}{/literal}包围js块,那么我就不需要在?@Juriy内部使用{rdelim}etc;缺点是,如果要在内部使用模板变量,必须执行{/literal}{$varname}{literal}
。。。如果你不需要模板变量,文字就可以了。谢谢你的提示,我一定会试试的!谢谢你的提示,我一定会试试的!