paul_moustique Posted October 12, 2012 Share Posted October 12, 2012 Bonjour, Je voudrais afficher une image sur mon template que si le compte appartient au groupe id=4 J'ai essayé plein de choses mais sans succès. {if $id_attribute_group == 4} {if $id_group == 4} .... Connaissez-vous la variable à utiliser pour ça? Merci par avance. Link to comment Share on other sites More sharing options...
franckm1000 Posted October 12, 2012 Share Posted October 12, 2012 Mais dans quelle page et quel endroit du template ? produit, catégorie... Link to comment Share on other sites More sharing options...
paul_moustique Posted October 12, 2012 Author Share Posted October 12, 2012 (edited) Sur la page d'accueil. Dans header.tpl Par exemple j'utilise déjà parfaitement: {if $page_name == 'index'}ssqddsd {/if} Edited October 12, 2012 by paul_moustique (see edit history) Link to comment Share on other sites More sharing options...
franckm1000 Posted October 12, 2012 Share Posted October 12, 2012 (edited) En fait, par défaut, le header ne récupère pas le groupe du client. Pour cela, il faut aller le chercher ! Dans le fichier classes/frontcontroller.php Tu vas à: public function displayHeader() { Ensuite tu rajoutes ce code: // Vérification si le client appartient au groupe ID 4 global $cookie; //On commence par vérifier que le client est connecté if(isset($cookie->id_customer)) { // On récupère les groupes du client $groups=Db::getInstance()->ExecuteS('select * from '._DB_PREFIX_.'customer_group where id_customer='.$cookie->id_customer); // On liste chaque ligne du tableau foreach ($groups as $group) { // On teste si le client appratient au groupe 4 if($group['id_group']==4) { // Oui => On assigne la variable groupe4 et on lui donne la valeur 1 self::$smarty->assign('groupe4',1); // Plus de raison de continuer, on stoppe break; } } } Ce code permet de récupérer les groupes du client connecté et de tester si il appartient au groupe 4. Côté header.tpl, tu mets le code suivant: {if $logged} {if isset($groupe4) and $groupe4==1} Le client appartient au groupe 4 {else} Ce client n'appartient pas au groupe 4 {/if} {else} Client non connecté ! {/if} Ce code teste déjà si le client est connecté et ensuite affiche deux messages différents suivant que la variable groupe4 existe ou non. Testé sur 1.4.8.2 Edited October 12, 2012 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
paul_moustique Posted October 12, 2012 Author Share Posted October 12, 2012 Alors là. Je ne sais pas comment te remercier. C'est vraiment super sympa d'avoir pris de ton temps pour m'expliquer tout ça. Mille merci! Je vais tester ça dès demain matin. Très bon week end toi. Link to comment Share on other sites More sharing options...
spider.15 Posted December 16, 2012 Share Posted December 16, 2012 Bonjour, j'ai un problème avec les groupes et le module à facette, j'ai un affichage différent dans product-list.tpl suivant le groupe, avec ton code tous fonctionnent très bien à l'affichage, en revanche dès que l'on utilise un filtre, l'affichage ne reconnait plus le groupe, peux tu éclairer ma lanterne ... Merci d'avance. Link to comment Share on other sites More sharing options...
franckm1000 Posted December 16, 2012 Share Posted December 16, 2012 en revanche dès que l'on utilise un filtre, l'affichage ne reconnait plus le groupe C'est quoi un filtre exactement ? Link to comment Share on other sites More sharing options...
spider.15 Posted December 16, 2012 Share Posted December 16, 2012 Le module à facette (blocklayered), permet de choisir, pour une recherche avancée, par le biais de select ou checkbox des caractéristiques attributs ... Ce que j'appelle filtrer, c'est le résultat après avoir sélectionné un de ces éléments, résultat en ajax qui se fout des conditions de groupes placées dans product-list.tpl. Cordialement Link to comment Share on other sites More sharing options...
marco989 Posted February 18, 2013 Share Posted February 18, 2013 En fait, par défaut, le header ne récupère pas le groupe du client. Pour cela, il faut aller le chercher ! Dans le fichier classes/frontcontroller.php Tu vas à: public function displayHeader() { Ensuite tu rajoutes ce code: // Vérification si le client appartient au groupe ID 4 global $cookie; //On commence par vérifier que le client est connecté if(isset($cookie->id_customer)) { // On récupère les groupes du client $groups=Db::getInstance()->ExecuteS('select * from '._DB_PREFIX_.'customer_group where id_customer='.$cookie->id_customer); // On liste chaque ligne du tableau foreach ($groups as $group) { // On teste si le client appratient au groupe 4 if($group['id_group']==4) { // Oui => On assigne la variable groupe4 et on lui donne la valeur 1 self::$smarty->assign('groupe4',1); // Plus de raison de continuer, on stoppe break; } } } Ce code permet de récupérer les groupes du client connecté et de tester si il appartient au groupe 4. Côté header.tpl, tu mets le code suivant: {if $logged} {if isset($groupe4) and $groupe4==1} Le client appartient au groupe 4 {else} Ce client n'appartient pas au groupe 4 {/if} {else} Client non connecté ! {/if} Ce code teste déjà si le client est connecté et ensuite affiche deux messages différents suivant que la variable groupe4 existe ou non. Testé sur 1.4.8.2 Hi franckm1000 excuse my for not speaking French. Do let me know if you understand my post, though. Does your above solution work on PS 1.3.6 as well? I use PS 1.3.6 and i would like to display a specific text message when a customer from the Group X (not conditioned by his/her name of his/her customer id) is logged in. I tried the following combinations: {if $logged} {if isset($id_group) and $id_group==3} <p class="warning"> Show this message 1 </p> {else} <p class="warning"> Show message 2 </p> {/if} {/if} This option does not work ok and it displays the text in the {else} condition only. I tried as well {if $logged} {if (self::$cookie->id_customer)} {$customer = new Customer(intval($this->id_customer)); $customer->getGroups()} {if ($customer_group==3)} <p class="warning"> Show message 1 </p> {else} <p> Show message 2 </p> {/if} {/if} {/if} This code disables the body of the page completely. Any tips on how to code it correctly? Again, this is about showing a specific text message to a customer, depending on the group he's in (as set in the back office), independent of the name of the customer or the customer id. version PS 1.3.6 Link to comment Share on other sites More sharing options...
franckm1000 Posted February 21, 2013 Share Posted February 21, 2013 The second one, it's normal you use (self::$cookie->...) Smarty does not regnize self:: who is specific for PHP. The question is: where do you want to apply this message (what page: product, home, all pages...) ? Link to comment Share on other sites More sharing options...
marco989 Posted February 22, 2013 Share Posted February 22, 2013 (edited) The second one, it's normal you use (self::$cookie->...) Smarty does not regnize self:: who is specific for PHP. The question is: where do you want to apply this message (what page: product, home, all pages...) ? The message must be displayed on when the customer is logged, on their page with the cart overview, account info and addresses. However, as i said in the previous post, that specific formula disables the body of the page, so if active, you get to see the header/top of the page only. Edited February 22, 2013 by marco989 (see edit history) Link to comment Share on other sites More sharing options...
marco989 Posted February 22, 2013 Share Posted February 22, 2013 Got it. Here is the solution in case anyone wants to add whatever message on the customer's account page, addresses page or whatever page, by performing a conditional check according to the group to which the customer belongs (verified on PS 1.3.6) Add on the my-account.tpl or whichever tpl you want, where you want the message to appear, the following code: <div> {if ($logged)} { $customer = new Customer($cookie->id_customer); if (!$customer->isMemberOfGroup(3));} <p class="warning"> Show message 1 </p> {else} <p> Show message 2 </p> {/if} </div> The above checks the condition id_group id_customer and isMemberofGroup and displays the corresponding warning or message. Tags: if condition $id_group $id_customer ismemeberofgroup Partial credits go to rocky for his post; http://www.prestashop.com/forums/index.php?/topic/39431-php-help-needed-hide-everythingshop-until-a-user-logs-in/page__view__findpost__p__283507 Link to comment Share on other sites More sharing options...
patrmich Posted November 28, 2013 Share Posted November 28, 2013 Bonjour franckm1000, J'utilise Prestashop 1.4.7.0 Sur la page panier, je souhaiterais n'afficher le pavé "Bon de réduction" que pour les clients appartenant au groupe 2. Je suppose qu'il faut modifier les fichiers classes/frontcontroller.php et shopping-cart.tpl. Sauriez vous ce que je dois modifier dans ces deux fichiers ? Merci beaucoup par avance, Patrick 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