假设我们有3个带有mysql记录的数组,例如:
我希望将数据显示为所有情况下的HTML表,因此我将创建一个名为" order-table.tpl"的新TPL。并通过参数i将mysql行数据发送到模板文件。我可以这样称呼它:
{include file="order-table.tpl" rows=$pending_rows}
{include file="order-table.tpl" rows=$processing_rows}
{include file="order-table.tpl" rows=$last_shipped_rows}
这个例子可以创建3个包含正确数据的表,但有没有其他方法可以在模板文件中定义模板文件?我不想每次都制作新的TPL文件。我想在TPL文件中创建一些定义,然后多次调用它。
答案 0 :(得分:0)
似乎creating function是正确的解决方案。 你可以这样创建函数:
{function name="hello" nickname="Mr. Unknown"}
Hello, {$nickname}!
{/function}
并以这种方式称呼它:
{call hello nickname="Manny"}
它与模板完全相同,但您不必在新文件中定义它。
答案 1 :(得分:0)
如果我是你,我宁愿留在第一个解决方案。这是使用Smarty的最自然的解决方案。您可以创建文件并将其包含在任何您想要的位置。如果您决定要在另一个模板文件中使用此代码,会发生什么?可能您必须将此代码复制到另一个文件中,或者最终您执行与开头相同的操作 - 创建文件并将内容复制到其中。
在开发应用程序时创建多个文件是正常的事情,在我看来,没有理由在必要时避免创建新文件。