Puissant pour les pros
Simple pour les utilisateurs

CMS Made Simple, un CMS open source, permet la gestion rapide et facile des contenus d'un site web. Ce CMS est adapté aussi bien pour les petites sociétés que pour les grandes entreprises.

Faire un module qui agisse sur le titre d'une page

28 septembre 2011
Catégorie : Astuces et Conseils
Posté par : bess

Question : comment faire pour que votre module soit capable d'agir sur la balise Détail de l'article de votre gabarit ? réponses dans cette news :)

 

Edit 8 Octobre : article mis à jour (il manquait un bout)

Etape n°1 :

Assurez vous que $config['process_whole_template'] = false; dans le fichier de config.php

Etape n°2 :

Dans le gabarit de votre module, assignez à smarty le titre de votre choix :

{assign var='title' value='mon super titre'}

Note : vous pouvez également le faire depuis les classes PHP :

$smarty->assign('title','mon super titre');

Etape n°3:


Dans le gabarit de votre page :

remplacez

{process_pagedata}

par

{*process_pagedata*}{content assign="capturedcontent"}

 

remplacez

{content}

par

{*content*}{$capturedcontent}

 

et enfin remplacez (dans notre exemple)

<title>{$title}</title>

par

<title>{if isset($title)}
{$title}
{else}
{title}
{/if}</title>

 

Ainsi votre site sera capable d'afficher 'mon super titre' dans la balise <title> dès que votre module sera utilisé. Pratique pour améliorer votre référencement des pages du module

 

Comment ça fonctionne ?

Le {process_pagedata} à pour but d'interpréter toute la page en smarty avant de faire appel aux modules. Alors forcement avec cette ligne, toute tentative d'insertion dans smarty de valeur personnalisée ne pourrait pas fonctionner, ceci explique donc notre suppression de {process_pagedata}.

Ensuite nous avons mis en place une grosse condition : si la variable $title existe, c'est que nous sommes dans une page qui affiche notre module. Il faut donc afficher $title plutôt que d'appeler la balise title de cmsmadesimple habituellement utilisée.

 

Mon conseil : utilisez cette astuce pour plein de choses, comme l'inclusion de librairies JS nécessaires uniquement pour vos modules :)

 

source1 source2

Et pour tous ceux qui ne le savent pas encore ? CMS Made Simple c'est également Facebook, Twitter et même un flux RSS pour rester constamment au courant des nouveautés, des annonces et des préviews de la communauté ! Alors aucune excuse pour dire que vous n'étiez pas au courant :)

comments powered by Disqus
Agence Website12
  Flux Rss Twitter FaceBook