Jump to content

[RESOLU] Comment déplacer l'affichage des points fidélité?


Recommended Posts

Salut et Bienvenue,

Pour faire bref, dans la page produit il existe deux hook disponnible pour ajouter des modules en pieds de colonne produit :

{$HOOK_EXTRA_LEFT} et {$HOOK_EXTRA_RIGHT}

Le module fidélité (loyalty) est initialement prévu uniquement pour se greffer dans le hook extra left.

D'abord, la première opération consiste à autoriser une greffe dans le hook extra right. ( ne me demande pas pourquoi celui ci est à gauche dans le template)

Editer le fichier loyalty.php se trouvant dans le répertoire modules/loyalty et chercher cette portion de code :

/* Hook display on product detail */
   public function hookExtraLeft($params)
   {
       global $smarty;
       $id_product = Tools::getValue('id_product');
       if (is_numeric($id_product))
       {
           $product = new Product(intval($id_product));
           if (Validate::isLoadedObject($product))
           {
               $points = LoyaltyModule::getNbPointsByProduct($product);
               $smarty->assign(array(
                   'points' => $points,
                   'voucher' => LoyaltyModule::getVoucherValue($points)
               ));
               return $this->display(__FILE__, 'product.tpl');
           }
       }
       return false;
   }



ensuite ajouter en dessous :

public function hookExtraRight($params)
   {
       return $this->hookExtraLeft($params);
   }



Enregistrez et rendez vous dans l'administration de votre boutique :

Admin/modules/positions/greffer :

Module : programme de fidelité
Greffer le module sur : Exrta action on the product page (right colmun)

Validez.

Normalement c'est greffé ;)

PS : N'oubliez pas de le supprimer du hook left, sinon vous allez l'avoir en double...
(admin/modules/positions/)

V++

Atch

Link to comment
Share on other sites

Merci Atch pour l'info, par contre, je viens de jeter un oeil sur loyalty.php et le module semble déja sur le hook extra right.

Je suis sur la même template que Rom1z et je recherche également une solution pour déplacer l'affichage dans la fiche produit.

De plus, dans l'administration de la boutique, au niveau des options pour greffer les modules, l'option Extra action on product page (right column) existe déjà.

Voilà la portion de code que j'ai dans loyalty.php. Dans ton post, tu as "public function hookExtraLeft($params) alors que dans mon fichier il est déjà en hookExtraRight.

/* Hook display on product detail */
   public function hookExtraRight($params)
   {
       global $smarty;
       $id_product = Tools::getValue('id_product');
       if (is_numeric($id_product))
       {
           $product = new Product(intval($id_product));
           if (Validate::isLoadedObject($product))
           {
               $points = LoyaltyModule::getNbPointsByProduct($product);
               $smarty->assign(array(
                   'points' => $points,
                   'voucher' => LoyaltyModule::getVoucherValue($points)
               ));
               return $this->display(__FILE__, 'product.tpl');
           }
       }
       return false;
   }

Link to comment
Share on other sites

Arf, J'ai pris le code dans la seul boutique où j'ai modifié ce fichier lol pour un de mes besoin !!!!!!

Non d'origine il est dans le hook_extra_Right qui se trouve dans

de quoi s'emmêler les pinceaux!!!

Donc si vous souhaitez l'inverser c'est la meme manip mais à l'envers....

ajouter :

public function hookExtraLeft($params)
   {
       return $this->hookExtraRight($params);
   } 



Et greffer le module dans la colonne de extra_gauche...

Désolé pour cette inversion :)

V++

Atch

Link to comment
Share on other sites

oui c'est possible.
La solution que je donnais est pour un theme presta de base.

A voir le comportement sur le tien je peux supposer que la page product.tpl a été complètement remaniée.

Il faut éditer la page product.tpl se trouvant dans le theme et chercher ce code :

{if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}

le couper et le coller en dessous du code qui gère l'affichage du prix.

N'ayant pas le code du fichier je ne peux pas t'en dire plus :(

V++

Atch

Link to comment
Share on other sites

Merci de votre aide j'ai réussi a placé le module "loyalty" sous le bouton ajouté en déplacant ce bout de code dans le product.tpl du thème

{if $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}

j'ai plus qu'a réglé le petit souci d'affichage sur la taille des caractéres et ça roule.

Je met avec un bout de code pour que vous puissiez voir ou je l'ai placé.

            <!-- number of item in stock -->


           <!-- Out of stock hook -->

quantity > 0} style="display:none;"{/if}>
               {$HOOK_PRODUCT_OOS}


quantity > $last_qties || $product->quantity == 0) || $allow_oosp} style="display:none;"{/if} >{l s='Warning: Last items in stock!'}



quantity == 0} style="display:none;"{/if} id="add_to_cart" class="buttons_bottom_block">
           <input type="submit" name="Submit" value="{l s='Add to cart'}" /></sp>
           {if $HOOK_PRODUCT_ACTIONS}
               {$HOOK_PRODUCT_ACTIONS}
           {/if}

{if $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}
       </form>


   <!-- accessories -->

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