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.

La Gestion de Contenu Simplifiée

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

Catégorie : Astuces et conseils

Question : comment faire pour que votre module soit capable d'agir sur la balise La Gestion de Contenu Simplifiée 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

  Flux Rss Twitter Facebook