如何添加在配置文件中前端佈置一新,並保持一個管理部分請求被路由之前執行添加不同的佈局
回答
默認情況下,這是不可能的,因爲引導是(顯然) 。引導程序無法知道,如果前端或後端被調用。您可以創建一個FrontControlle -Plugin,它讀取(自定義)配置設置和路由請求,然後設置正確的佈局。
我有完全相同的問題,並通過繼承bootstrap來解決它。所以,我有三個引導文件
- 用戶空間的一個
- 聯繫一個
- 常見的一種
類似的東西在引導文件(它們都可以放置在默認Zend的位置)
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initXXX() {
/* COMMON FOR ALL */
}
/* ... etc ... */
}
class BootstrapAdmin extends Bootstrap
{
protected function _initAdmin1() {
/* specific for admin */
}
/* ... etc ... */
}
class BootstrapUser extends Bootstrap
{
protected function _initUser1() {
/* specific for admin */
}
/* ... etc ... */
}
其中(1)和(2)擴展(3)。如果你願意,我重新創建代碼。
後,在index.php文件:
if ($adminMode) {
$application->setBootstrap(APPLICATION_PATH . '/Name_of_Bootstrap_file.php', 'BootstrapAdmin');
} else {
$application->setBootstrap(APPLICATION_PATH . '/Name_of_Bootstrap_file.php', 'BootstrapUser');
}
我第一次做到了,我放在同一個文件中的所有類Name_of_Bootstrap_file.php,以改變他們在一起,可能會採取不同的方式下次雖然...
希望我幫助。
請讓我知道結構 – aah 2010-11-23 13:52:23
佈局取決於哪些模塊被加載
在我CONFIGS /的application.ini
resources.layout.layout = "default"
resources.layout.pluginClass = "Core_Controller_Plugin_ModuleBasedLayout"
然後我的插件
<?php
class Core_Controller_Plugin_ModuleBasedLayout
extends Zend_Layout_Controller_Plugin_Layout
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$this->getLayout()->setLayoutPath(
Zend_Registry::get('config')->resources->frontController->moduleDirectory
. DIRECTORY_SEPARATOR . $request->getModuleName() . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'layouts');
}
}
,並在我的bootstrap.php
protected function _initConfig() {
Zend_Registry::set ('config', new Zend_Config ($this->getOptions()));
}
我的佈局存儲在視圖/佈局/ default.php
想到我會用我的解決方案。這假定「管理員」部分是一個模塊。
我已經開發了一個動作助手比可以根據模塊的名稱和配置交換機佈局 - ModuleLayoutLoader
您可以從您的配置文件使用關聯ModuleLayout應用程序資源插件配置。例如
resources.moduleLayout.admin.layout = "admin"
resources.moduleLayout.anotherModule.layout = "foo"
您還可以設置layoutPath
屬性使用這樣的事情你的模塊的佈局,如果你想保持你的佈局腳本中分離
resources.moduleLayout.admin.layoutPath = APPLICATION_PATH "/path/to/admin/layout"
- 1. 由Ajax「POST」請求渲染布局(Jade)
- 2. MVC3 - 請求被路由到控制器之前是否有單個輸入點?
- 3. 請求頭不會被添加
- 4. 如何在UI路由器中添加後端管理佈局的路由
- 5. 路由請求掛
- 6. java.security.NoSuchAlgorithmException由Spring的RestTemplate執行請求時
- 7. Zend框架 - 最後代碼來執行佈局之前被渲染
- 8. android-在加載主佈局之前加載進度條佈局
- 9. Angularjs路由到不同的佈局頁面使用UI路由器
- 10. 在改變Backbone.js中的路由之前執行一個函數
- 11. Spring - 在Web請求完成之前執行並且RequestMapping get被觸發
- 12. 執行http請求時修改佈局元素
- 13. 路由請求nginx的
- 14. 添加經由膨脹屬性相對佈局被忽略
- 15. 添加註釋路由的要求
- 16. 佈局添加行R
- 17. MVC路由 - 爲什麼我的請求不匹配路由?
- 18. 異常被執行兩次,它被由不同的除塊
- 19. 佈局actionlink路由不正確
- 20. Apache重寫:在每個請求路徑之前添加CGI處理程序?
- 21. 根據前一個請求的角度執行http請求2
- 22. 快遞路由器不適用於發佈請求?
- 23. 在渲染express之前執行函數獲取路由器NodeJS
- 24. Rspec:在路由規範中添加一些頭部請求
- 25. 應用程序請求路由不會路由到同一臺機器
- 26. 通過不同的路由執行相同的SSIS任務
- 27. c#mvc重新路由請求到不同的服務器
- 28. 鐵路路由器找不到名爲「佈局」或「佈局」的模板
- 29. Javascript Promise.all()在函數完成之前執行,node.js請求庫
- 30. axios - 在重試請求之前執行呼叫
是管理部分的模塊? – piddl0r 2010-11-23 11:00:52