【问题标题】:Dynamic page layouts with Smarty Templates使用 Smarty 模板的动态页面布局
【发布时间】:2011-09-24 09:59:25
【问题描述】:

我是一名 php 学生,我也是 smarty 的新手。我知道 smarty 语法 在某种程度上,我可以将它用于非常基本的需求。我目前 计划一个社交网络项目,因为这将是一个相当大的 复杂的项目我对以下内容没有清晰的了解 开始编码前的问题:


问题 1: 如何为网页的不同部分使用不同的布局 应用。例如说 facebook.com。它的索引页面使用一种布局,登录页面使用另一种布局,个人资料页面使用另一种不同的布局。如何使用 smarty 模板做到这一点?如何复用模板并分离使用?


问题 2: 如何在 smarty 模板上显示动态错误消息 各种编程决策。例如,让我们再看看 facebook.com。什么时候 您在禁用 javascript 的情况下访问 facebook.com,它会显示一条消息,要求启用 javascript。当您在未登录的情况下访问某人的个人资料时,它会在顶部显示一个不同的标题和一个注册栏。当您提供错误的登录凭据时,它会在同一模板中显示错误消息。当 facebook.com 需要做一些公告时 当我们登录到我们的主页时,它会显示给它的用户吗?如何 用 smarty 做这些事情?


问题 3:如何处理不同模板的 css 样式。如何 在不同的模板中使用 javascript?


这些场景听起来很普通,但对我来说 信息将像黄金。我非常感谢你们看到这一点的任何人的帮助。如果你能用一些很好的示例代码解释这些东西,那将是对我的巨大支持。

[详细解释将不胜感激]

谢谢

【问题讨论】:

    标签: javascript css templates layout smarty


    【解决方案1】:

    你知道 smarty 是一个模板引擎,

    对于你的问题 1:

    你可以通过调用函数display()来决定显示哪个模板;

    例子:

    $smarty->display("header1.tpl");
              $smarty->display("header1.2pl");
          etc..
    

    或者您可以根据传递给 tpl 的条件包含适当的 tpl 文件。 示例:

    $smarty->assign("type",$type);
    

    然后在 tpl 中,可以包含相应的 tpl 文件,如下所示

    {if $type=='condition1'}
      {include file="file1.tpl"}
    {elseif $type=='condition2'}
    {include file="file2.tpl"}
    {/if}
    

    对于您的问题 2: 您可以将错误发送到 tpl 并显示如下

    $smarty->assign("error",$errroMessage);
    

    然后在tpl中

    enter code here
    
    {$error}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 2015-06-23
      • 2020-10-10
      • 1970-01-01
      • 2012-06-19
      • 2021-10-25
      相关资源
      最近更新 更多