0

我有一个 .tpl 文件,其中包含 %% 变量。

例子:

%%GLOBAL_Error%%

这是一个聪明的模板引擎文件吗?

我想检查这个变量是否不为空,但我不能用常规的 smarty 语法来做到这一点。

{if isset($GLOBAL_Error) }

我怎样才能做到这一点?

我得到回复说这是 Twig 模板引擎:S

4

2 回答 2

1

可能是,但可能不是。Smarty 标记分隔符是可配置的,因此开发人员可以将它们设置为%%%%GLOBAL_Error可能不是变量,而是没有参数的函数调用。在这种情况下,您需要类似:

%%if (%%GLOBAL_Error%%) %%

不过,这是一些非常难看的语法。它可以是任何东西,可能是在模板编译之前或之后用于某些搜索/替换的字符串标记。如果您已经在使用带有标准分隔符的 Smarty,那么 Smarty 不太可能%%GLOBAL_Error%%会解析它——它甚至可能是错误或旧代码的遗留物。唯一确定的方法是询问作者或查看代码库。

于 2012-06-26T13:41:50.390 回答
1

默认情况下,smarty 使用{and}作为分隔符。因此,您可以编写代码:

{if $GLOBAL_Error}{/if}

但是分隔符可以更改为%%,并且代码必须采用以下形式:

%%if $GLOBAL_Error%%%%/if%%

另见:http ://www.smarty.net/docsv2/en/language.escaping.tpl

于 2012-06-26T13:46:44.343 回答