2010-12-01 50 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'); ?>