Glossary presentation

De Wiki.

Sommaire

Principes

Le module Glossary permet de mettre en place un glossaire. Il détaille les termes techniques spécifiques à chaque site web.

Il propose en standard les fonctionnalités suivantes :

  • Gestion des définitions (ajout / modification / suppression)
  • Association depuis l'éditeur Wysiwyg
  • Affichage en info-bulle
  • Module Glossaire avec toutes les définitions

Fonctionnement

Backoffice

Côté backoffice, un module glossaire s'affiche dans le menu si l'on ajoute la fonction GLOSSARY au mini site.

Il est possible d'ajouter, de modifier et de supprimer toute définition.

La définition est composée de :

* un titre court (terme à définir)
* un sous-titre (définition courte, affichée dans l'info-bulle des pages de contenus)
* un corps de texte (définition plus étendue, affichée dans le glossaire)
* documentations (pdf / doc /etc)
* images 
* un lien
File:Glossary3.gif

Editeur Wysiwyg

Pour ajouter une définition sur une zone de texte, un bouton "Glossaire"est disponible dans la barre d'outils de l'éditeur Wysiwyg.

File:Glossary1.gif

Après avoir sélectionné le mot à définir avec le curseur, un clic sur le bouton "Glossaire" permet l'ouverture d'une fenêtre contenant la liste des définitions. En cliquant le mot choisi, le code HTML affichant l'info-bulle est automatiquement inséré dans l'éditeur.

File:Glossary2.gif

Frontoffice

Côté front-office, le glossaire est accessible depuis une page présentant un index. Au clic sur une lettre, la liste des définitions commençant par cette lettre s'affiche. Au clic sur la définition, la définition étendue s'affiche.

File:Glossary4.gif

Sur les zones choisies depuis le Wysiwyg, une info-bulle s'affiche au roll, avec la définition courte.


File:Glossary5.gif


Variables

Par défaut, la variable de GET 'lettre' utilisée par le glossaire n'est pas dans $getVars Il faut la rajouter dans le fichier de configuration

www/include/config.php

$getVars = array(
 "lettre" => "varchar"
)

Fonctions

Les fonctions suivantes offrent les méthodes pour construire et afficher le glossaire.

Fonction permettant l'affichage de l'indexation, avec ou sans le champs "Tous", avec ou sans l'affichage de toutes les Lettres

/**
* Get index
*
* @return  Array
* @param	separateur		$text			Separator between each letter
* @param	Bool		$showItemAll		Show Item "All"
* @param	Bool		$showAllLetters		Show All Letters or only those with definition
* @param	Array		$abc		 		Contains all definitions
*/
function getAbecedaire ($separateur = "", $showItemAll, $showAllLetters, $abc) {
}
 Tous A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 

Fonction permettant de récupérer un tableau avec toutes les définitions

/**
* Get all definitions in an array
*
* @return  Array
* @param	Bool		$showItemAll		Show Item "All"
* @param	Bool		$showAllLetters		Show All Letters or only those with definition
*/	 
function getABC ( $showItemAll, $showAllLetters) {
}

Utilisation / Intégration

class.renderGlossaryResult.php

Création d'une page Render pour le rendu

class renderGlossaryResult {
 var $controller = null;
 function renderGlossaryResult ($control) {
  $this->controller = $control;
 }
 // render
 /**
 * @param	$params		a list of parameters or objects available for rendering
 *				
 * @return	void
 */
 function render ($params) {
  echo 'Glossaire'; 
  if (!is_as_get("id")) { 
    echo $params['abecedaire'];  
  } 		 
  if (isset($_GET['id']) && $_GET['id'] != ) { 
   $id = $_GET['id'];
   $lettre = $_GET['lettre'];
   $definition = $params['abc'][$lettre][$id]  ;
   echo $definition["titrecourt"];
  }
  elseif (isset($_GET['lettre']) && $_GET['lettre'] != ) { 
   $lettre = $_GET['lettre'];
   foreach ($params['abc'][$lettre] as $k => $definition) { 
    echo '<a href="?lettre='.$lettre.'&id='.$k.'">'.$definition["titrecourt"].'</a>';
   }
  }
  else {
   foreach ($params['abc']["all"] as $k => $definition) { 
    echo '<a href="?lettre='.substr ($definition["titrecourt"], 0, 1).'&id='.$k.'">'.$definition["titrecourt"].'</a>';
   } 
  }
}


Appel du render

include_once('cms-inc/glossary/class.GlossaryController.php');
$controller = new GlossaryController();
$controller->build("renderGlossaryResult");


Feuille de style

ajouter les styles de l'info-bulle dans le fichier spaw si vous souhaitez avoir un aperçu dans le Wysiwyg


Appel de la définition au Roll

Depuis le wysiwyg, il est possible d'associer une définition à un mot. Pour que l'appel se fasse en front (au roll, une fenêtre apparait avec la définition & le lien vers le glossaire), il faut inclure dans le fichier utilisé le fichier suivant :

www/include/cms-inc/glossary/headerjs.inc.php


Si le lien vers le glossaire pointe sur une page en particulier, il faut le définir dans le fichier de config :

  • par défaut le glossaire se trouve à cette page :
VERSION FR : /content/fr/Glossaire/index.php
VERSION EN : /content/en/Glossary/index.php
  • la variable XX-ID-XX sera remplacée par l'id de la définition
define ("DEF_HREF_FCK_GLOSSAIRE_FR", "javascript:popupcentree('/content/fr/Glossaire/index.php?id=XX-ID-XX',524,583,'menubar=no,scrollbars=yes,statusbar=no,directories=no');");

Exemple

  • Projet Métiers de l'espace
  • Projet Safral

Evolutions

Il faudrait mettre en place les traductions pour le glossaire