2009-09-29 42 views
1

在我的應用我有3列如何重複使用ZF方法看待

********************************************************* 
*              * 
*              * 
********************************************************* 
*  *        *    * 
*  *        *    * 
* sidea *   content    * sideb  * 
*  *        *    * 
*  *        *    * 
*  *        *    * 
*  *        *    * 
*  *        *    * 
*  *        *    * 
********************************************************* 
*              * 
*              * 
********************************************************* 

凡頭和sideb是該網站的大部分類似下面的經典模板(B面的內容依賴於用戶的狀態,所以他們需要呈現動態),併爲每個控制器改變內容。

由於我是新來的ZF(1.9),我有一些困難,實現這樣的設置,其中腳本觀點重用常用方法(對於sideb),並有動態內容注入3個不同的地方。有人可以提示任何教程/代碼示例?

在此先感謝。

編輯

Zend_Layout的文件多了一些更深層次的閱讀器和其他一些鏈接(即this post)我發現我應該集中精力我在Zend Framework的複合視圖模式的方向研究,特別是Zend_View_helper_partial後。也許以下兩個鏈接能夠給我一個手(和其他人搜索同樣的事情)

Link 1 Link 2

回答

2

看起來像你需要的佈局。看看Zend_Layout文檔頁面,看看是否達到你想要的。

看看這個webinar的信息在什麼是可能與Zend_Layouts

0

我會呼應你正在尋找的是一個佈局。通過佈局,您可以讓控制器將視圖渲染到不同的「內容」區域。

將此功能與「將一個控制器轉發」到另一個控制器的功能結合起來,請求的主控制器可以將一個視圖(或多個視圖)呈現到內容佔位符中,然後轉發給呈現(如果需要)側邊欄/頁眉/頁腳。

對於不要需要這些元素(例如文章控制器的'print'動作),您可以禁用佈局並正常渲染視圖(不需要轉發到其他控制器)。

+0

關於轉發:我已經在文檔中看到它(或者它是類似的$ this-> action),在我看來這對於這種事情來說太重了。我認爲嵌套的部分視圖更容易管理(對我和設計師而言)。檢查我的帖子中的第二個鏈接,它講述了「爲什麼我們不應該使用操作堆棧」,它也可以應用於_forward。 – Alekc 2009-09-30 07:14:16

+0

快速瀏覽了文章,我完全不同意(或不同意)。我認爲動作堆棧的概念很好 - 也許執行不太多。對我而言,它並不適用於Web應用程序,而是一個網站,您可以在主要內容區域使用單個控制器,但應該加載不同(有時不相關的數據)的邊欄/其他內容區域。也許這一切都可以用視圖助手來完成,我只是認爲像動作堆棧這樣的東西會有意義。 – 2009-09-30 15:41:39

+0

'生存下去'的第3章(http://www.survivethedeepend.com/zendframeworkbook/en/1.0/the.model)非常豐富。我必須承認,我並沒有繞過控制器(對於讀取函數,所有需要發生的是負載模型來查看),並使用視圖幫助器。 – 2009-09-30 18:06:57

1

僅使用yout查看腳本來渲染頁面的內容。

利用Zend_Layout的渲染頁面的其餘部分,從佈局調用視圖助手來填充你的左邊和右邊的側邊欄。

如果你的「SIDEA」綁定到當前的行動/控制器,你可以使他們的動作視圖腳本,並呼籲從佈局中「sideb」視圖助手。

你當然也可以使您的視圖腳本的不同反應段不同的部分,並使用佈局文件放到哪裏你希望它是響應片段。

向多個控制器/操作轉發正如Alekc爲您的應用程序的性能寫了一個巨大的影響,在這種情況下是非常不必要的。