Como duplicar un módulo en Prestashop

A veces, cuando estás haciendo una página en Prestashop, necesitas clonar un módulo ya existente. Quizás porque necesitas que su funcionalidad se repita en varios sitios, quizás porque necesitas que en ciertas ocasiones el mensaje o la funcionalidad sea algo diferente. A lo mejor, como nos ha pasado a nosotros, quieres tener otro método de pago como pago en tienda y puedes hacerlo clonando y variando el de pago por transferencia. Os explicamos cómo.

ps_logo_share

Los pasos son:

  • Copia la carpeta del módulo en modules a otra carpeta con otro nombre. Por ejemplo copia modulo1 a modulo2
  • Cambia el nombre de todos los ficheros dentro de la carpeta modulo2 que se referían al anterior. Por ejemplo
    modulo1.php y modulo1.tpl a modulo2.php y modulo2.tpl.
  • Cambiar la clase en el fichero .php, class modulo2 extends Module
  • Cambiar en el fichero .php, el nombre del módulo en esta línea del .php: $this->name = ‘modulo2’;
  • Cambiar, en el fichero .php, el nombre de los parámetros en las líneas que pone: Configuration::updateValue(‘modulo_2_NBR’, 8);
  • Cambia los valores donde aparece el módulo antiguo en líneas como (depende del módulo):
    if (isset($config[‘BANK_WIRE3_OWNER’])), if (isset($config[‘BANK_WIRE3_DETAILS’]))  Esto hazlo en todas las funciones del fichero .php (install etc). Si no va a depender del módulo antiguo.
    Cambia todo nombre referenciando al antiguo módulo en el fichero .php.
    Es importante porque así cuando lo instales podrá crear en la base de datos los campos necesarios e independientes del otro módulo.
  • Al final del .php donde pone dónde llama al siguiente fichero tpl cambiar el nombre: return $this->display(__FILE__, ‘modulo2.tpl’, $this->getCacheId());
  • En el fichero config.xml cambia las referencias al módulo antiguo:
    <?xml version="1.0" encoding="UTF-8" ?>
    <module>
     <name>modulo2</name>
        <displayName>modulo2</displayName>
        <version>0.1</version>
        <description>Lo que quieras poner</description>
        <tab>advertising_marketing</tab>
        <is_configurable>1</is_configurable>
        <need_instance>0</need_instance>
    </module>
  • Si coge valores en los hooks de otro sitio cambia el id de los valores a uno de tu invención. Por ejemplo:
    $products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

    a

    $products = $category->getProducts(intval($params['cookie']->id_lang), 123, ($nb ? $nb : 10));
  • Instálalo desde el backend y mira si hay errores.  Si no los hay cambia la funcionalidad que necesites.
    Dependiendo de la complejidad del módulo este proceso de duplicarlo será más o  menos complicado. Empezad con uno sencillito para entenderlo.

 

 

3 comentarios en «Como duplicar un módulo en Prestashop»

    • Igual, pero el módulo de Paypal es un módulo que se actualiza y cambia mucho la programación. No es muy recomendable.

      Responder

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).