2011-09-24 113 views
1

我是一个PHP的学生,我也是新来的smarty.I知道smarty语法 在某种程度上,我可以使用它的基本needs.I当前 规划在社交网络项目并且这将是一个相当复杂的 项目,我没有开始编码之前以下 问题有清醒的认识:动态页面布局与Smarty模板


问题1: 如何使用不同的布局网络的不同部分 申请。例如说facebook.com。它为其索引页面使用一种布局,另一种使用其登录页面,另一种用于其配置文件页面。如何用smarty模板做到这一点?如何重用模板并将它们分开并使用它们?


问题2: 如何显示基于 各种编程决定Smarty模板动态的错误消息。例如,再次让我们看看facebook.com。当 当您访问facebook.com并禁用javascript时,会显示一条消息,要求启用 javascript。当您未登录时访问某人的个人资料时,会在顶部显示不同的标题和注册栏。当您提供错误的登录凭证时,它会在同一模板中显示错误消息。当facebook.com需要向其用户发布 时,它会在我们登录我们的主页时显示出来?如何 与smarty做这些事情?


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


这些情况听起来似乎像普通的,但对我来说, 信息会像金子。我非常感谢你们任何人的帮助。如果你可以用一些很好的示例代码来解释这些东西,那对我来说将是一个巨大的支持。

[详细解释将不胜感激]

谢谢

回答

1

正如你所知道的Smarty是一个模板引擎,

对于你的问题1:

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

实施例:

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

或可以根据传递给TPL的条件包括合适的TPL文件。 例子:

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

然后在第三方物流,可以包括适当的TPL文件如下

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

对于你的问题2: 您可以将错误的TPL并能显示它作为如下

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

然后在第三方物流

enter code here 

{$error}