哎, 几个星期后,我尝试用智能模板解决方案编写PHP应用程序。 对所有专业人士来说,这是一个简单 如何在模板中获取模板? 一个例子: index.php(page.tpl)包括我的login.php(login.tpl)
在smarty文档中我发现了这个功能:
{include file="$tpl_name.tpl"}
但是我的login.php控制器在哪里?当此函数包含login.tpl文件时, 我只有HTML代码或?
有人可以解释一下这个或给我一个示例/教程吗?
抱歉我的英文不好
最好的问候
答案 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标签的模板来呈现登录表单。