almur316 Posted November 4, 2014 Share Posted November 4, 2014 (edited) Bonjour, Sur la page d'accueil du thème de base de Pestashop 1.6, on trouve 3 onglets : Nouveautés, Populaire et Meilleures ventes. J'ai bien trouvé comment supprimer les onglets Populaires et Meilleures ventes. J'ai voulu greffer le module "Bloc Promotions" pour avoir un onglet Promotions. Or ça me dit : "Ce module ne peut être accroché à ce hook". Quelque'un aurait-il une astuce pour contourner ce problème ? Par avance merci. Almur Edited November 19, 2014 by almur316 (see edit history) Link to comment Share on other sites More sharing options...
Nory01 Posted November 7, 2014 Share Posted November 7, 2014 Bonjour je suis preneur aussi Link to comment Share on other sites More sharing options...
almur316 Posted November 7, 2014 Author Share Posted November 7, 2014 Bonjour, Pour le moment j'ai trouvé un addon qui ferait cela : http://mypresta.eu/modules/slider-slideshow/homefeatured-multi-slider.html Bonne journée. Almur Link to comment Share on other sites More sharing options...
S-HAMMANI Posted November 9, 2014 Share Posted November 9, 2014 Bonjour; Les étapes à suivre pour ajouter un onglet "PROMOTIONS" dans la page d'accueil prestashop 1.6.0.6 Les manipulations à faire : Modification d'un seul fichier : modules/blockspecials/blockspecials.php Création de deux fichiers tpl dans le dossier du module (modules/blockspecials/) blockspecials-tab.tpl blockspecials-home.tpl 1- Afin de griffer le module "PROMOTIONS" dans les displayHomeTab et displayHomeTabContent; a-Remplacer le code (dans blockspecials.phpà) suivant : if ((!$theme->default_right_column || !$this->registerHook('rightColumn')) && ( !$theme->default_left_column || !$this->registerHook('leftColumn'))) PAR: if ((!$theme->default_right_column || !$this->registerHook('rightColumn')) && ( !$theme->default_left_column || !$this->registerHook('leftColumn')) && ( !$this->registerHook('hookDisplayHomeTab')) && ( !$this->registerHook('hookDisplayHomeTabContent'))) b-Coller ces deux fonctions dans le même fichier après les fonctions de hook: public function hookDisplayHomeTab($params) { return $this->display(__FILE__, 'blockspecials-tab.tpl',$this->getCacheId('blockspecials')); } public function hookDisplayHomeTabContent($params) { if (Configuration::get('PS_CATALOG_MODE')) return; // We need to create multiple caches because the products are sorted randomly $random = date('Ymd').'|'.round(rand(1, max(Configuration::get('BLOCKSPECIALS_NB_CACHES'), 1))); if (!Configuration::get('BLOCKSPECIALS_NB_CACHES') || !$this->isCached('blockspecials-home.tpl', $this->getCacheId('blockspecials|'.$random))) { if (!($specials = Product::getPricesDrop((int)$params['cookie']->id_lang, 0, 5)) && !Configuration::get('PS_BLOCK_SPECIALS_DISPLAY')) return; if (!($products = $specials)) return; $this->smarty->assign(array( 'specials' => $specials, 'products' => $products, 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), )); } return $this->display(__FILE__, 'blockspecials-home.tpl', $this->getCacheId('blockspecials|'.$random)); } 2- Le contenu du fichier blockspecials-tab.tpl <!-- MODULE TAB Block specials --> {counter name=active_li assign=active_li} <li><a data-toggle="tab" href="#blockspecials" class="blockspecials {if $active_li == 1}active{/if}">{l s='Specials' mod='blockspecials'}</a></li> <!-- /MODULE TAB Block specials --> 3- Le contenu du fichier blockspecials-home.tpl <!-- MODULE HOME Block specials --> {counter name=active_ul assign=active_ul} <div id="blockspecials" class="blockspecials tab-pane block products_block block_content toggle_content" > {if $specials } <div class="block_content"> {include file="$tpl_dir./prices-drop.tpl" products=$products} </div> {else} <p>{l s='No product specials are available at this time.' mod='blockspecials'}</p> {/if} </div> <!-- /MODULE HOME Block specials --> ATTENTION: Avant toutes modifications sauvegarder un copie des fichiers d'origine (exemple : blockspecials.php en blockspecials.php.ORIGINE ) Cordialement Said 2 Link to comment Share on other sites More sharing options...
almur316 Posted November 10, 2014 Author Share Posted November 10, 2014 Bonjour Said, Génial, ça marche. Bonne journée. Almur Link to comment Share on other sites More sharing options...
almur316 Posted November 14, 2014 Author Share Posted November 14, 2014 Bonjour, Juste une demande supplémentaire. J'ai en effet, grâce à votre aide, réussi à installer un onglet "Promotions" sur la page d'accueil. Cependant, au lieu d'afficher "Promotions" dans le titre de l'onglet, c'est "Specials" qui est affiché. J'ai chercher dans Traductions dans le BO et n'ai pas trouvé où traduire ce mot. J'aurai pu mettre le mot "Promotions" dans le fichier blockspecials-tab.tpl mais comme le site doit être bilingue (français anglais)... Avez-vous une astuce ? Almur Link to comment Share on other sites More sharing options...
S-HAMMANI Posted November 14, 2014 Share Posted November 14, 2014 Bonjour Aller dans BO > Modules > blockspecials > configurer : 2° bloc Paramètres > Gérer les traductions > Module Blockspecials : et remplir ou modifier ces champs 1 Link to comment Share on other sites More sharing options...
almur316 Posted November 15, 2014 Author Share Posted November 15, 2014 Bonjour, Merci pour votre réponse. J'ai pu mettre en place la traduction. Il a cependant fallu que j'augmente la variable max_input_vars à la valeur 2044 en ajoutant une ligne dans le fichier php.ini de mon serveur local. Mais tout est bon à présent. Encore merci pour votre aide. Almur Link to comment Share on other sites More sharing options...
S-HAMMANI Posted November 15, 2014 Share Posted November 15, 2014 Avec plaisir ! Link to comment Share on other sites More sharing options...
julien325cab Posted January 6, 2015 Share Posted January 6, 2015 Bonjour, Magnifique contribution mais j'obtiens une page blanche après la modification sur PS 1.6.0.7 avec le mode debug j'obtiens le message suivant : Fatal error: Cannot redeclare BlockSpecials::hookDisplayHomeTab() in /home/elecauto/www/modules/blockspecials/blockspecials.php on line 191 Merci par avance! Link to comment Share on other sites More sharing options...
Natom88 Posted October 14, 2019 Share Posted October 14, 2019 Le 09/11/2014 à 2:01 AM, S-HAMMANI a dit : Bonjour; Les étapes à suivre pour ajouter un onglet "PROMOTIONS" dans la page d'accueil prestashop 1.6.0.6 Les manipulations à faire : Modification d'un seul fichier : modules/blockspecials/blockspecials.php Création de deux fichiers tpl dans le dossier du module (modules/blockspecials/) blockspecials-tab.tpl blockspecials-home.tpl 1- Afin de griffer le module "PROMOTIONS" dans les displayHomeTab et displayHomeTabContent; a-Remplacer le code (dans blockspecials.phpà) suivant : if ((!$theme->default_right_column || !$this->registerHook('rightColumn')) && ( !$theme->default_left_column || !$this->registerHook('leftColumn'))) PAR: if ((!$theme->default_right_column || !$this->registerHook('rightColumn')) && ( !$theme->default_left_column || !$this->registerHook('leftColumn')) && ( !$this->registerHook('hookDisplayHomeTab')) && ( !$this->registerHook('hookDisplayHomeTabContent'))) b-Coller ces deux fonctions dans le même fichier après les fonctions de hook: public function hookDisplayHomeTab($params) { return $this->display(__FILE__, 'blockspecials-tab.tpl',$this->getCacheId('blockspecials')); } public function hookDisplayHomeTabContent($params) { if (Configuration::get('PS_CATALOG_MODE')) return; // We need to create multiple caches because the products are sorted randomly $random = date('Ymd').'|'.round(rand(1, max(Configuration::get('BLOCKSPECIALS_NB_CACHES'), 1))); if (!Configuration::get('BLOCKSPECIALS_NB_CACHES') || !$this->isCached('blockspecials-home.tpl', $this->getCacheId('blockspecials|'.$random))) { if (!($specials = Product::getPricesDrop((int)$params['cookie']->id_lang, 0, 5)) && !Configuration::get('PS_BLOCK_SPECIALS_DISPLAY')) return; if (!($products = $specials)) return; $this->smarty->assign(array( 'specials' => $specials, 'products' => $products, 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), )); } return $this->display(__FILE__, 'blockspecials-home.tpl', $this->getCacheId('blockspecials|'.$random)); } 2- Le contenu du fichier blockspecials-tab.tpl <!-- MODULE TAB Block specials --> {counter name=active_li assign=active_li} <li><a data-toggle="tab" href="#blockspecials" class="blockspecials {if $active_li == 1}active{/if}">{l s='Specials' mod='blockspecials'}</a></li> <!-- /MODULE TAB Block specials --> 3- Le contenu du fichier blockspecials-home.tpl <!-- MODULE HOME Block specials --> {counter name=active_ul assign=active_ul} <div id="blockspecials" class="blockspecials tab-pane block products_block block_content toggle_content" > {if $specials } <div class="block_content"> {include file="$tpl_dir./prices-drop.tpl" products=$products} </div> {else} <p>{l s='No product specials are available at this time.' mod='blockspecials'}</p> {/if} </div> <!-- /MODULE HOME Block specials --> ATTENTION: Avant toutes modifications sauvegarder un copie des fichiers d'origine (exemple : blockspecials.php en blockspecials.php.ORIGINE ) Cordialement Said Bonjour Said, Vous précisez "prestashop 1.6.0.6" est-ce que cela veut dire que ce n'est pas valable avec la version 1.6.1.24 ? Merci beaucoup. Nadia Link to comment Share on other sites More sharing options...
S-HAMMANI Posted October 14, 2019 Share Posted October 14, 2019 (edited) Bonjour Nadia Je crois que la version "prestashop_1.6.1.24" a déjà intégré cette option par défaut ========================== Edited October 14, 2019 by S-HAMMANI (see edit history) 1 Link to comment Share on other sites More sharing options...
Natom88 Posted October 14, 2019 Share Posted October 14, 2019 il y a 46 minutes, S-HAMMANI a dit : Bonjour Nadia Je crois que la version "prestashop_1.6.1.24" a déjà intégré cette option par défaut ========================== Merci pour ta réponse. Le souci, c'est qu'il affiche l'onglet mais ne va pas récupérer les articles en promos. Sous l'onglet Promotions, j'ai "Aucun produit en promotion en ce moment" et pourtant, j'ai deux produits qui s'affichent en promotion dans la page /index.php?controller=prices-drop Voici ce que j'ai sous l'onglet "Promotions" : Voici ce que j'ai dans la page /index.php?controller=prices-drop : PS: ne pas faire attention aux images inexistantes. Merci Link to comment Share on other sites More sharing options...
S-HAMMANI Posted October 15, 2019 Share Posted October 15, 2019 bonjour ; essaye de: - désactiver/activer ce module (dans Modules et Services > liste des modules). - nettoyer le cache (Performances > Paramètres avancés > vider le cache). 1 Link to comment Share on other sites More sharing options...
Natom88 Posted October 16, 2019 Share Posted October 16, 2019 Le 15/10/2019 à 10:01 AM, S-HAMMANI a dit : bonjour ; essaye de: - désactiver/activer ce module (dans Modules et Services > liste des modules). - nettoyer le cache (Performances > Paramètres avancés > vider le cache). Bonjour, Merci Beaucoup, j'ai réussi à afficher la partie promotion maintenant mais je ne comprends pas pourquoi je n'ai que deux produits en promotions alors que j'en ai plusieurs en réalité. Pourtant, le bandeau PROMO est affiché dans d'autres produits qui ne sont pas affichés sur la page (ou sous l'onglet "PROMO"). Très étrange. 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