Jump to content

Afficher les liens des pages cms d'une même catégorie en bas de page


Francesco

Recommended Posts

Bonjour à tous.

Pour une question de praticité j'aimerai afficher en bas de page CMS une partie "articles dans la même catégorie".

Dans mon template (at_nova)il y a dossier cms avec un fichier category.tpl dans lequel il y a :

{if $sub_categories}
      <p>{l s='List of sub categories in %name%:' d='Shop.Theme.Global' sprintf=['%name%' => $cms_category.name]}</p>
      <ul>
        {foreach from=$sub_categories item=sub_category}
          <li><a href="{$sub_category.link}">{$sub_category.name}</a></li>
        {/foreach}
      </ul>
    {/if}

J'ai essayé de le repiquer et de le mettre dans page.tpl, mais ça ne fonctionne pas. Je suppose que les variables n'arrivent pas dans ce fichier.

Quelqu'un aurait-il une solution?

Prestashop 1.7.6.9

Edited by Francesco (see edit history)
Link to comment
Share on other sites

Bonjour Remy, 

Merci pour la réponse mais ce n'est pas vraiment ce que je cherche...

Je ne veux pas ajouter des articles de la boutique mais les pages cms de la même catégorie.

J'ai regardé chez webbax et sur le forum presta, mais je n'ai rien trouvé à ce sujet à part un article de 2014 qui ne fonctionne pas du tout avec les nouvelles versions..

 

Link to comment
Share on other sites


J'ai pris le temps de faire quelques test. Du coup je fais un récapitulatif, si des fois ça peut aider d'autres personnes

J'ai essayé la méthode 
override dans override/controllers/front/CmsController.php
Plantage->plus rien ne s'affiche dansle CMS "Cette page ne fonctionne pas"


J'essaye donc la modif dans dans controllers/CMScontroller.php
qui se trouve en réalité dans dans controllers/front/CMScontroller.php, dans ma version 1.7.6.9
Je trouve

$this->context->smarty->assign(array(
                'cms' => $cmsVar,
));

et non pas:

$this->context->smarty->assign(array(
'cms' => $this->cms,
));

Je remplace par:

$this->context->smarty->assign(array(
                'cms' => $cmsVar,
        'cms_pages' => CMS::getCMSPages((int)(self::$cookie->id_lang), (int)($this->cms->id_cms_category) ),
            ));

Résultat: Le CMS fonctionne.

La Modification du template:
Chez moi ça se passe dans themes/at_nova/templates/cms/page.tpl

J'ajoute

{foreach from=$cms_pages item=cmspages}
 <li>
  <a href="{$link->getCMSLink($cmspages.id_cms, $cmspages.link_rewrite)|escape:'htmlall':'UTF-8'}">{$cmspages.meta_title|escape:'htmlall':'UTF-8'}</a>
 </li>
{/foreach}

Cela fonctionne parfaitement!

MERCI BEAUCOUP Remy pour le coup de main.

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