Ajouter modules de texte personnalisable

Ajouter modules de texte personnalisable

 (48)    (1)    0

  Prestashop

Ajouter des modules de texte personnalisable.

Prestashop 1.7



Bonjour à tous.

Comme vous avez pu le remarquer sur les différentes version de prestashop, il n’est pas possible d’avoir plusieurs blocs de texte personnalisable sans devoir investir dans un module. Cela m’a énormément contrarié au début car je trouve que prestashop est un super outil.

Mais un jour pas comme un autre j’ai eu l’idée que je dirais ‘bête’ de me dire qu’il serait peut être possible simplement de reprendre le module existant “Blocs de texte personnalisé”, de le modifier et d’en créer simplement d’autre que je pourrais placer ou bon me semble du coup.

Je vais donc vous expliquer les étapes de ma démarche afin que vous puissiez vous même le faire de votre côté. Mais d’abord, il faut bien prendre en compte quelques détails parfois important:

  • Cette méthode va vous obliger à modifier du code. Pour les débutants, je vous rassure tout de suite, il n’y a rien de compliqué, il n’y a pas besoin de compréhension du code. Juste savoir ouvrir les fichiers dans un éditeur de texte (ici notepad++).

  • Toute mise à jour du module principal n’affectera pas les modules que vous allez créer. Il sera donc peut être nécessaire de faire des mises à jour manuel en supprimant le module et le recréant avec la version à jour.

  • La moindre erreur provoquera un conflit et bloquera l’affichage du site. Il est donc important de ne pas le faire trop rapidement mais bien suivre toute les étapes.

Je n’ai pas testé sur les versions précédentes de prestashop mais je suppose que l’on peut réaliser le même type de manipulation.

Ceci est un méthode type donc je fais au plus simple . A vous ensuite de le personnaliser afin qu’il colle bien à vos besoins.

Etape 1: Création du dossier

Pour commencer, nous allons créer la copie du module “Blocs de texte personnalisé” existant; le dossier “ps_customtext“ dans le répertoire “modules”.

  1. Copier le dossier “ps_customtext

  2. Coller la copie du dossier dans le même répertoire “modules

  3. Donner lui le nom “ps_customtext2

Etape 2: Modification des noms de fichier

Il n’y a que trois fichier à modifier:

  • ps_customtext.php → ps_customtext2.php (à la racine du répertoire)

  • ps_customtext.tpl → ps_customtext2.tpl  (à la racine du répertoire)

  • CustomText.php → CustomText2.php (dans le répertoire “Classes” du module)

Comme vous pouvez le voir je ne me suis pas foulé pour les noms. Car cela n’a pas vraiment d’importance dans mon cas de figure.

Il est possible qu’un mise à jour du module principale crée des fichiers complémentaires avec le temps. il faudra, à ce moment là, comparer les dossiers et voir les fichiers qui auront été ajoutés.

Etape 3: Modification de la config

Il y a deux fichiers de configuration. L’un en anglais et l’autre en Français. Ils permettent de donner les informations sur le module.

  • config.xml

    • <?xml version="1.0" encoding="UTF-8" ?>
      <module>
         <name>ps_customtext2</name>
         <displayName><![CDATA[Custom text 2]]></displayName>
         <version><![CDATA[2.0.0]]></version>
         <description><![CDATA[Adds custom information block in your store.]]></description>
         <author><![CDATA[VivonsJardin]]></author>
         <is_configurable>1</is_configurable>
         <need_instance>0</need_instance>
      <limited_countries></limited_countries>
      </module>

  • config_fr.xml

    • <?xml version="1.0" encoding="UTF-8" ?>
      <module>
         <name>ps_customtext2</name>
         <displayName><![CDATA[Blocs de texte personnalisé 2]]></displayName>
         <version><![CDATA[2.0.0]]></version>
         <description><![CDATA[Intègre des blocs de texte personnalisé où vous le souhaitez dans votre boutique]]></description>
         <author><![CDATA[VivonsJardin]]></author>
         <tab><![CDATA[]]></tab>
         <is_configurable>1</is_configurable>
         <need_instance>0</need_instance>
      <limited_countries></limited_countries>
      </module>



Les modifications ou ajout sont en rouge. Vous remarquerez que je n’ai fait que rajouter “2” sur les noms et descriptions et modifier la notion de prestashop par “VivonsJardin”. Les modifications seront souvent comment celle ci.



Etape 4: Modification de la classe

Dans le dossier “Classes”, éditer le fichier “CustomText2.php”.

Changer le nom de la classe en ajoutant “2” :

  • class CustomText2 extends ObjectModel

Changer le nom de la table:

  • public static $definition = array(
    'table' => 'info2',

Etape 5: Modification du php

Dans le dossier racine, éditer le fichier “ps_customtext2.php”.

Il va y avoir quelques modifications dans ce fichier. Il fait donc prendre votre temps afin de ne rien oublier sinon une erreur apparaîtra. Pour les connaisseurs, il sera facile de repérer l’erreur car la ligne sera affiché en mode débug. Pour les autres, il faudra simplement reprendre les étapes.

Les modifications et ajouts sont en rouge:

if (!defined('_PS_VERSION_')) {
   exit;
}

use PrestaShopPrestaShopCoreModuleWidgetInterface;

require_once _PS_MODULE_DIR_.'ps_customtext2/classes/CustomText2.php';

class Ps_Customtext2 extends Module implements WidgetInterface
{
   private $templateFile;

   public function __construct()
   {
       $this->name = 'ps_customtext2';
       $this->author = 'VivonsJardin';
       $this->version = '2.0.0';
       $this->need_instance = 0;

       $this->bootstrap = true;
       parent::__construct();

       $this->displayName = $this->trans('Custom text blocks 2', array(), 'Modules.Customtext2.Admin');
       $this->description = $this->trans('Integrates custom text blocks anywhere in your store front', array(), 'Modules.Customtext2.Admin');

       $this->ps_versions_compliancy = array('min' => '1.7.1.0', 'max' => _PS_VERSION_);

       $this->templateFile = 'module:ps_customtext2/ps_customtext2.tpl';
   }

   public function install()
   {
<span style="font-size:

 (48)    (1)    0

Votre commentaire a été envoyé avec succès. Merci d'avoir commenté!
Laissez un commentaire
Captcha
Commentaires de Facebook