2010-12-01 7 views
6

¿Hay alguna forma de deshabilitar una hoja de estilo en view.yml para una acción específica en Symfony?Deshabilitar hoja de estilo CSS para una acción específica en Symfony

Por ejemplo Tengo esto en mi view.yml:

default: 
    stylesheets: [default.css] 

Quiero ser capaz de hacer algo como:

displaySuccess: 
    stylesheet: [!default.css] 

desactivar default.css en displaySuccess única

¿Es esto posible o tengo que decir explícitamente qué módulos/acciones deberían tener default.css?

Respuesta

14

Se puede quitar o añadir hojas de estilo a un view.yml módulos de la siguiente manera:

displaySuccess: 
    stylesheet: [-default] 

eliminaría default.css de la acción de la pantalla. Simplemente poniendo

displaySuccess: 
    stylesheet: [-*] 

eliminaría todas las hojas de estilo.

1

No estoy 100% seguro, pero creo que el archivo compilado view.yml se procesa antes de la ejecución de la acción. Si eso es cierto, puede hacer:

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

Encuentro view.yml para ser un poco inflexible. Es posible que le resulte más fácil tener una plantilla de "cabeza" global que se incluye en su (s) diseño (es). Luego puede verificar los valores de sfConfig para ver si debe incluir archivos individuales, lo que facilita su activación y desactivación.

+0

n que no funciona, pero creo que tienes razón acerca de la inclusión en el en la plantilla, porque estoy usando un diferente diseño para esa acción de todos modos – dazpinto

2

para eliminar, por ejemplo, innecesario /sfDoctrinePlugin/css/default.css, ¡ahora puede sobrescribir los estilos de back-end con los suyos propios!

tal vez poner en layout.php yout:

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

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