使用Smarty模板的动态页面布局

时间:2011-09-24 09:59:25

标签: javascript css templates layout smarty

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


问题1: 如何为Web的不同部分使用不同的布局 应用。比如说facebook.com。它为其索引页面使用一种布局,为其登录页面使用另一种布局,为其配置文件页面使用另一种布局。如何使用smarty模板执行此操作?如何重用模板并将它们分开并使用它们?


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


问题3:如何处理不同模板的CSS样式。怎么样 使用不同模板的JavaScript?


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

[将非常感谢详细解释]

谢谢

1 个答案:

答案 0 :(得分: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}