Ne pas afficher certaines colonnes sur la page d’accueil
En fonction du thème que vous souhaitez réaliser, vous avez peut être choisi une large page d’accueil qui ne comprend pas de leftColumn ou de rightColumn pour afficher par exemple un diaporama sur toute la largeur. Cependant, ces colonnes devront d’afficher sur le reste du site.
Il y a une astuce très simple pour palier à ce problème: la variable {$page_name} intégré à smarty au sein de prestashop grâce à laquelle nous ajouterons une condition d’affichage pour la colonne souhaitée.
Exemple, ne nous souhaitons pas afficher la rightColumn sur la page d’accueil.
Editez le fichier “footer.tpl” et remplacez ces lignes :
par celles-ci :
{if $page_name != 'index'} |
{/if} |
Traduction littérale : Si le nom de la page actuelle est différent de “index” alors on affiche la colonne de droite, sinon on ne l’affiche pas.
NB: Vous pouvez utiliser cette technique n’importe où dans votre boutique !
Bonjour,
Merci pour cette information.
Question: Si je ne souhaite pas afficher un module sur une certaine page quel variable doit-on indiquer? (sans passer par exceptions du back office).
Merci.
Tu peux mettre le contenu de ton module dans une condition par exemple :
{if $page_name != mapage}
CONTENUE DU TPL
{/if}
Ici le contenu ne sera pas affiché si l’on se trouve sur la page ‘mapage’.
Merci eMizZ pour cette information précieuse.
Test ok.
Bonjour,
Je cherche à appliquer cette méthode sur une des catégories de mon catalogue, que je souhaite “customiser”.
Comment puis-je appeler la page category dont l’id=3 par exemple?
Merci d’avance
Laurent
Soyez plus précis sur ce que vous souhaitez faire, je n’hésiterai pas à vous aider.
Merci de votre retour,
Sur la page d’accueil, j’ai un module me permettant d’afficher un diaporama sur la totalité de la largeur de la page.
Je suis arrivé à dupliquer ce module pour qu’il affiche un autre diaporama sur la page category.
Maintenant je souhaite limiter l’affichage de ce diaporama à une seule de mes catégories (celle dont l’id=3 par exemple)
Tu peux utiliser la variable {$id_category} en plaçant ton code entre ce code (dans le .tpl) :
{if $id_category == 3}
//LE CODE DE TON DIAPORAMA
{/if}
Merci pour ta réponse mais cela ne marchait pas.
J’ai trouvé le complément de réponse à l’adresse suivante :
http://www.prestashop.com/forums/topic/41013-solved-how-to-use-different-headers-according-to-sub-category-in-the-product-page/
Voilà donc le code que j’ai utilisé
{if $smarty.get.id_category == 336}
Merci de ton aide
Bonjour,
Merci pour vos conseils, je souhaiterai que la page accueil soit en une seule colonne ainsi que les page article et deux colonnes pour les catégories, (j’ai installé le nouveau thème pour prestashop 1.5 avec le panier ajax et la barre de navigation adapté par la prestasteam http://addons.prestashop.com/fr/neutre/3337-prestashop-template-15.html ) j’ai testé votre solution pour mettre la page en deux colonne pour la page d’accueil avec succès, mais pour le reste je pèche un peu je n’ai pas réussi. Pourriez vous me dire quels sont les fichier tpl a modifier et avec quel code s’il vous plait ? Merci d’avance pour votre aide
Cordialement,
Bonjour,
Tout d’abord merci pour cette astuce qui fonctionne parfaitement. Cela me sauve la vie pour la colonne de droite comme dans l’exemple.
Je me suis dit, que j’allais utiliser cette astuce pour modifier une class de la colonne du centre, j’ai donc modifié mon header.tpl tel que :
{if $page_name = ‘index’}
{/if}
{if $page_name != ‘index’}
{/if}
Si cela fonctionne bien en page d’accueil, ma condition n’es pas prise en compte pour les autres pages. En fait j’ai toujours sur toutes mes pages.
Une idée ?
D’avance merci.
edit commentaire ci dessus
{if $page_name = ‘index’}
mon bloc avec une classe ninecolumns
{/if}
{if $page_name != ‘index’}
mon bloc avec une classe fivecolumns
{/if}
Ok, j’ai utilisé mon cerveau 2min ça sert…
la solution est 1 de ne pas faire de faute dans sa condition == et d’utiliser un {else} je débute en smarty…
pour mon cas :
{if $page_name == ‘index’}class=”grid_9″ {else} class=”grid_5″ {/if}
Bonjour Emilien
Merci et bravo pour ton blog.
Si tu peux m’aider voici mon besoin:
Je suis en train de mettre en place prestashop 3 col et je souhaite supprimer la colonne de gauche sur une des pages (ce n’est pas la page d’accueil).
As-tu une solution?
Merci d’avance
claude
Tout dépend de la page en question
En fait ce n’est pas la colonne de gauche mais celle de droite.
La page ne question est un page avec un module spéciale de type flash.
Merci pour ta réponse
claude
Merci infiniment !!
Je cherchais ça depuis un moment. Super ces tuto !
Bonjour et merci pour cette première partie de tuto.
C’est assez facile et compréhensible.
Mais je me pose une question que je ne peux résoudre seul. Comment connaitre le nom de la page $page_name ?
Pour la page d’accueil, c’est index. Mais pour la page contact c’est quoi ?
C’est le nom du fichier sans le “.php”
Bon j’ai trouvé !
Il faut assigner une variable page_name dans le controller de la dite page.
Bonjour,
Avant tout un grand MERCI pour tes tutos ils sont très utiles ^^
Alors me concernant, j’ai fait une boutique sur une seule et unique colonne, la center_column. J’aimerais afficher les fabricants du catalogue sur la page d’accueil, donc je sais que je dois utiliser ceci :
{if $page_name == ‘index’}
mon code
{/if}
Mais ou puis je incruster ce code ?
En outre, un indice sur l’objet qui régit les fabricants serais un bon début, voir si je me débrouille ^^
Merci encore par avance
J’ai un carrousel jquery roundabout et ses contenues sont des pages comme authentification.php par exemple.Donc j’ai utilisé iframe
Mon problème c’est la communication de l’iframe avec le parent qui est l’index pour les breadcrumb et les paniers par exemple
how to get title category, where id = 5
Thanks
$category = new Category(5);
echo $categorie->getName($cookie->id_lang);
Bonjour,
Mon footer.tpl ressemble à ça :
{if !$content_only}
{$HOOK_FOOTER}{$HOOK_RIGHT_COLUMN}
Les coupons tissus designers & cie {l s=’Powered by’} PrestaShop™, {l s=’Theme by’} Atchworks
{/if}
Dans mon cas c’est la colonne de gauche que je souhaite enlever. J’ai testé sans succès. Pouvez-vous me dire ce qui cloche ? D’autant plus que {$HOOK_LEFT_COLUMN} n’apparait nulle part…
Merci d’avance !
Cordialement,
Corinne
Bonjour,
Mon souci est un peu différent, mais n’ayant pas trouvé de solution et étant novice dans prestashop 1.5.2 j’espère trouver une réponse ici et vous remercie d’avance. En fait, je voudrais créer des “sous-sous-catégories” si on peut dire ça comme ça pour afficher des produits dans ces dernières sans qu’elles s’affichent dans le menu horizontal ni dans le menu vertical dans la colonne de gauche.
Je m’explique :
Dans le menu j’aurais par exemple
Catégorie 1
1 – Sous Catégorie 1
2 – Sous Catégorie 1
3 – Sous Catégorie 1
Puis dans :
2 – Sous Catégorie 1 j’aurais :
A – Sous-sous Catégorie
A Sous-sous Catégorie A
– Produit a- Produit b – Produit c
B – Sous-sous Catégorie B
– Produit a – ….
Et pour les sous-sous catégories A et B, je voudrais pas qu’elle s’affiche dans les menus, mais uniquement avoir les vignettes cliquables dans les pages.
J’espère que c’est compréhensible :/ En gros je voudrais regroupé les produit pas sous-sous catégorie. Vu que j’aurais beaucoup de sous-sous catégorie, ça ne serait pas confortable, voir ça serait inutile qu’elles s’affichent dans les menus.
Merciiiiii en espérant que vous avez une piste sur ça
Merci beaucoup Emilien pour toutes ces infos.
Dans mon cas il s’agit de la leftColumn et rightColumn que je souhaite supprimer du site sauf sur la page categorie ou j’utlise un block a gauche.
Pourriez vous me donner un coup de main ?
Bonjour, J’ai ouvert le fichier “footer.tpl” j’ai fait comme prévu la modif et je ne vois plus la colonne de droite.
Le truc c’est que je n’ai pas de {$HOOK_LEFT_COLUMN}, comment faire pour enlever la colonne de gauche ?
je rentre :
{if $page_name != ‘index’} {$HOOK_LEFT_COLUMN}
{/if}
Mais rien de se passe.
Comment est ce que je peux faire ?
Merci pour l’aide.
(Ps je suis en mode serveur local et crée le site actuellement)
C’est bon, j’ai trouvé !!!!!! (j’ai travaillé le mauvais fichier) Merci quand même.
JP.
Bonjour à tous,
Même problème que Corinne, je suis sous PS 1.5.2, et voici mon code :
—————–
{if !$content_only}
{$HOOK_RIGHT_COLUMN}
{$HOOK_FOOTER}
{if $PS_ALLOW_MOBILE_DEVICE}
getPageLink(‘index’, true)}?mobile_theme_ok”>{l s=’Browse the mobile site’}
{/if}
{/if}
—————–
Je n’ai que 2 colonnes : gauche et milieu étendu à droite, c’est un thème sans colonne droite.
Je souhaite enlever la colonne de gauche pour simplifier le processus de commande (panier, paiement, etc.).
J’ai essayé de faire comme le montre ce tuto, mais sans succès…
Pouvez-vous m’aider ?
Merci d’avance
bonjour
merci pour cet excelllent tuto
je veins de l’appliquer sans problème !!
je souhaiterais pouvoir dans le meme ordre d’idée modifier la taille de la colonne center si c’est la page index sinon normal pour les autres
le but etant de creer un editorial à la taille de la page ??
merci de votre aide
aldo
j’essaye de modifier comme suit ma colonne center
creation d’une class dans le global css
old_center_column
avec taille a 950
ce qui marche sur la condition page index avec :
{if $page_name != ‘index’}
{/if}
mais je n’arrive pas à lui dire de revenir a l’ancienne class dans les autres cas
center_column à 556 ???
Salut
Merci pour ces infos, j’ai moi aussi besoin de supprimer la colonne de gauche de la page d’accueil.
Je remplace donc dans mon header.tpl la ligne :
{$HOOK_LEFT_COLUMN}
par :
{if $page_name != ‘index’}
{$HOOK_LEFT_COLUMN}
{/if}
Ca fonctionne effectivement pour la page d’accueil (je n’ai pas la colonne de gauche), mais dès que je veux aller sur une autre page, ca ne fonctionne pas, j’ai une erreur 500 ‘internal server error’ (gandi).
Loupe-je qque chose ??
D’avance merci !
Fred
Re,
Bon j’ai trouvé, il suffit de mettre les balises {if} de part et d’autre des balises {div}…
++
Fred
Bonjour, je suis sous prestashop 1.4, en 3 colonnes, j’aimerais avoir que 2 colonnes en pages d’accueil… , cherchant comme un damné depuis des jours, je suis tomber sur votre forum, question très bête, ou ce trouve le fichier TPL que vous mentionner au début ??? ” dans mon prestashop? ou chez mon hébergeur ? ( pour ma défense, je suis novice sur prestashop) mais je m’acharne à fond pour trouvez de multiple transformation à mon site.
Merciiii
Bonjour,
pour ma part je souhaiterai supprimer ce vilain footer sur la version 1.5.2 que je travaille en local… j’ai réussi à oter les colonnes et liens et changer le format et la couleur mais impossible s’enlever ce lien “Consulter la version mobile du site”…
C’est vraiment pénible; et à force de tourner en rond je ne sais même plus comment j’ai modifié ces colonnes et le format.
C’est assez complexe de travailler sur ces fichiers c’est une vrai jungle car je ne comprend pas la généalogie du site!
Merci d’avance pour vos idées en tout cas.
Cordialement.
Bonjour,
Je suis sur un site 1.4.9 et j’ai modifié le footer.tpl du dossier prestashop_new (thème).
Je ne constate pas de changement sur ma page d’accueil. La colonne de droite reste affichée…
Pouvez-vous m’aider ?
Merci
Dans le détail, voici ce que j’ai fait :
Remplacement de :
{$HOOK_RIGHT_COLUMN}
Par :
{if $page_name != ‘index’}
{$HOOK_RIGHT_COLUMN}
{/if}
C’est bien ça ?
Un petit up…
Bonjour,
voici mon problème, ce serait sympa de m’aider…
J’ai une page qui s’appelle “taille” que j’ai crée. On y voit le header et le footer que je souhaiterai retirer pour cette page. Comment je pourrai m’y prendre svp?
Bonjour Emilien,
A vrai dire, je ne sais pas trop comment poser ma question
Bon, je me lance : Je travaille sur un site classique en html5, et je me demandais s’il était possible “d’injecter” au cœur de ce site la fiche produit, par exemple.
Ou alors, si l’utilisateur clique sur “Mon Compte”, “injecter / encapsuler” la page prestashop de création de compte. L’objectif étant de limiter l’accès à la boutique classique. Il n’y a que 3 produits et il serait idéal de rester le plus longtemps possible sur le site de présentation, avant d’accéder à la boutique classique…
Cette présentation nécessite certainement (pour l’exemple de la fiche produit) un nettoyage des modules autour de cette fiche (Header, box(s), footer, etc.) et l’injection pourrait se faire à travers un iframe ?
Qu’en pensez-vous ?
Merci,
Thierry
Bonjour,
Je souhaiterais pouvoir personnaliser les h1 de mes catégories en fonction de la catégorie dans laquelle je me trouve.
Comment récupérer l’ID de la catégorie pour pouvoir personnaliser via la CSS ?
Merci de votre aide
en php : $_GET['id_category']
en smarty : {$category->id}
Mettez votre css dans le tpl pour effectuer des conditions
je suis désolée j’ai du mal à comprendre ce que l’on doit modifier…
(je souhaite pouvoir avoir mon carroussel (homeslider) sur toute la largeur… en ce moment même il apparait à droite mais pas à gauche ):o
Voici le contenu original de mon footer.tpl
{if !$content_only}
{if $page_name == ‘category’ && $sidebar_position == ‘right’}
{$HOOK_LEFT_COLUMN}
{/if}
{/if}
{* Home section hook *}
{if $page_name == ‘index’}
{hook h=’homeSection’}
{/if}
merci beaucoup pour vos réponses
Bonjour je dois être stupide mais j’ai beau faire et refaire la manipulation je n’arrive pas à enlever la colonne de gauche sur ma page d’accueil … voici mon code dans le dossier
Au secours !!!!
{$HOOK_TOP}
{$HOOK_LEFT_COLUMN}
{/if}