Prestashop

Agregar nueva opción en ‘Acciones Agrupadas’ de Prestashop

Agregar nueva opción en ‘Acciones Agrupadas’ de Prestashop. En PrestaShop cuando se crea un AdminController se crea una tabla con todos los registros, y sus respectivos filtros. Si desea obtener otras opciones se puede programar una opción en el menú dropdown.

Agregar nueva opción en ‘Acciones Agrupadas’ de Prestashop

Si observamos un CRUD de productos o en algún modulo que estemos desarrollando en PrestaShop observaremos que posee opciones en una lista desplegable que hace referencia a la tabla y está por debajo de la tabla, en ‘Acciones agrupadas‘ vienen algunas acciones que aplica a todo lo seleccionado y/o filtrado.

Primer paso: Crear controlador

Podemos trabajarlo desde las opciones de PrestaShop o programarlo desde un módulo personalizado, en este ejemplo veremos de como estructurar y/o implementar en el controlador.

¿Es posible añadir una nueva acción a este dropdown>?

La respuesta es un sí, solo tenemos que agregar un bulk_actions  dentro de nuestro constructor

Editamos este fichero que contendrá nuestro controlador.

<?php

class AdminOrdersController extends AdminOrdersControllerCore
{
    public function __construct()
   {
   parent::__construct();
   }
}

Segundo paso.- Identificar el constructor

Una vez identificado el constructor  debemos añadir nuestra modificación y la nueva action bulk, se recomienda añadir el bulk ya existente

Cambiaremos la función construct() por esta

public function __construct()
{
   parent::__construct();


   $this->bulk_actions = array(
   'updateOrderStatus' => array('text' => $this->l('Change Order Status'), 'icon' => 'icon-refresh'),
   'nueva_accion' => array('text' => 'Texto de la nueva accion', 'icon' => 'icon-refresh'),
   );
}

Tercer paso: Añadir la función

Una vez se ha añadido la acción “nueva acción” deberemos añadir la función que llamara cuando seleccionemos esta acción en el controller

protected function processBulknueva_accion(){

//aqui tu codigo

//fin de codigo personalizado

}

Resumiendo, con otro ejemplo

Dentro del controlador, en el constructor. Basta con añadir:

$this->bulk_actions = array(
   'report' => array(
   'text' => $this->l('Descargar informe')
)
);

Donde report es el nombre que recibirá la función enlazada.

Y creamos el siguiente método, que se ejecutara al hacer click en la nueva acción:

protected function processBulkReport()
{
// Con $this->boxes recogemos todo el array de elementos seleccionados.
}

Accederemos al controller que hemos modificado y veremos que ya tenemos nuestra nueva acción bulk

Conclusiones y recomendaciones

En este articulo hemos implementado opciones a la lista desplegable. Además, hemos creado una función para que esté vinculado a esa opción.

Por lo tanto, es esa función podemos darle las características necesarias para que la opción funcione según nuestras necesidades.

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba