Aller au contenu

October 15, 2013

1

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 :

{$HOOK_RIGHT_COLUMN}

par celles-ci :

{if $page_name != 'index'}
{$HOOK_RIGHT_COLUMN}
{/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 !

Publié par
Plus d'articles pour la catégorie Tutoriels
45 Commentaires Poster un commentaire
  1. Fred
    Oct 20 2011

    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.

    Reply
    • eMizZ
      Oct 20 2011

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

      Reply
      • Fred
        Oct 20 2011

        Merci eMizZ pour cette information précieuse.

        Test ok.

        Reply
  2. Dardanelli Laurent
    Nov 18 2011

    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

    Reply
    • eMizZ
      Nov 18 2011

      Soyez plus précis sur ce que vous souhaitez faire, je n’hésiterai pas à vous aider.

      Reply
      • Dardanelli Laurent
        Nov 18 2011

        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)

        Reply
  3. Jeckill
    Feb 7 2012

    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,

    Reply
  4. ZooCo38
    Feb 29 2012

    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.

    Reply
  5. ZooCo38
    Feb 29 2012

    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}

    Reply
  6. ZooCo38
    Feb 29 2012

    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}

    Reply
  7. Mar 7 2012

    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

    Reply
    • eMizZ
      Mar 7 2012

      Tout dépend de la page en question

      Reply
      • Mar 7 2012

        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

        Reply
  8. Mathieu
    Apr 18 2012

    Merci infiniment !!
    Je cherchais ça depuis un moment. Super ces tuto !

    Reply
  9. Jun 1 2012

    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 ?

    Reply
    • Jun 1 2012

      C’est le nom du fichier sans le “.php”

      Reply
  10. Jun 1 2012

    Bon j’ai trouvé !
    Il faut assigner une variable page_name dans le controller de la dite page.

    Reply
  11. QUINTANILLA Juan-Antonio
    Jun 11 2012

    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

    Reply
  12. tax
    Jul 13 2012

    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

    Reply
  13. Aug 14 2012

    how to get title category, where id = 5
    Thanks

    Reply
  14. Oct 23 2012

    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

    Reply
  15. Nov 14 2012

    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 :)

    Reply
  16. Nov 23 2012

    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 ?

    Reply
  17. Lo
    Nov 24 2012

    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)

    Reply
  18. Lo
    Nov 24 2012

    C’est bon, j’ai trouvé !!!!!! (j’ai travaillé le mauvais fichier) Merci quand même.
    JP.

    Reply
  19. Mathieu
    Dec 5 2012

    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 :)

    Reply
  20. Dec 18 2012

    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

    Reply
  21. Dec 18 2012

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

    Reply
  22. Fred
    Jan 1 2013

    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

    Reply
  23. Fred
    Jan 1 2013

    Re,

    Bon j’ai trouvé, il suffit de mettre les balises {if} de part et d’autre des balises {div}…

    ++

    Fred

    Reply
  24. Feb 13 2013

    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

    Reply
  25. Feb 25 2013

    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.

    Reply
  26. Mar 8 2013

    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

    Reply
  27. Mar 8 2013

    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 ?

    Reply
  28. Mar 27 2013

    Un petit up…

    Reply
  29. Olivia
    May 9 2013

    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?

    Reply
  30. Jul 18 2013

    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

    Reply
  31. caro
    Jul 24 2013

    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

    Reply
    • Jul 28 2013

      en php : $_GET['id_category']
      en smarty : {$category->id}

      Mettez votre css dans le tpl pour effectuer des conditions

      Reply
  32. marleen
    Nov 27 2013

    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

    Reply
  33. Jan 6 2014

    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}

    Reply

Trackbacks & Pingbacks

  1. Divers | DEAAZ - studio graphique

Partagez votre opinion, postez un commentaire.

(requis)
(requis)

Note: Le HTML est autorisé. Votre e-mail (ne sera pas publié).

S'abonner aux commentaires


8 + 6 =