ikku Posted October 11, 2014 Share Posted October 11, 2014 Hola, Estoy intentando hacer un override segun pone en esta guía: http://www.mundoprestashop.es/blogs/4-como-hacer-override-en-prestashop.html Lo que quiero es modificar el modulo blocksocial, para ello me creo una clase de la forma <?php class blocksocial extends blocksocialCore { public function hookDisplayNav($params){ return $this->hookDisplayFooter(); } } ?> Y la guardo en /override/classes con el nombre de blocksocial.php compilo y no me deja usar ese hook, si lo cambio directamente en la clase si. ¿Que estoy haciendo mal? Gracias Link to comment Share on other sites More sharing options...
joseantgv Posted October 13, 2014 Share Posted October 13, 2014 Blocksocial no es una clase o controlador del core de PS, es un módulo, y no se puede sobreescribir. Tienes que modificar el fichero directamente. Link to comment Share on other sites More sharing options...
ikku Posted October 13, 2014 Author Share Posted October 13, 2014 Los modulos no pueden sobreescribirse? ¿Y si se actualiza el modulo se pierden los cambios? Link to comment Share on other sites More sharing options...
ventura Posted October 13, 2014 Share Posted October 13, 2014 Los modulos no pueden sobreescribirse? ¿Y si se actualiza el modulo se pierden los cambios? No, no se puede hacer override de archivos php de modulos http://doc.prestashop.com/display/PS16/Overriding+default+behaviors Link to comment Share on other sites More sharing options...
ikku Posted November 8, 2014 Author Share Posted November 8, 2014 Y entonces, si actualizo el modulo se perderán los cambios que he hecho en el código? Link to comment Share on other sites More sharing options...
ventura Posted November 8, 2014 Share Posted November 8, 2014 los archivos .php se perderan los demas, .tpl, js, css los puedes sobreescribir guardandolos en la carpeta de tu tema Link to comment Share on other sites More sharing options...
ikku Posted November 8, 2014 Author Share Posted November 8, 2014 Y no hay forma de hacer que esos cambios se mantengan? no se puede hacer un modulo que sobreescriba un modulo o algo asi?? Link to comment Share on other sites More sharing options...
lastapril Posted November 8, 2014 Share Posted November 8, 2014 Es lo que te dice Ventura pero te lo voy a ampliar, los archivos que modifiques los colocas en themes/tutema/modules/blocksocial, si se trata de los css en ese caso lo tendras que colocar en themes/tutema/css/modules/blocksocial Link to comment Share on other sites More sharing options...
ikku Posted November 8, 2014 Author Share Posted November 8, 2014 Lo malo es que el que modifico es el php... Link to comment Share on other sites More sharing options...
lastapril Posted November 8, 2014 Share Posted November 8, 2014 Si modificas el php colocalo en la primera ruta que te he dicho Link to comment Share on other sites More sharing options...
ikku Posted November 8, 2014 Author Share Posted November 8, 2014 He metido el php en esa ruta, he actualizado el modulo, y adiós cambios... Link to comment Share on other sites More sharing options...
rafaelamargo Posted November 9, 2014 Share Posted November 9, 2014 (edited) El php del módulo no lo puedes sobreescribir en /themes/plantilla/modules/nombre_modulo/ (Es algo que ya esta comprobado y explicado en la misma documentación, ademas de comentado por Prestashop) Lo que yo hago es duplicar el módulo, para que si se actualiza el original no se pierda el php del módulo. Lo que si puedes meter en: /themes/plantilla/css/modules/comosellameelmodulo/ /themes/plantilla/js/modules/comosellameelmodulo/ /themes/plantilla/modules/comosellameelmodulo/ /themes/plantilla/modules/mails/comosellameelmodulo/ son los js, css, tpls, ficheros de idiomas que luego se sobreescriben de los modulos, mails de módulos, Pero el php (clase del modulo) no lo puedes meter ahí, no te va a funcionar, ni antes ni ahora. Edited November 9, 2014 by rafaelamargo (see edit history) Link to comment Share on other sites More sharing options...
rafaelamargo Posted November 9, 2014 Share Posted November 9, 2014 El php del módulo no lo puedes sobreescribir en /themes/plantilla/modules/nombre_modulo/ (Es algo que ya esta comprobado y explicado en la misma documentación, ademas de comentado por Prestashop) Lo que yo hago es duplicar el módulo, para que si se actualiza el original no se pierda el php del módulo. Lo que si puedes meter en: /themes/plantilla/css/modules/comosellameelmodulo/ /themes/plantilla/js/modules/comosellameelmodulo/ /themes/plantilla/modules/comosellameelmodulo/ /themes/plantilla/modules/mails/comosellameelmodulo/ son los js, css, tpls, ficheros de idiomas que luego se sobreescriben de los modulos, mails de módulos, Pero el php (clase del modulo) no lo puedes meter ahí, no te va a funcionar, ni antes ni ahora. Al final creo que te he liado mas de la cuenta. Lo que digo (y te han comentado algunas personas arriba) Es que el fichero: /modules/homefeatured/homefeatured.php Si lo copias en /themes/planilla/modules/homefeatured/ Sera como sino copiaras nada, porque no servira. Hablo actualmente y de los módulos por defecto de Prestashop, otros módulos desarrollado por terceros ya es otro mundo y de eso ya no te puedo hablar. Ahora, si esto lo solucionara prestashop o no, pues eso ya se vera, pero esperemos que saque alguna solución interesante para este asunto. Yo lo que hago siguiendo varias guías que vi, es duplicar el módulo, usar el duplicado y no el original, asi no actualizo el original, y si necesito actualizarlo, veo antes los cambios realizados en github (version developmentde prestashop) para aplicarlos. Link to comment Share on other sites More sharing options...
zeluhouse Posted March 5, 2015 Share Posted March 5, 2015 Y para renombrar una carpeta? Asi: if(!parent::install() OR !rename(_PS_ROOT_DIR_.'/js/tiny_mce',_PS_ROOT_DIR_.'/js/tiny_mce_old') OR !copy(_PS_MODULE_DIR_."/tinymcefull/js/tiny_mce",_PS_ROOT_DIR_.'/js/tiny_mce')) return false; if(file_exists(_PS_ROOT_DIR_.'/cache/class_index.php')) unlink(_PS_ROOT_DIR_.'/cache/class_index.php'); return true; [spam-filter] Link to comment Share on other sites More sharing options...
Recommended Posts