【问题标题】:Template in Template (.tpl) smarty模板中的模板 (.tpl) smarty
【发布时间】:2011-01-15 17:38:27
【问题描述】:

嘿, 几周以来,我尝试使用 smarty 模板解决方案编写 PHP 应用程序。 现在对所有专业人士来说一个简单的问题: 如何在模板中获取模板? 一个例子: index.php (page.tpl) 包含我的 login.php (login.tpl)

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

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

谁能给我解释一下或者给我一个示例/教程?

对不起我的英语不好

最好的问候

【问题讨论】:

    标签: php smarty


    【解决方案1】:

    该代码正是您想要的。它会让你在模板中包含另一个 smarty 模板。

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

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

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

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

    【讨论】:

      【解决方案2】:

      基本上,您案例中的 login.tpl 文件必须是一个普通的 Smarty 模板(因此它可能包含 html 标签和 Smarty 标签)。您不能包含 Smarty 的另一个控制器。

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

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

      【讨论】:

        猜你喜欢
        • 2012-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 2017-05-19
        相关资源
        最近更新 更多