我使用的是智能版本2.6.26,并根据文档使用{include'file.tpl'scope ='global'}或{include'child_template.tpl'cope = parent},应该可以访问子模板中包含的变量,并在父模板中使用它们。
作为一个例子,我的子模板中有如下代码:
{capture assign="project_variable" name=project_data scope="global"}
my text data here...
{/capture}
变量{$ project_data}现在可在此模板中使用
在我使用的父(仪表板)模板中:
{include 'child_template.tpl' scope=global}
但如果我尝试在父模板中使用{$ project_data},则会显示为空白。 所以看起来子模板中的变量集只是本地的?
根据以下文件: http://www.smarty.net/docs/en/language.function.include.tpl
“您可以使用包含模板中包含模板的所有变量”。
我在这里想念的是什么? 提前感谢您的任何见解。
答案 0 :(得分:1)
抱歉,但似乎你不能在Smarty2中这样做。我尝试了几种方法,但它不起作用。
Smarty3中没有scope
属性。您查看了Smarty3的文档,您应该查看documentation for Smarty2
答案 1 :(得分:0)
我假设使用{include file ='mytemplate.tpl'}会找到“文件” 但是直到我使用完整的绝对路径,例如: {include file ='/ home / username / public_html / mysite / custom_template.tpl} 并使用以下格式获取变量:{$ smarty.capture.myvariable_name} 所以我回答了我自己的问题,但是Marcin让我走上正轨,所以非常感谢!
我说得太早了。看起来我只能捕获静态文本而不是“{foreach}”循环 任何想法非常感谢