miles Posted June 9, 2010 Share Posted June 9, 2010 helloune petite question qui me taraude:j'ai installé le block catégorie dans ma colonne de gauche. Je voudrais qu'il n'apparaisse pas quand je suis sur ma page d'accueil mais qu'il soit visible sur les autres pages.(ex page produit)Et inversement, par ex pour le bloc nouveautés comment le faire apparaitre uniquement sur la page d'accueil et pas sur les autres?J'ai essayé de bidouiller les fichiers tpl et le global css mais nada!une piste?merciSujet déplacé -yoya971 Link to comment Share on other sites More sharing options...
liandri Posted June 9, 2010 Share Posted June 9, 2010 Bonjour,Pour les catégories :Une petite modification dans ton fichier /modules/blockcategories/blockcategories.tplAjoute en tout début du fichier : {if $smarty.server.SCRIPT_NAME != '/index.php'} Ajoute à la fin du fichier {/if} Pour les nouveautés :Une petite modification dans ton fichier /modules/blocknewproducts/blocknewproducts.tplAjoute en tout début du fichier : {if $smarty.server.SCRIPT_NAME == '/index.php'} Ajoute à la fin du fichier {/if} J'ai pas testé, je te laisse faire !A+ Link to comment Share on other sites More sharing options...
miles Posted June 9, 2010 Author Share Posted June 9, 2010 merci pour les indics, par contre je dois mal saisir le code car je n'ai pas d'effet, voici par ex mon tpl des catégories:{if $smarty.server.SCRIPT_NAME != '/index.php'} [removed][removed]<!-- Block categories module --> {l s='Categories' mod='blockcategories'} {foreach from=$blockCategTree.children item=child name=blockCategTree} {if $smarty.foreach.blockCategTree.last} {include file=$branche_tpl_path node=$child last='true'} {else} {include file=$branche_tpl_path node=$child} {/if} {/foreach} [removed]// <![CDATA[ // we hide the tree only if JavaScript is activated $('div#categories_block_left ul.dhtml').hide();// ]]>[removed]<!-- /Block categories module -->{/if} Link to comment Share on other sites More sharing options...
Divine Posted June 9, 2010 Share Posted June 9, 2010 Hello,Sinon tout simplement en utilisant les exceptions dans l'onglet modules non ? Link to comment Share on other sites More sharing options...
miles Posted June 9, 2010 Author Share Posted June 9, 2010 Hello divineen fait en passant par les exceptions j'arrive bien à faire ce que je veux pour certaines pages, par contre j'ai un souci pour d'autres: par exemple dans la page des produits en liste, impossible de rentrer une exception.Aie suis pas sur d'etre clair! Link to comment Share on other sites More sharing options...
liandri Posted June 9, 2010 Share Posted June 9, 2010 Oui, aussi ... Divine a raisonC'est même plus judicieux que ma méthode brutale pour le coup ! Link to comment Share on other sites More sharing options...
miles Posted June 9, 2010 Author Share Posted June 9, 2010 suis ok avec c'est plus propre en passant par le BO des modules, mais comment faire alors pour pas que mon module par ex nouveaux produit n'apparaisse pas dans la récap des mes produits, je trouve pas l'équivalent du product list en php Link to comment Share on other sites More sharing options...
jeckyl Posted June 9, 2010 Share Posted June 9, 2010 Salut,category.php Link to comment Share on other sites More sharing options...
miles Posted June 9, 2010 Author Share Posted June 9, 2010 merci jeckyl de ta réponse, en fait j'ai bien essayé mais nada l'exception ne veut pas marcher pour category.phpJe ne vois pas d'où vient le bin's... Link to comment Share on other sites More sharing options...
Divine Posted June 9, 2010 Share Posted June 9, 2010 Alors dans ce cas tu ouvres le fichier tpl du module concerné et tu mets au tout début:{if $page_name != category}en n'oubliant pas de refermer la condition par {/if} à la fin du fichier. Link to comment Share on other sites More sharing options...
miles Posted June 9, 2010 Author Share Posted June 9, 2010 ah bonheur ça marche nickelmerci à tous les 3 de votre aide et hop un grand résolu :-) Link to comment Share on other sites More sharing options...
Kreasite Posted June 10, 2010 Share Posted June 10, 2010 Alors dans ce cas tu ouvres le fichier tpl du module concerné et tu mets au tout début:{if $page_name != category}en n'oubliant pas de refermer la condition par {/if} à la fin du fichier. HelloJe cherche a faire la quasi même chose mais avec X pages pour un même Block.Module a ne pas afficher sur la page {if $page_name != category} ainsi que sur la page new-products et best-sales par exemple.Je test mais sans résultat.1 {if $page_name != category} {if $page_name != new-products} {if $page_name != best-sales} Block midule blablabla {/if} {/if} {/if} 2 {if $page_name != category}{$page_name != new-products}{$page_name != best-sales} Block midule blablabla {/if} 3 {if $page_name != category ; $page_name != new-products ; $page_name != best-sales} Block midule blablabla {/if} 4 {if $page_name != category' '$page_name != new-products' '$page_name != best-sales} Block midule blablabla {/if} et bien d'autre combinaisons...++DAV Link to comment Share on other sites More sharing options...
Divine Posted June 10, 2010 Share Posted June 10, 2010 Hello Dav,Dans ce cas tu fais comme ceci:{if $page_name != category || $page_name != new-products}...{/if}et cela devrait marcher. Link to comment Share on other sites More sharing options...
Kreasite Posted June 10, 2010 Share Posted June 10, 2010 Merci Divine pour le code.Vais tester ça rapidement++ et encore merciDAV Link to comment Share on other sites More sharing options...
Kreasite Posted June 10, 2010 Share Posted June 10, 2010 Oups!Après tests = page blancheDonc le code ne doit pas être valide.Et de cette façon j'ai bien les page mais les conditions ne sont pas prisent en compte. {if $page_name != 'category' || $page_name != 'new-products'}...{/if} {if $page_name == 'category' || $page_name == 'new-products'}...{/if} ++DAV Link to comment Share on other sites More sharing options...
Divine Posted June 10, 2010 Share Posted June 10, 2010 Exact j'avais oublié les guillemets.Donc cela serait plutôt:{if $page_name != 'category' or $page_name != 'new-products'}Par contre je viens de tester et le truc bizarre c'est que cela ne marche pas avec != en revanche avec == ça marche bien...C'est embêtant car cela veut dire qu'il faut mettre toutes les pages pour lesquelles le module doit s'afficher au lieu de mettre juste celles sur lesquelles il ne doit pas s'afficher.Je ne comprend pas pourquoi ça ne marche pas avec le != Link to comment Share on other sites More sharing options...
Kreasite Posted June 10, 2010 Share Posted June 10, 2010 héhé, c'est étonnant tout de même, car avec une seule condition ça fonctionne très bien avec !=Smarty n'est pas mon livre de chevet mais depuis le temps je commence a connaitre celles les plus utilisées dans la solution.Bon à défaut je vais faire l'inverse avec les == pour les faire apparaitre plutôt que de les cacher.Si tu trouves la syntaxe exacte, fais moi signe.++ et merci pour ce coup de main.DAV Link to comment Share on other sites More sharing options...
Divine Posted June 10, 2010 Share Posted June 10, 2010 Pas de souci C'est vrai que c'est encore une subtilité qui me laisse perplexe ça lolSi je trouve la syntaxe je la posterais ici, sinon si quelqu'un a une idée... bin il est le bienvenu Link to comment Share on other sites More sharing options...
jeckyl Posted June 10, 2010 Share Posted June 10, 2010 Salut,Pourtant c'est claire sur http://www.smarty.net/manual/fr/language.function.if.php le != différent fonctionne normalement Link to comment Share on other sites More sharing options...
Divine Posted June 10, 2010 Share Posted June 10, 2010 Oui "normalement" mais quand on teste ce que l'on a marqué ci-dessus ce n'est pas le cas.C'est bien pour ça que je ne comprend pas pourquoi ça marche po... snif Link to comment Share on other sites More sharing options...
Kreasite Posted June 10, 2010 Share Posted June 10, 2010 C'est clair que c'est étrange mais peut être avons nous oublié quelque chose.Sinon je n'aurais pas posé la problématique, vu qu'avec une seule condition ça fonctionne.Un spécialiste smarty peut être pour nous expliquer du pourquoi du comment cela n'est pas good ?Si tu trouves jeckyl alors merci d'avance.++DAV Link to comment Share on other sites More sharing options...
jeckyl Posted June 10, 2010 Share Posted June 10, 2010 Bon, j'ai pas repris toute la discussion mais par exemple si je veux que mon module ne soit pas affiché ni sur l'index ni sur les pages category alors j'utilise : {if $page_name != 'index' && $page_name != 'category'} et vous pouvez utiliser soit && soit and.Ne me demandez pas pourquoi cela fonctionne comme cela et pas autrement c'est ainsi fait il doit y avoir une notion d'exclusivité du OR, donc utilisez le AND.Un petit exemple à suivre sur http://prestashop.mediacom87.net Link to comment Share on other sites More sharing options...
Divine Posted June 10, 2010 Share Posted June 10, 2010 Oui ça marche avec le AND, mais bizarre qd même que cela ne marche pas avec le OR, cela veut pourtant bien dire ce que ça veut dire lolBref le principal est que l'on ait une syntaxe qui marche au final 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