Les mots-clés Reaxia
Un article de ReaxiaWiki.
Utilité des mots-clés
Les contributeurs ont pour rôle de rédiger les textes du site. Pour faciliter ce travail et éviter des erreurs, il faut éviter d'inclure des éléments complexes comme un formulaire dans les pages de contribution. Pour résoudre ce problème, Reaxia propose un système de mots-clés.
Les mots-clés peuvent remplacer tout élément dynamique ou complexe :
- un formulaire,
- le plan du site,
- l'insertion d'une vidéo,
- une gallerie d'images,
- un lien d'impression,
- une bannière de publicité,
- ...
Le contributeur n'a pas accès au code représenté par ces mots-clés et ne risque donc pas de le modifier par erreur.
Mise en place d'un mot-clé
Les mots-clés sont au format [[MOT_CLE]], entourés par deux paires de crochets. La casse n'a pas d'importance, mais par convention les mots-clés sont écrits en majuscules. Ils sont placés dans les paragraphes édités par les contributeurs et peuvent être facilement déplacés dans un ou plusieurs contenus. Ce système ne concerne que les contenus structurés : les mots-clés ne sont pas évalués pour les pages rédactionnelles qui sont directement affichées.
Pour que le contributeur ait une description du mot-clé dans la liste, il faut ajouter une ligne au début de la librairie d'affichage concernée :
$GLOBALS['conf']['keywords']['FORMULAIRE_CONTACT'] = "Affiche le formulaire de contact pour l'envoi d'un mail au webmaster";
Interprétation des mots-clés
Pour que ces mots-clés soient remplacés par du code généré, il faut ajouter un traitement spécial dans la librairie affichant le contenu. Voici la méthode process_thread_content() contenant le type de code à ajouter :
/**
* Does whatever needs to be done with the selected blocs
* @return string usually an HTML fragment, but it can be nothing.
*/
function process_thread_content()
{
$html = '';
$Titre = $this->Blocs[0]['category_1_name'];
$Contenu_de_la_page = $this->Blocs[0]['paragraph_1_text'];
// replace keywords
$textBefore = '';
$textAfter = '';
if (FindKeyword($Contenu_de_la_page, '[[PLAN_DU_SITE]]', $textBefore, $textAfter))
{
$Contenu_de_la_page = $textBefore;
$Contenu_de_la_page .= get_site_map();
$Contenu_de_la_page .= $textAfter;
}
if (FindKeyword($Contenu_de_la_page, '[[FORMULAIRE_CONTACT]]', $textBefore, $textAfter))
{
$Contenu_de_la_page = $textBefore;
$Contenu_de_la_page .= get_contact_form();
$Contenu_de_la_page .= $textAfter;
}
$html .= '<h1>'.$Titre.'</h1>'."\n\n";
$html .= $Contenu_de_la_page;
return $html;
}
Avant d'être ajoutée au code HTML retourné, la variable $Contenu_de_la_page est analysée. Si elle contient les mots-clés [[PLAN_DU_SITE]] ou [[FORMULAIRE_CONTACT]], ces derniers seront remplacés par du code généré par les fonctions get_site_map() et get_contact_form() (fonctions à créer par le développeur du site). Ces fonctions peuvent appeler d'autres librairies d’affichage. La fonction FindKeyword() renvoie true si le mot-clé passé en paramètre a été trouvé. Elle place le texte précédant le mot-clé dans $textBefore et le texte suivant dans $textAfter.
