我是一名php学生,我也是smarty的新手。我知道聪明的语法 在某种程度上,我可以将它用于非常基本的需求。我现在 计划一个社交网络项目,因为它将是一个相当的 复杂的项目我对以下内容并不清楚 开始编码之前的问题:
问题1: 如何为Web的不同部分使用不同的布局 应用。比如说facebook.com。它为其索引页面使用一种布局,为其登录页面使用另一种布局,为其配置文件页面使用另一种布局。如何使用smarty模板执行此操作?如何重用模板并将它们分开并使用它们?
问题2: 如何在基于的智能模板上显示动态错误消息 各种编程决策。例如,再次让我们来看看facebook.com。什么时候 你访问facebook.com并禁用javascript它会显示一条要求启用的消息 JavaScript的。当您在未登录的情况下访问某人的个人资料时,它会在顶部显示不同的标题和注册栏。当您提供错误的登录凭据时,它会在同一模板中显示错误消息。当facebook.com需要做一些公告时 当我们登录主页时,它会显示给用户吗?怎么样 聪明地做这些事情?
问题3:如何处理不同模板的CSS样式。怎么样 使用不同模板的JavaScript?
这些场景可能听起来像普通的但对我而言 信息将像黄金一样。我非常感谢你们中任何人的帮助。如果你能用一些很好的示例代码解释这些东西,那将是对我的巨大支持。
[将非常感谢详细解释]
谢谢
答案 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}