首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从智能模板中使用智能模板?

如何从智能模板中使用智能模板?
EN

Stack Overflow用户
提问于 2012-06-16 23:22:14
回答 2查看 1.6K关注 0票数 1

我遇到了一个有趣的问题。我需要在Smarty模板中使用Smarty模板。

这就是为什么。我对不同的wiki网站使用相同的模板,每个网站都有自己的配置。配置包含主模板的部分(如更改的标题和标题等)。

下面是一个简化的例子。我有一个在所有网站上共享的文件topic-list.template.html

代码语言:javascript
复制
<div id="topics">
  <h1>{$h1}</h1>
  ...
</div>

如您所见,这个模板文件包含一个可以为每个网站定制的<h1>标记。

然后,对于每个网站,我都有一个配置文件,看起来如下(简化):

代码语言:javascript
复制
$config = [
  "h1-titles" => [
      "topics" => "Showing Topics in {\$category}"
  ]
];

如您所见,配置文件包含一个Smarty模板。

因此,当我呈现topic-list.template.html文件时,我必须首先通过$smarty->fetch("string":$config['h1-titles']['topics'])呈现$config['h1-titles']['topics'],然后将它赋值给h1 Smarty变量。我的简化代码如下所示:

代码语言:javascript
复制
$h1_tag = $smarty->fetch("string":$config['h1-titles']['topics']);
$smarty->assign('h1', $h1_tag);
$smarty->display('topic-list.template.html');

我想知道我是否可以以某种方式自动地将$config['h1-titles']['topics']插入到topic-list.template.html文件中,然后它就一次呈现出来了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-17 08:25:06

请看一下字符串模板资源上的文档。您将立即注意到,您的$smarty->fetch('string:…')方法也可以在模板:{include file="string:…"}中完成。

票数 2
EN

Stack Overflow用户

发布于 2012-06-17 07:18:49

我相信{eval}标签可以帮助您:

{eval}用于将变量计算为模板。这可以用于将模板标记/变量嵌入到变量中或将标记/变量嵌入到配置文件变量中。

http://www.smarty.net/docs/en/language.function.eval.tpl

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11067798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档