2011-05-17 48 views
1

我有一個單應用程序frontend的symfony 1.4項目。此應用程序具有單個模塊book,單個操作index在同一個symfony應用程序中針對不同視圖的不同佈局

我有兩個索引操作的模板:indexSuccess.mobile.phpindexSuccess.html.php。該操作將設置格式以便調用這些模板中的一個或另一個。

我想爲這兩個模板中的每一個使用不同的佈局:layout.mobile.phplayout.html.php。文件apps/frontend/modules/book/config/view.yml文件用於指定要使用的佈局以及佈局中包含哪些CSS和JavaScript文件。

由於只能有每個模塊一個view.yml文件,我怎麼配置view.yml使indexSuccess.mobile.php使用layout.mobile.php並加載相應的CSS和JS文件,而indexSuccess.html.php使用layout.html.php和負載相應的CSS和JS文件?

我想使用佈局,因爲我最終會將更多的動作/模板添加到此模塊中。

回答

4

您可以使用您的操作的setLayout()方法來實現此目的。 更新爲css和js文件,您也可以使用該動作(請致電sfWebResponse::addStylesheet()sfWebResponse::addJavascript())。 如果你完全想從view.yml做到這一切,最好的辦法是改變模板名稱(在你的動作中返回一個不同的後綴)

+0

這解釋瞭如何爲特定操作定義佈局,但它並沒有回答我如何使用單個文件'view.yml'來配置多個佈局的問題。請記住,'view.yml'包含佈局的配置信息,比如包含什麼樣式表,什麼樣的JavaScript文件等等。 – rlandster 2011-05-17 20:20:58

+1

@rlandster:我認爲不可能根據'sf_format'配置佈局從'view.yml'的基礎,因此我的解決方案 – greg0ire 2011-05-17 21:06:32

0

我沒有測試,但似乎它的伎倆:

<?php 
    // in indexSuccess.mobile.php 
    decorate_with('layout.mobile'); 
相關問題