2011-09-24 111 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}