2011-05-21 247 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