模板(.tpl)中的模板smarty

时间:2011-01-15 17:38:28

标签: php smarty

哎, 几个星期后,我尝试用智能模板解决方案编写PHP应用程序。 对所有专业人士来说,这是一个简单 如何在模板中获取模板? 一个例子: index.php(page.tpl)包括我的login.php(login.tpl)

在smarty文档中我发现了这个功能: {include file="$tpl_name.tpl"}

但是我的login.php控制器在哪里?当此函数包含login.tpl文件时, 我只有HTML代码或?

有人可以解释一下这个或给我一个示例/教程吗?

抱歉我的英文不好

最好的问候

2 个答案:

答案 0 :(得分:5)

该代码正是您想要的。它将允许您在模板中包含另一个智能模板。

<html>
<head>
  <title>{$title}</title>
</head>
<body>
{include file='login.tpl'}

原始模板可用的所有变量都可用于您刚刚包含的模板。

我不确定你所说的只有HTML代码,也许你想要这个功能:

{include_php file='/path/to/login.php'}

答案 1 :(得分:2)

基本上你的case中的login.tpl文件必须是一个普通的Smarty模板(因此它可能包含html标签以及Smarty标签)。你不能包括Smarty的另一个控制器。

据我了解,您希望在索引页面中添加登录功能。这可以通过以下方式完成:
1)将login.tpl包含到index.tpl中,这样您就可以在索引页面中包含登录表单 2)为您的登录表单指定不同的操作,例如“login.php”,所以这个login.php将是您的登录控制器,它处理所有登录/注销逻辑 3)用户成功登录后,您可以将它们重定向到index.php(或您想要的任何页面)。

因此,您将拥有两个独立的控制器:主控制器(负责索引页面)和登录控制器,负责登录/注销。在这种情况下,login.tpl文件只是一个包含一些html和可能是Smarty标签的模板来呈现登录表单。