Laurent_hunter Posted September 25, 2009 Share Posted September 25, 2009 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 More sharing options...
liandri Posted September 25, 2009 Share Posted September 25, 2009 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 Link to comment Share on other sites More sharing options...
liandri Posted September 25, 2009 Share Posted September 25, 2009 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 More sharing options...
Laurent_hunter Posted September 25, 2009 Author Share Posted September 25, 2009 e be merci, beaucoup, c'est une très bonne réponse.Je vais regarder ce que tu a changer, pour l'adapté à d'autre module qui sais.Réponse rapide, merci Link to comment Share on other sites More sharing options...
liandri Posted September 25, 2009 Share Posted September 25, 2009 de rien ! pense à mettre [Résolu] dans le titre du topic si c'est le cas ! a+ Link to comment Share on other sites More sharing options...
amandarey92 Posted September 26, 2009 Share Posted September 26, 2009 Je vous remercie tellement ça était véritable aider! Link to comment Share on other sites More sharing options...
thierry_02 Posted September 27, 2009 Share Posted September 27, 2009 Bonjour, voila j'ai voulu faire un doublon mes j'ai une erreur voir photo j'ai refait 3 fois le chgt mes a chaque fois j'ai la meme erreur. Link to comment Share on other sites More sharing options...
liandri Posted September 27, 2009 Share Posted September 27, 2009 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 modulesAttention, 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 More sharing options...
thierry_02 Posted September 27, 2009 Share Posted September 27, 2009 voila tout et ok , par contre le fichier tpl on ne le renome pas!!je te donne les fichiers,jete un oeuil tu verra c ok fr.php homefeaturedbis.php Link to comment Share on other sites More sharing options...
liandri Posted September 27, 2009 Share Posted September 27, 2009 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 More sharing options...
Laurent_hunter Posted November 16, 2010 Author Share Posted November 16, 2010 je recois un message d'erreur dans le back office : Erreur(s) de parsing dans le(s) module(s) 1. homefeaturedbisj'ai fais exactement les échanges cité, connaitrais tu la source du problème stp ? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now