2009-03-04 18 views
16

¿Cómo establecer diferentes diseños de plantillas para diferentes módulos en Symfony?Cómo establecer el diseño de diferentes plantillas para diferentes módulos en Symfony

Tengo una aplicación bancaria que consta de una pantalla de inicio de sesión y una sección de miembro. Entonces, cuando un usuario vaya a mi sitio, se le presentará una pantalla de inicio de sesión. Después de iniciar sesión, se le redirigirá a la sección de miembros para que pueda hacer sus necesidades bancarias.

Entonces, ¿cómo establecer diferentes diseños para la pantalla de inicio de sesión y las páginas dentro de la sección miembro? Symfony parece usar frontend/templates/layout.php como plantilla para TODAS las páginas. ¿Es posible definir diferentes diseños?

Respuesta

42

Sí, puede definir diseños separados por vista (o deshabilitar el diseño por completo). Para hacer esto, debe crear (o editar, si ya lo tiene) el archivo view.yml en el directorio/config de su módulo. Puede definir el diseño que se usará para todas las vistas del módulo o para cada vista por separado. Por ejemplo:

#in /apps/my_app/modules/my_module/config/view.yml 

#this will apply custom_layout to all views of the module 
all: 
    layout: custom_layout 

#this will apply login_layout to the loginSuccess view 
loginSuccess: 
    layout: login_layout 

#disable layout for this view 
homeSuccess: 
    has_layout: false 

En todos los casos, el diseño es el archivo en el directorio de la aplicación/plantillas (con .php anexa). Si no define ninguna directiva de diseño en el archivo de configuración de vista del módulo, se usará el diseño predeterminado.

-1

O si no está dentro de las acciones, se puede utilizar simplemente:

$this->setLayout('name_file_layout_without_extension'); 

Y después se puede trabajar en la plantilla que está utilizando el interior del módulo.

Cuestiones relacionadas