Jump to content

Bloc Promotions invisible si pas de promotion


mudplanet

Recommended Posts

Bonjour,

J'ai réalisé une minuscule modification sur le bloc standard Promotions, de façon à ce qu'il disparaisse lorsqu'il n'y a aucune promotion (plutôt de d'afficher le message "pas de promotion" qui me paraît beaucoup trop négatif).

Si cela intéresse quelqu'un, je tiens à sa disposition le fichier original modifié (trois ou quatre lignes de différence). Je n'ai pas encore souhaité réaliser un module à part pour si peu, et je suis conscient qu'à la prochaine mise à jour la modification disparaitra. Mais peut-être serait-il logique qu'elle soit insérée dans le code standard ? Qu'en pensez-vous ?

Merci pour vos avis

EDIT: Ce fil de discussion est obsolète. Vous devriez plutôt consulter ceux-là :

Bloc "Promotions" invisible

Bloc "Nouveaux produits" invisible

Bloc "Newsletter" invisible

Link to comment
Share on other sites

et je suis conscient qu'à la prochaine mise à jour la modification disparaitra.


Salut,

Si ton module modifié se trouves dans ton répertoire theme, il ne disparaitra pas à la prochaine mise à jour.

Rien ne t'empeche de surclasser les TPL des modules modifiés dans ton theme, ils seront utilisés en priorité :

themes/tontheme/modules/nomdumodule/nomdumodule.tpl

V++

Atch
Link to comment
Share on other sites

C'est bien ce donc j'ai conscience : si je ne fais pas de duplication du module, la prochaine maj sera pénible. Et si je duplique, alors je ne bénéficie pas (automatiquement) des prochaines évolutions (à moins que je ne comprenne pas ta réponse ...).

Merci pour le tuyaux sur les templates.
J'ai posté une demande de fonctionnalité mais tu connais peut-être la solution : existe-t-il un endroit pour installer ses propres modules à part, un peu comme ce que tu viens d'expliquer pour les templates ? Ca faciliterait entre autre les mises à jur de site, en attendant une solution de la part de la P.T.

Merci

Link to comment
Share on other sites

Je suis interessé par ta modif, en effet le bloc restant affiché avec le message “pas de promotion” n'est pas du tout vendeur, c'est comme le block nouveaux produit "pas de nouveaux produits" c'est pas tres bon, j'ai du allonger le temps considerant un produit comme nouveau pour ne pas avoir ce message. Je ferai bien aussi une modif pour ce module.

Pour ne pas ecraser ta modif, il suffit de renommer le module, ca se fait tres rapidement, comme cela il ne sera pas écrasé lors d'une mise à jour

Link to comment
Share on other sites

En fait, l'idée est simplement de voir si l'idée est idiote ou pas. Si elle intéresse du monde, j'écris une page d'admin pour proposer soit que le bloc disparaisse, soit qu'il reste avec son magnifique message, et je propose le tout en modif à la P.T.

En attendant, voici la fonction à remplacer (v1.2.2.0) :

   function hookRightColumn($params)
   {
       global $smarty;

       if ($special = Product::getRandomSpecial(intval($params['cookie']->id_lang)))
       {
           $smarty->assign(array(
           'special' => $special,
           'oldPrice' => number_format($special['price'] + $special['reduction'], 2, '.', ''),
           'mediumSize' => Image::getSize('medium')));
           return $this->display(__FILE__, 'blockspecials.tpl');
       }
       else
           return '';
   }



Tu vois, je n'ai rien fait d'extraordinaire, mais franchement, ce bloc vide qui dit qu'en ce moment, c'est un peu dur alors tu fais pas de cadeau, ça m'interpelle ...

Link to comment
Share on other sites

:cheese: comme tu dis ...

Donc, pour la version 1.2.2.0, il faut modifier cette fonction dans le fichier blocknewproduct.php :

   function hookRightColumn($params)
   {
       global $smarty;
       $currency = new Currency(intval($params['cookie']->id_currency));
       $newProducts = Product::getNewProducts(intval($params['cookie']->id_lang), 0, Configuration::get('NEW_PRODUCTS_NBR'));
       $new_products = array();
       if ($newProducts)
       {
           foreach ($newProducts AS $newProduct)
               $new_products[] = $newProduct;

           $smarty->assign(array(
               'new_products' => $new_products,
               'mediumSize' => Image::getSize('medium')));
           return $this->display(__FILE__, 'blocknewproducts.tpl');
       }
       else
           return "";
   }

Link to comment
Share on other sites

C'est bien ce donc j'ai conscience : si je ne fais pas de duplication du module, la prochaine maj sera pénible. Et si je duplique, alors je ne bénéficie pas (automatiquement) des prochaines évolutions (à moins que je ne comprenne pas ta réponse ...).
Merci


Désolé je pensais que c'était le TPL que tu modifiais en mettant une condition avec un display:none si pas de promo.

Oui vu que tu modifies le PHP, tu ne peux pas l'inclure dans le theme directement.

Par contre la méthode de jolvy qui consiste a renommer le module n'est pas bête du tout ;).

V++

Atch
Link to comment
Share on other sites

Je fais des signalement de bug en proposant directement la solution codée à la PrestaTeam, en espérant que cela sera intégré à la prochaine version. Comme ça, pas de module en doublon pour un détail microscopique, et hop, la modification ne se perd pas (enfin, s'ils veulent bien l'intégrer ...).

Link to comment
Share on other sites

Si elle intéresse du monde, j‘écris une page d’admin pour proposer soit que le bloc disparaisse, soit qu’il reste avec son magnifique message


Ca peut etre une modif du module originale interessante ! qui sera tres vite adoptée si tu le fais :cheese:

utilises un autre nom style blockspecials-mp ou autre pour le differencier en attendant que cela soit intégré...... peut etre
Link to comment
Share on other sites

Bon, puisque vous avez l'air d'insister, je vais faire des forks ...
Entre nous, pour moi, un bogue peut aussi être comportemental : en l'occurrence, c'est dans la fonction qu'il y a une erreur, dans ce cas, mais bon, on va pas ergoter sur les mots : il s'agit effectivement ici de demander la modification d'un détail fonctionnel.
Bon, c'est parti, on va essayer de faire ça correctement, alors.

Link to comment
Share on other sites

  • 3 weeks later...

Merci pour ce petit bout de code que j'ai directement remplacé dans blockspecials.php et blocknewproducts.php et qui fonctionne parfaitement...

Attention petite différence pour la version1.1

if ($special = Product::getRandomSpecial(intval($params['cookie']->id_lang)))
       {
           $smarty->assign(array(
           'special' => $special,
           'oldPrice' => number_format($special['price'] + $special['reduction'], 2, '.', '')
));
       return $this->display(__FILE__, 'blockspecials.tpl');
       }
       else
           return '';



et pour les nouveaux produits:

 function hookRightColumn($params)
   {
       global $smarty;
       $currency = new Currency(intval($params['cookie']->id_currency));
       $newProducts = Product::getNewProducts(intval($params['cookie']->id_lang), 0, Configuration::get('NEW_PRODUCTS_NBR'));
       $new_products = array();
       if ($newProducts)
           {
           foreach ($newProducts AS $newProduct)
               $new_products[] = $newProduct;

       $smarty->assign('new_products', $new_products);
       return $this->display(__FILE__, 'blocknewproducts.tpl');
        }
       else
           return "";
   }

Link to comment
Share on other sites

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...