2012-04-24 19 views
5

cómo podemos anular la disposición paquete sonata para una sola clase de administración como he creado 3 administración Clase UserAdmin, productAdmin, ticketAdmin ahora quiero anular edición acción ticketAdmin y edición de plantilla y añadir un poco de código extra ahí.Symfony 2 Plantilla anulación sonataAdminBundle

Respuesta

7

Si no desea crear un controlador adicional, puede utilizar este método mencionado en los documentos:

Admin's documentation - Reference - Templates (master) - 20.6. Configuring templates

services: 
sonata.admin.post: 
    class: Acme\DemoBundle\Admin\PostAdmin 
    tags: 
     - { name: sonata.admin, manager_type: orm, group: "Content", label: "Post" } 
    arguments: 
     - ~ 
     - Acme\DemoBundle\Entity\Post 
     - ~ 
    calls: 
     - [ setTemplate, [edit, AcmeDemoBundle:PostAdmin:edit.html.twig]] 

Y poner la plantilla en Resources/views/PostAdmin/edit.html.twig. Simplemente copie la plantilla original del paquete SonataAdmin y comience a anular.

Blogged en: Override list view twig template in SonataAdminBundle – webDEVILopers Blog

14

Se puede utilizar:

controlador:

custom action in SonataAdminBundle

Plantilla:

// in your admin class 
public function getTemplate($name) 
{ 
    switch ($name) { 
     case 'edit': 
      return 'AcmeMyBundle::my-custom-edit.html.twig'; 
      break; 
     default: 
      return parent::getTemplate($name); 
      break; 
    } 
}