Hacer Override en PrestaShop 1.5

15 septiembre, 2014 |

Si te gusta, compártelo ;)

Para hacer override en PrestaShop 1.5 existe una carpeta llamada override en la raíz de nuestro PrestaShop. El override nos permite sobreescibir los archivos originales del nucleo de PrestaShop, de esta forma no se perderán los cambios que podamos hacer en futuras actualizaciones de PrestaShop.

La técnica consiste en copiar (por ejemplo) un archivo de una clase y pegarlo en la carperta override. Los cambios los haríamos en los archivos de la carpeta override, así los archivos originales quedarían intactos.

Para este caso vamos a hacer el override sobre la clase pdf. La estructura de carpetas debe mantenerse al hacer el override

Ruta carpeta clases de prestashop
Ruta carpeta override de prestashop

…como podemos ver en las imágenes de arriba mantenemos la estructura ../clases/pdf

En este caso vamos a hacer el override sobre el archivo HTMLTemplate.php; simplemente copiamos HTMLTemplate.php en ../prestashop/override/clases/pdf

Haciendo el override

Haciendo esto los cambios que hagamos en el archivo HTMLTemplate.php del override prevalecerán sobre el archivo original.

Si hemos hecho override sobre un archivo, y debiera verse algún cambio en el Front-office, y éste no fuera visible, debemos borrar el archivo ../prestashop/cache/class_index.php. Una vez borrado, recargamos la página en el navegador y ahora sí que deberían verse los cambios. El archivo ../prestashop/cache/class_index.php se regenera automáticamente al recargar la página en el navegador, por lo tanto no hay peligro en borrar este achivo. Haciendo esto debería funcionar.

Override sobre un módulo

También podemos modificar un módulo alojado en nuestro tema sin afectar a los originales. Para ello debemos copiar el archivo original en la ruta que corresponda y modificarlo como nos plazca.

  • Plantillas (tpl)
    prestashop/themes/mi-tema/modules/nombre-modulo/nombre-archivo.tpl
  • JavaScript (js)
    prestashop/themes/mi-tema/js/modules/nombre-modulo/
  • Css (css)
    prestashop/themes/mi-tema/css/modules/nombre-modulo/
Si observamos que las rutas aquí indicadas no se corresponden con la de nuestro proyecto debemos crear las correspondientes carpetas. Por ejemplo, es posible que la carpeta modules no aparezca en la ruta prestashop/themes/mi-tema/css/

Pues simplemente creamos modules/nombre-modulo/ y copiamos ahí nuestro css.

Quedando la ruta así:

prestashop/themes/mi-tema/css/modules/nombre-modulo/archivo.css.

1 comentario:

  1. Mil gracias..
    Voy a empezar a extender la clase address para quitar algunos campos...

    ResponderEliminar