1
A
回答
0
第1部分
在ZF2您可以在ActionControllers改變佈局:
public function indexAction()
{
$this->layout('layout/customLayout');
return $viewModel;
}
因此,你必須加入module.config.php一個條目(view_manager部分):
//... configs
'view_manager' => array(
// other configs...
'template_map' => array(
'layout/layout' => 'path to default layout',
'layout/customLayout' => 'path to custom layout',
),
),
第2部分
你有你的服務器上的兩個域名指向同一個源代碼目錄(您ZF2項目):
通過Web服務器配置(nginx的,阿帕奇) ,這兩個請求將被路由到一個IndexController(例如在應用程序模塊中)。默認情況下,路由不依賴於服務器的名稱(主機名)。或者更好地說:它的領域。僅供參考,您可以爲特定的主機名配置路由,但這是無關緊要的;)Web服務器會更改PHP的某些環境變量,例如, $_SERVER
取決於呼叫域。在這個php數組中,您可以檢測當前服務器名稱等細節。在應用程序\控制器\的IndexController 檢測這樣的:
public function indexAction() {
$serverName = $this->getRequest()->getServer('SERVER_NAME');
$layout = ($serverName == 'domain2.com') ? 'layout/customLayout' : 'layout/layout';
$this->layout($layout);
// other stuff
}
0
我做這種東西在我的模塊(Module.php)。在引導方法中,我首先觸發setLayout方法。但首先我需要在template_map中設置我的佈局。然後,我可以根據路線,控制器,主機等更改佈局。我按照特定模式構建路線以便按邏輯分組。 ;)
public function onBootstrap(MvcEvent $e)
{
$app = $e->getParam('application');
$app->getEventManager()->attach(
'dispatch', array(
$this,
'setLayout'
));
}
public function setLayout(MvcEvent $e)
{
$matches = $e->getRouteMatch();
$routeName = $matches->getMatchedRouteName();
$controller = $matches->getParam('controller');
$serverHost = $_SERVER["HTTP_HOST"];
# ... Implement your application logic ...use Switch or sth. ...#
e->getTarget()->layout('layout/layout'); // <-- based on host and your logic
}
相關問題
- 1. 基於瀏覽器加載不同視圖
- 2. 如何確定基於不同域的spring-mvc不同視圖解析器?
- 3. MVC - 根據用戶加載不同的視圖或加載相同的視圖?
- 4. 基於視圖的視圖基於等
- 5. ZF2 - 基於完整路徑在視圖中顯示圖像
- 6. ZF2 - 自定義視圖幫助不加載getServiceLocator
- 7. ZF2如何改變區域視圖
- 8. 登錄時加載不同的視圖
- 9. 加載不同的子視圖
- 10. c#mvc3加載不同的視圖
- 11. 加載不同的旋轉視圖
- 12. iPhone正在加載不同的視圖
- 13. 基於文本域加載XML路徑
- 14. 基於域顯示不同的內容
- 15. 基於表單域的不同頁面
- 16. 從不同域加載div
- 17. 基於屬性加載視圖的背景圖像
- 18. 基於doc域中不同值的基於「AND」的Solr查詢
- 19. 基於ZF2 REST的認證
- 20. 是基於MOVE的ZF2嗎?
- 21. 使用參數加載不同視圖
- 22. 獲取Rails3加載不同視圖
- 23. 從不同的URL,但同一域加載圖像在jsp中?
- 24. 基於iphone視圖的應用程序無需重新加載視圖
- 25. ZF2視圖助手用相同PARAMS
- 26. 基於類的基於Django的視圖
- 27. 基於pref的加載意圖
- 28. 加載基於變量的圖像
- 29. 基於字符串的加載圖像
- 30. 基於一個按鈕在同一個表視圖控制器中加載不同的陣列
如果有幫助,請不要忘記接受一個答案。其他讀者會喜歡它,面臨同樣的問題;) – BenRoob