Jump to content
ikku

Override en modulo prestashop 1.6

Recommended Posts

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Los modulos no pueden sobreescribirse? ¿Y si se actualiza el modulo se pierden los cambios?

Share this post


Link to post
Share on other sites

Y entonces, si actualizo el modulo se perderán los cambios que he hecho en el código?

Share this post


Link to post
Share on other sites

los archivos .php se perderan los demas, .tpl, js, css los puedes sobreescribir guardandolos en la carpeta de tu tema

Share this post


Link to post
Share on other sites

Y no hay forma de hacer que esos cambios se mantengan? no se puede hacer un modulo que sobreescriba un modulo o algo asi??

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

He metido el php en esa ruta, he actualizado el modulo, y adiós cambios...

Share this post


Link to post
Share on other sites

 

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 by rafaelamargo (see edit history)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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]

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More