Jump to content

dédoubler module [RESOLU]


Laurent_hunter

Recommended Posts

bonjour,

Je serais intéresser par le dédoublement de certain module, blog.
Notamment le module produit phare.

Si quelqu'un c'est comment faire donc pour installer plusieurs fois un même module qui soit complètement indépendant les un des autres?

Je pense ne pas être le seul à être intéresser par cette possibilité. (pas forcément avec les produit phares)

Cordialement,
Laurent

Link to comment
Share on other sites

Bonjour,

C'est pas dur ! Rassure toi !

Tu copies/colles le dossier du module "homefeatured"

renomme le nouveau dossier en "homefeatured (copie)" en "homefeaturedbis"

renomme juste le fichier de classe "homefeatured.php" en "homefeaturedbis.php"

édite le fichier "homefeaturedbis.php"

et remplace tout son contenu par :

<?php

class HomeFeaturedBis extends Module
{
   private $_html = '';
   private $_postErrors = array();

   function __construct()
   {
       $this->name = 'homefeaturedbis';
       $this->tab = 'Tools';
       $this->version = '0.9 BIS';

       parent::__construct();

       $this->displayName = $this->l('Featured Products on the homepage');
       $this->description = $this->l('Displays Featured Products in the middle of your homepage');
   }

   function install()
   {
       if (!Configuration::updateValue('HOME_FEATURED_NBR_BIS', 8) OR !parent::install() OR !$this->registerHook('home'))
           return false;
       return true;
   }

   public function getContent()
   {
       $output = ''.$this->displayName.'';
       if (Tools::isSubmit('submitHomeFeatured'))
       {
           $nbr = intval(Tools::getValue('nbr'));
           if (!$nbr OR $nbr <= 0 OR !Validate::isInt($nbr))
               $errors[] = $this->l('Invalid number of product');
           else
               Configuration::updateValue('HOME_FEATURED_NBR_BIS', $nbr);
           if (isset($errors) AND sizeof($errors))
               $output .= $this->displayError(implode('
', $errors));
           else
               $output .= $this->displayConfirmation($this->l('Settings updated'));
       }
       return $output.$this->displayForm();
   }

   public function displayForm()
   {
       $output = '
       <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'

'.$this->l('In order to add products to your homepage, just add them to the "home" category.').'

'.$this->l('Number of product displayed').'

                   <input type="text" size="5" name="nbr" value="'.Tools::getValue('nbr', Configuration::get('HOME_FEATURED_NBR_BIS')).'" />

'.$this->l('The number of products displayed on homepage (default: 10)').'


<input type="submit" name="submitHomeFeatured" value="'.$this->l('Save').'" class="button" />

       </form>';
       return $output;
   }

   function hookHome($params)
   {
       global $smarty;
       $category = new Category(1);
       $nb = intval(Configuration::get('HOME_FEATURED_NBR_BIS'));
       $products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10));
       $smarty->assign(array(
           'allow_buy_when_out_of_stock' => Configuration::get('PS_ORDER_OUT_OF_STOCK', false),
           'max_quantity_to_allow_display' => Configuration::get('PS_LAST_QTIES'),
           'category' => $category,
           'products' => $products,
           'currency' => new Currency(intval($params['cart']->id_currency)),
           'lang' => Language::getIsoById(intval($params['cookie']->id_lang)),
           'productNumber' => sizeof($products),
           'homeSize' => Image::getSize('home')
       ));
       return $this->display(__FILE__, 'homefeatured.tpl');
   }
}



suite ... après :P

Link to comment
Share on other sites

suite ..

ensuite, édite le fichier "fr.php", toujours dans le nouveau dossier copié

remplace tout par :

<?php

global $_MODULE;
$_MODULE = array();
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_cd2c2dc24eaf11ba856da4a2e2a248be'] = 'Produits phares sur la page d\'accueil';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_b494beb5de5dd7b4fad67262e0de6321'] = 'Affiche les produits phares au centre de votre page d\'accueil';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_ced2b9f1aad1f8a5b351a3120e4b1212'] = 'Nombre de produit invalide';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_c888438d14855d7d96a2724ee9c306bd'] = 'Paramètres mis à jour';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_f4f70727dc34561dfde1a3c529b6205c'] = 'Paramètres';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_6df1f9b5662398a551a2c9185b26638a'] = 'Pour ajouter des produits à votre page d\'accueil, ajoutez-les simplement à la catégorie \"Accueil\" du catalogue.';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_20c47700083df21a87e47d9299ef4dc4'] = 'Nombre de produits';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_ada7594fb1614c6b6d271699c8511d5e'] = 'Le nombre de produits affichés sur la page d\'accueil (défaut : 10)';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_c9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_578d26aacd7844a23f0a59ef743cf26c'] = 'produits phares';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_d3da97e2d9aee5c8fbe03156ad051c99'] = 'Plus d\'infos';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_a312dde7f348b17424bc8e3c97816891'] = 'TTC';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_dc764c1fa1f8e4be404a15939070c390'] = 'HT';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_4351cfebe4b61d8aa5efa1d020710005'] = 'Plus d\'infos';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_2d0f6b8300be19cf35e89e66f0677f95'] = 'Ajouter au panier';
$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_e0e572ae0d8489f8bf969e93d469e89c'] = 'Aucun produit phare';

?>



Voilà ! il te reste plus qu'à aller installer ton nouveau module qui doit apparaitre juste en dessous du premier !

Produits phares sur la page d'accueil v0.9 BIS


Ah oui, je t'ai aussi prévu la gestion d'une variable indépe
Link to comment
Share on other sites

Bonjour,

Les changements réels à apporer pour le cas de ce module sont :

- renommer le nouveau dossier “homefeatured (copie)” en “homefeaturedbis”

- renommer juste le fichier de classe “homefeatured.php” en “homefeaturedbis.php”

dans “homefeaturedbis.php” :

- renommer le nom de la classe

class HomeFeatured extends Module

en

class HomeFeaturedBis extends Module



- renommer les déclarations d'informations du module

       $this->name = 'homefeatured';
       $this->tab = 'Tools';
       $this->version = '0.9';


en

       $this->name = 'homefeaturedbis';
       $this->tab = 'Tools';
       $this->version = '0.9 BIS';



- renommer l'unique variable de configuration

Configuration::updateValue('HOME_FEATURED_NBR', 8)

en

Configuration::updateValue('HOME_FEATURED_NBR_BIS', 8)


de manière à distinguer les 2 configurations des modules
Attention, la variable doit être modifier dans tout fichier, à chaque appel ! soit par un "Configuration::updateValue()" ou par "Configuration::get()"

dans “fr.php” du nouveau module :

il faut que la traduction fonctionne avec la nouvelle classe

- renommer chaque déclaration

$_MODULE['<{homefeatured}prestashop>homefeatured_

en

$_MODULE['<{homefeaturedbis}prestashop>homefeaturedbis_



et c'est tout :)

A+

Link to comment
Share on other sites

non les fichier tpl n'ont pas besoin d'être renommé dans un aspect fonctionnel, puisqu'ils sont appelés par le code php directement, et prennent en compte le smarty "template_dir" lié à l'emplacement du module au moment où le code php du module est traité.

En revanche, pour finaliser le module dans le cas d'une personnalisation complète, si tu renommes chaque fichier tpl, il faudra aussi renommer leur déclaration dans la classe du module !

Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...