thelion_99 Posted June 25 Share Posted June 25 (edited) Buen día. Espero que alguien me pueda ayudar con la situación que se me esta presentando en este momento. Anteriormente venia trabajando en PrestaShop, en su versión 1.7.5.2. Pero estoy intentando actualizar mi sistema, entonces pensé en utilizar PrestaShop 8, por lo cual realice la instalación en un servidor de pruebas, en el cual instale la versión 8.0.4 En mi sistema anterior tenia una modificación en los archivos base, para que el modulo de proveedor almacenara un par de campos mas que necesitaba. Ahora en esta nueva versión quiero volver a hacer lo mismo, pero al modificar los mismos archivos no veo que sea efectivo el nuevo campos en mi formulario de creación y edición de proveedor, como si sucedía antes. No se por que pasa esto, pero a continuación doy un ejemplo de como lo conseguí en la anterior versión de PrestaShop. Supplier.php: Agregue mis campos nuevos en los atributos de la clase Y adicione los mismos nuevos campos al objeto definition. AdminSuppliersController.php: Dentro de la funcion renderForm(), hay un atributo que se llena el cual se llama "fields_form", que se llena con arreglos. En este apartado agrego la información referente a mis nuevos campos. Ademas de esto, es necesario que los nuevos ca,pos existan en la tabla suppliers en la base de datos. Agradezco su ayuda... Edited July 3 by thelion_99 add tags (see edit history) Link to comment Share on other sites More sharing options...
aixos Posted June 27 Share Posted June 27 Hola si estas en un entorno de pruebas podías probar con la última versión Prestashop 8.1.7 Saludos Link to comment Share on other sites More sharing options...
thelion_99 Posted June 27 Author Share Posted June 27 Hola Actualmente se me sigue presentando el inconveniente a pesar de que actualice a la 8.1.2 (me dio la impresión que era de las mas estables, sin ser excesivamente reciente). Este mismo ejemplo lo realice con la entidad de Carrier. En ese caso modifiqué 3 archivos: -Carrier.php -AdminCarrierController.php -AdminCarrierWizardController.php Los cambios los hice prácticamente en las mismas funciones, a diferencia de las propias del "AdminCarrierWizardController", Pero en este caso si obtuve lo que quería siguiendo los mismos pasos. No estoy seguro si cambio algo en la generación del formulario de creación de la entidad de Supplier, a diferencia de la de Carrier. Si alguien tiene algún indicio de por donde debo probar, lo agradezco mucho... Saludos.. Link to comment Share on other sites More sharing options...
ventura Posted June 28 Share Posted June 28 Todavía continua el proceso de migración que se esta haciendo en prestashop del formato anterior (Legacy) de controladores, enrutado y clases. Con rutas tipo: /index.php?controller=AdminCarriers&token=38b53a65fcc2009e15b8651b17053d3d al framework Symfony (Moderno) . Con rutas del tipo index.php/sell/catalog/products-v2/?_token=N2z09weH3JldTbHo-11R7hqkxgObaD5l3_aVue7apUo https://devdocs.prestashop-project.org/8/development/architecture/legacy/legacy-controllers/ En cualquier caso siempre se recomienda no modificar directamente los archivos del core. Existen métodos mas apropiados para ello https://devdocs.prestashop-project.org/8/modules/concepts/overrides/#class--controller-override https://devdocs.prestashop-project.org/8/modules/concepts/controllers/admin-controllers/override-decorate-controller/ 1 Link to comment Share on other sites More sharing options...
thelion_99 Posted June 28 Author Share Posted June 28 Hola Ventura Gracias por contestar. Durante las ultimas semanas que he venido tratando este problema que se me esta presentando, he validado tal como me lo comentas, que la mejor opción para estos casos es utilizar la variante de los override (De hecho en los últimos días he aprendido mucho de como funcionan y su uso), y las he utilizado tanto para Carrier (En este casi si funciona con Override) como para Supplier (Aquí no funciona con override). Al escribir en el foro, preferí no comentar que lo estaba haciendo en override, para evitar perder el foco del error, y que no buscáramos errores en el override, sino en los archivos Core, para mas adelante migrar esta modificación ya funcional al override. La información que me pasaste fue muy útil, y llegue al GitHub de PrestaShop Dev, donde encontré un ejemplo que quizá me ayuda en lo que necesito.https://github.com/PrestaShop/example-modules/tree/master/demoproductform Creo que en este enlace intentan especificar como agregar un nuevo campo a una entidad que esta en la nueva versión de Symfony. El problema es que no lo entiendo. Agradezco si alguien que comprenda mejor este nuevo sistema, me ayude con mi problema. Mientras seguiré buscando en mas documentación... Quedo atento a sus comentarios. Link to comment Share on other sites More sharing options...
ventura Posted June 29 Share Posted June 29 @thelion_99 Por si te puede servir de referencia https://github.com/venturaproject/suppliersfields 1 Link to comment Share on other sites More sharing options...
thelion_99 Posted July 2 Author Share Posted July 2 Hola @ventura Gracias por tomarte el tiempo de ayudarme con ese ejemplo, prácticamente está todo lo que necesito. Voy a dedicar un poco de tiempo a solucionar el tema de que no se almacene el valor de estos nuevos campos en mi base de datos al registrar un nuevo proveedor. De igual manera, si quizá consigues solucionar esto antes que yo, te agradezco infinitamente. La idea es dejar solucionado este problema, en favor de la comunidad. Link to comment Share on other sites More sharing options...
ventura Posted July 3 Share Posted July 3 @thelion_99 He añadido modificaciones, si es posible descargarlo de nuevo y vuelve a instalarlo. Una vez instalado revisa que se haya creado correctamente el override de Supplier en prestashop/override/classes. En caso de que no se haya creado en la instalación, desactiva y vuelve a activar el módulo Es recomendable borrar el cache de la instalación desde Parámetros avanzados -> Rendimiento -> Borrar cache 1 Link to comment Share on other sites More sharing options...
thelion_99 Posted July 3 Author Share Posted July 3 Hola @ventura Gracias por tu colaboración, ya realicé mis validaciones y me di cuenta de que estaba teniendo problemas para verificar tus modificaciones, ya que tenía código escrito en la carpeta PrestaShop/Override que no se estaba dejando sobreescribir al instalar el módulo. Realice una reinstalación de mi tienda, y todo funciona según lo requerido. Veo los 2 nuevos campos, y al almacenarlos y editarlos, se evidencian los cambios en mi base de datos. Para resumir, me ayudaste a solucionar un problema en que estaba enrollado varias semanas, en muy pocos días. Así que te lo agradezco mucho... Link to comment Share on other sites More sharing options...
ventura Posted July 3 Share Posted July 3 Me alegro de que te haya servido de ayuda. Un saludo 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now