En este artículo vamos a hablar sobre la creación de módulos en Prestashop 1.7 y más concretamente hablaremos sobre la creación de campos personalizados en formularios de edición. Cuando estamos creando módulos en Prestashop, la creación de formularios de edición es fundamental, ya que mediante esta edición podemos interactuar con los datos que guardamos: leerlos, actualizarlos… Para la creación de formularios de edición en Prestashop, necesitamos utilizar la clase HelperForm. Esta clase nos ofrece unos tipos de campos concretos: ‘text’, ‘select’, ‘textarea’, ‘radio’, ‘checkbox’, ‘file’, ‘shop’, ‘asso_shop’, ‘free’, ‘color’. Esta sería una declaración de campo básico, campo de texto, para un formulario de edición: [crayon-6766bc752f091146572840/] Pero además de crear campos básicos, puede que necesitemos crear algún tipo de campo especial, que podamos personalizar, para que trabaje de una forma concreta… distinto a los que Prestashop nos ofrece por defecto. Esto se realizaría de la siguiente forma para módulos creados utilizando “Modelo – Vista – Controlador”. La estructura MVC se encarga de separar la lógica de negocio de la interfaz de usuario, para seguir esta estructura en la creación de módulos, tendremos que crear las siguientes carpetas dentro del módulo: mimodulo/models mimodulo/views/templates/admin/_configure/helpers/form mimodulo/controllers/admin El ejemplo que vamos a mostrar, crea un campo personalizado, que nos servirá para seleccionar artículos con un ‘autocomplete’ y retornarlos en el mismo campo personalizado, para posteriormente excluirlos en un proceso concreto. Sigue estos sencillos pasos: 1.- Dentro de la carpeta del controlador (mimodulo/controllers/admin/AdminAvanzaTestController.php), donde creamos el formulario de edición, introducimos el siguiente código: [crayon-6766bc752f098591330656/] Este código nos crea un campo llamado AVANZA_TEST_PERSONALIZADO, el cual vamos a personalizar en el siguiente paso. 2.- Dentro de la carpeta de vista (mimodulo/views/templates/admin/_configure/helpers/form/form.tpl) introducimos el siguiente código, que será el que nos dé los datos a mostrar y la funcionalidad autocomplete del campo. [crayon-6766bc752f09b971039082/] 3º.- El tratamiento de estos datos se realizaría de nuevo en la carpeta del controlador (mimodulo/controllers/admin/AdminAvanzaTestController.php). Introducimos el siguiente código: [crayon-6766bc752f09e440004205/] De esta forma hemos conseguido crear un campo de una forma y características concretas… y de forma relativamente sencilla. Al igual que hemos creado este campo, podemos crear cualquier otro campo que necesitemos dándole las características y funcionamiento necesarios.
Más info