2011-05-21 244 views
1

我有一個Zend-Framework應用程序。我正在使用Zend_Controller_Front提供的模塊結構。這裏是我的目錄結構的小摘錄(只適用於該問題的重要組成部分):修改Zend_ViewHelper_Pagination_Controller部分路徑

root-directory 
- modules 
    - blog 
    - views 
     - scripts 
     - index_index.phtml 
- views 
    - pagination_control.phtml 

正如你可以看到我有看法的腳本是特定於模塊/控制器/動作。這些觀點都位於相應的路徑(在這種情況下,像modules/blog/views,我也得到了坐落在我的應用程序的根direcetory更普遍的看法目錄。

我現在正在做的是調用PaginationControl - 查看幫助器modules/blog/views/scripts/index_index.phtml。然而,這個View-Helper會渲染一個局部視圖,如你所知。ViewHelper試圖在同一個目錄中定位局部視圖(意思是modules/blog/views/scripts。因爲我想使用相同的view-partial-script pagination_control.phtml)在不同的模塊中,我想讓這個視圖 - 從每個模塊都可以部分訪問,所以我想把這個文件放在根目錄下的通用views-文件夾中

然而,不起作用。 ViewHelper總是在相應的模塊文件夾中查找視圖腳本。

任何人都可以幫助從我的通用views目錄訪問嗎?

回答

3

正如你可以看到here,由於ZF 1.6.2分頁控制可以採取陣列而不是字符串用於部分參數,此數組中設置第一部分和在第二模塊名的名稱。這仍然是無證

使用數組可以指定一個模塊('common'?)供部分使用。

實際通話將(與$部分的第三個參數的paginationControl()視圖助手):

$this->view->partial($partial[0], $partial[1], $pages); 

這是有用的,如果你有一個「共同」模塊。

現在,您正在使用共享文件夾。您shoudl已經安裝了它作爲您的Zend_View這樣的共享文件夾(在自舉或代碼的ressource):

$view->addScriptPath("/root-directory/views"); 

或更好:

$view->addScriptPath("/root-directory/views/partials"); 

然後你should'nt需要指定任何模塊目錄。 Zend_View應該始終檢查該文件夾中的部分內容。

+0

非常感謝。我只測試了第二種方法,因爲它就是我想要實現的。我不是一個普通模塊的粉絲。所以第二種方法適用於我:) – 2011-05-21 18:29:35