如何在不触及原始模板文件的情况下从插件中更改智能模板变量

时间:2013-06-14 21:38:40

标签: php smarty

问题在于:

1-我有一个聪明的模板,每个模板名为products.tpl。大约5个文件,每个文件在演示代码中与另一个文件不同。它们都呈现相同的变量,并且具有相同的名称,但位于不同的目录中。

2-我无法访问为这些模板提供变量的应用程序代码。所以我不能在原始应用程序中更改或更改这些变量。

3-我需要检查一些变量并返回取决于变量值的不同代码。

4-我不想触摸模板文件。希望它的代码是一样的。我不想从模板中执行插件功能。

我希望插件在输出之前检查smarty模板,如果模板名为“products.tpl”,并且在某个路径中,插件会检查发送到此模板的变量并修改模板代码并将该代码返回到输出。

它可能看起来像模板覆盖或Prefilters插件。但我不知道这是否可能以及如何开始。

代码示例:

smarty模板文件products.tpl:

<td valign="top" class="textright" nowrap>

{if $product.bid}
{if $product.displayprice}<span class="pricing">{$product.displayprice}</span><br />{/if}
</td>

我想更改产品价格变量而不使用插件触及此模板代码。有可能吗?

0 个答案:

没有答案