2011-12-08 4 views
7

¿Cómo puedo agregar un guardar y volver a la lista botón en la vista para crear un nuevo registro? En general, quiero más botones, así que estoy buscando una respuesta genérica.Symfony admin generator-- un botón para guardar y volver a la lista

EDIT: generador predeterminado me proporciona dos botones:

  1. Guardar
  2. de guardar y añadir

quiero un botón que saves and takes me back to the list. Y también quiero un botón personalizado con una acción personalizada.

Voy a explicar la situación real:

Tengo una lista de acciones create que me lleva a una forma que tiene algunos campos de entrada. Ahora quiero hacer una imagen usando los datos de estos campos. Quiero mostrar esta imagen como vista previa en el lado derecho del formulario. Para eso necesito un botón de vista previa para que cada vez que se presiona, envía los datos a sí mismo para una vista previa y modificaciones adicionales.

Espero que esté más claro ahora.

+0

¿Podría explicar mejor su pregunta? ** Los botones Guardar ** y ** Volver a la lista ** están habilitados de forma predeterminada en un formulario. ¿Dónde quieres insertar más botones? ¿Necesitas también botones con acción personalizada? – macgyver

+0

@macgyver: He actualizado la pregunta. – prongs

Respuesta

8

primero tiene que añadir en generator.yml sus save_and_back_to_list y otros encargo my_other_action acciones:

config: 
     actions: ~ 
     fields: ~ 
     list: ~ 
     filter: ~ 
     form: ~ 
     edit: 
     actions: 
      _save: ~ 
      _list: ~ 
      save_and_back_to_list: ~ 
      my_other_action: ~ 
     new: 
     actions: 
      _save: ~ 
      _save_and_add: ~ 
      _list: ~ 
      save_and_back_to_list: ~ 
      my_other_action: ~ 

Entonces usted tiene que añadir sus funciones de ayuda personalizados para crear los botones en /apps/myapplication/modules/mymodule/lib/mymoduleGeneratorHelper.class.php

public function linkToSaveAndBackToList($object, $params) 
    { 
    return '<li class="sf_admin_action_save_and_back_to_list"><input type="submit" value="'.__($params['label'], array(), 'sf_admin').'" name="save_and_back_to_list" /></li>'; 
    } 

    public function linkToMyOtherAction($object, $params) 
    { 
    return '<li class="sf_admin_action_my_other_action"><input type="submit" value="'.__($params['label'], array(), 'sf_admin').'" name="my_other_action" /></li>'; 
    } 

Ahora Obtenga dos botones de envío en el formulario New y Edit.

Finalmente tiene que anular la función processForm(sfWebRequest $request, sfForm $form), que puede encontrar en /cache/dev/modules/autoMymodule/actions/actions.class.php, para administrar sus nuevas acciones de envío. Supongo que su función create anula el generador de administrador.

Espero no me olvide nada.

+0

en realidad mi 'create' no está anulando el predeterminado, voy a cambiar el nombre a otra cosa. pero entendí la idea – prongs

+0

¿qué significa '__'? – prongs

+0

Las acciones proporcionadas por el generador de administración comienzan con un guión bajo, pero no en la clase de acción. Supongo que esta regla de Symfony tiene como propósito obtener una separación de las acciones del usuario. – macgyver

Cuestiones relacionadas