Jump to content
MrSoulPC915

Récupérer le titre d'une page CMS

Recommended Posts

Bonjour à tous,

Je cherche à faire un truc simple, mais je ne trouve aucune ressource, ni dans la doc, ni sur le web.

Je cherche simplement à ajouter des liens CMS sur une template.

Pour l'URL, aucun problème : {url entity='cms' id='1'}

Mais pour récupérer le titre de la page à partir de l'ID, j'ai cherché partout, testé un tas de variable, mais impossible.

Une idée de la procédure ?

Edited by MrSoulPC915 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour

Tu peut étendre la class Tools et ajouter une méthode, cmsGetTitleById('1') qui te renvoi le titre.

  • Like 1

Share this post


Link to post
Share on other sites

C'est une première pour moi donc il est possible que je dise une bêtise.

Il faut créer un override au fichier controllers/front/CmsController.php ?

Share this post


Link to post
Share on other sites

Désolé, j'ai trouvé, donc je partage le code ici (pour prestashop 1.7) :

/override/classes/Tools.php :

<?php
class Tools extends ToolsCore {
    public static function getCMSTitle($id_cms,$id_lang) {
        $cms = new CMS($id_cms, $id_lang);
        return $cms->meta_title;
    }
}
?>

 

Dans les TPL :

{Tools::getCMSTitle(1, $language.id)}

Où 1 est l'ID de la page CMS.

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

Je ne comprends pas pourquoi vous n'utilisez pas

Meta::getCmsMetas($idCms, $idLang, $pageName);

En plus les overrides de la classe Tools pose problème quand on souhaite débuguer et profiler. 

Après je connais pas bien la 1.7 

Share this post


Link to post
Share on other sites

Bonjour,

Je n'ai pas trouvé comment faire sans override, mais vous semblez avoir la solution.

Pourriez vous m'indiquer comment utiliser Meta::getCmsMetas() pour afficher le titre d'une page CMS (alors qu'on est pas sur la dite page) ?

Merci d'avance pour vos précisions.

Share this post


Link to post
Share on other sites

Dans ton override tu renvoies directement le texte 

Avec 

Meta::getCmsMetas($idCms, $idLang, $pageName);

Tu te retrouves avec un tableau ou objet je ne sais plus, donc cherche assign smarty dans google 

Genre

{assign var="metaCms" value=Meta::getCmsMetas(1, 1)} 

Une fois la variable assignée tu pourras retrouver ton title :) 

La classe meta est appelée pour toutes les pages donc pas de soucis

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More