2010-12-01 48 views
6

在Symfony中的特定動作中,是否有任何方法在view.yml中禁用樣式表?爲Symfony中的特定動作禁用CSS樣式表

比如我在我的view.yml得到這個:

default: 
    stylesheets: [default.css] 

我希望能夠做一些事情,如:

displaySuccess: 
    stylesheet: [!default.css] 

在displaySuccess只

禁用default.css

這是可能的還是我必須明確說出哪些模塊/操作應該有default.css?

回答

14

您可以刪除或通過以下操作添加樣式表到模塊的view.yml:

displaySuccess: 
    stylesheet: [-default] 

將從顯示動作刪除default.css。乾脆把

displaySuccess: 
    stylesheet: [-*] 

將刪除所有樣式表。

1

我不是百分百肯定的,但我相信編譯的view.yml文件是在執行動作之前處理的。如果是這樣,你可以這樣做:

public function executeDisplay() 
{ 
    $this->response->removeStylesheet('default.css'); 
} 

我發現view.yml有點不靈活。您可能會發現將全局「頭」模板包含在您的佈局中會更容易。然後,您可以檢查sfConfig值以查看是否應包含單個文件,從而更容易打開和關閉它們。

+0

沒有不工作,但我認爲你是正確的,包括它在的模板,因爲我使用的是不同的無論如何,該行動的佈局 – dazpinto 2010-12-01 15:45:33

2

刪除例如不需要的/sfDoctrinePlugin/css/default.css,現在您可以用自己的覆蓋後端樣式!

也許把它變成YOUT layout.php中:

<?php sfContext::getInstance()->getResponse()->removeStylesheet('/sfDoctrinePlugin/css/global.css'); ?> 

<?php sfContext::getInstance()->getResponse()->removeStylesheet('/sfDoctrinePlugin/css/default.css'); ?>