Me gustaría cambiar el módulo prestashop existente sin copiarlo y crear uno nuevo. Sé que es posible anular los archivos .tpl en prestashop, pero ¿es posible hacer lo mismo con las clases php? Por ejemplo, me gustaría cambiar blockcart para que pueda ser enganchado en la parte superior. ¡Como la versión original no tiene ese gancho, necesito cambiar la función de instalación()! No puedo cambiar el archivo original de la fuente (sería una mala idea, ¿verdad ...)? Necesito anular la función install() heredando el módulo blockcart. ¿Es posible hacerlo y dónde puedo encontrar ejemplos?Prestashop - función de anulación en el módulo de prestashop existente
Respuesta
Utilizo mi propia anulación para la clase FrontController para permitir la visualización de la salida del módulo en puntos arbitrarios en archivos tpl, esto significa que el módulo no necesita admitir un gancho en particular. Se implementa a través de un plugin sabelotodo, por lo que puede, por ejemplo, el uso:
{plugin module='blockcart' hook='rightColumn'}
Lo anterior se fuerce el módulo de salida de lo que mostraría si enganchado a la columna de la derecha donde lo anterior se inserta la etiqueta (que puede ser en cualquier lugar en cualquier archivo tpl). Puede "desenganchar" el módulo de la columna de la derecha para que solo se muestre donde lo desea utilizando esta técnica. Lo he usado en un sitio de producción con gran éxito.
Hay una serie de artículos que describen cómo funciona (con el código requerido) disponible en:
En Prestashop 1.4 puede anular las clases principales y las plantillas de módulo Hoy no es posible sobrescribir un archivo php de módulo, pero estamos trabajando en ello.
Desde la versión 1.6.0.11 de PrestaShop, hay una nueva característica que permite a los desarrolladores para anular una clases de instancia del módulo.
Invalidar la clase de instancia de un módulo extendiéndolo Para anular la clase ejemplo de un módulo, hay que extenderla, dando a la clase extendida del mismo nombre y la adición de anulación sufijo:
<?php
if (!defined('_PS_VERSION_'))
exit;
class BlockUserInfoOverride extends BlockUserInfo
{
public function hookDisplayNav($params)
{
return '<div class="header_user_info"><a>Test</a></div>';
// return $this->display(__FILE__, 'nav.tpl');
}
}
Fuente: http://build.prestashop.com/howtos/module/how-to-override-modules/
- 1. Crear producto de un módulo de prestashop
- 2. Prestashop - cesta precio total
- 3. PrestaShop vs Shopify
- 4. Prestashop sin errores/página en blanco
- 5. Menú Prestashop no hay subcategorías
- 6. Prestashop no puede iniciar sesión en admin
- 7. Prestashop: agregar productos a un nuevo carro
- 8. Prestashop en comparación con Zen-Cart y osCommerce
- 9. Como llegar url del tema actual en el archivo .tpl de prestashop y
- 10. Evitar anulación de función en Python
- 11. Anulación declaración de la función en autodoc para esfinge
- 12. Anulación de función y dominio C++
- 13. Llamada a la función anulada de la función de anulación
- 14. Variación y anulación de la función Scala
- 15. Anulación explícita de la función virtual
- 16. Anulación de la función sobrecargada de una base en C++
- 17. función de composición y el módulo funcional
- 18. Cómo vincular al módulo existente de boost python
- 19. Cómo importo un módulo CVS existente en un subdirectorio de un repositorio git existente
- 20. Anulación de una parte de una función anónima de google.com
- 21. ¿La función de Erlang no existe en el módulo?
- 22. Implementar el operador de módulo como una función en C
- 23. JavaScript: Anulación de alerta()
- 24. Anulación de php.ini en el servidor
- 25. de anulación en el servicio WCF
- 26. Ampliación de una función jQuery existente
- 27. Anulación de una función sin quitar propiedades estáticas
- 28. Operador/función equivalente módulo/módulo en plantillas django?
- 29. ¡Anulación del diseño de Magento!
- 30. anulación de funciones no virtuales
Wow great solution Paul! –
Siempre he pensado que, si bien el sistema de Módulos y ganchos funciona en muchos casos, hay veces en que es demasiado inflexible. Me alegra que lo haya encontrado útil. –
Excelente Paul! Por cierto, ¿puedo pasar algunos parámetros al gancho del módulo? ¡Gracias! –