Plugin glossaire

Ce plugin intègre le filtre lier_au_glossaire de François Schreuer pour les versions de SPIP supérieures ou égales à 1.9. Vous pouvez voir ce que ça donne par ici.

Caractéristiques

-  le principe général est le même : le filtre parcourt le texte auquel il est appliqué et fait un lien des occurrences du glossaire vers leur définition ;
-  le contenu du glossaire se place dans un groupe de mots-clés nommé « glossaire », chaque mot-clé représente une entrée, et le texte du mot-clé sa définition (au lieu du couple rubrique-brèves) ;
-  seule la première occurrence du mot défini est gérée par le filtre (la contrib permettait de traiter toutes les occurences du même mot dans un même champ) ;
-  un clic sur le mot défini affiche sa définition dans une fenêtre popup (ou renvoie vers le mot-clé correspondant si javascript est inactif ou absent).

Installation

-  Assurez-vous de disposer de la balise #INSERT_HEAD dans les squelettes (livrée en standard dans les squelettes par défaut, cf. doc) ;
-  Décompressez le contenu du zip ci-joint dans le répertoire ’plugins’ de votre site (s’il n’existe pas, créez-le), puis activez le plugin via l’espace privé (Configuration : Gestion des plugins) ;
-  Appliquez le filtre lier_au_glossaire dans les squelettes appropriés — par exemple, [(#TEXTE|lier_au_glossaire)] dans le squelette article.

Recalculez un article contenant au moins une occurrence du glossaire (ou videz le cache). Si le résultat vous satisfait, vous pouvez en rester là. Sinon, option facultative, le dossier du plugin contient trois fichiers modifiables sans risque de tout casser, selon les goûts, les couleurs et les compétences de chacun. Détails et marche à suivre :

Surcharge de fichiers

Il suffit de placer dans votre dossier de squelettes des fichiers du même nom avec vos modifications ou vos ajouts :

-  mot_glossaire.html est le squelette de la fenêtre popup. Elémentaire, il n’affiche que le titre et le texte du mot-clé appelé. Il applique également le filtre lier_au_glossaire au texte du mot-clé : on peut ainsi passer d’une définition à l’autre dans la même fenêtre ;
-  glossaire.css définit les styles du squelette précédent et des liens vers le glossaire ;
-  glossaire.js définit la taille et les éléments de la fenêtre. On peut se contenter d’en modifier les différents attributs, taille, position, ouverture dans la même popup, etc. en faisant attention toutefois de ne pas toucher au premier : ’page’, qui est renseigné par SPIP dans la fonction php.

Il existe une autre version de plugin développée par Philippe Auriol à partir de la contrib de François Schreuer sur SPIP-Zone.
J’ai intégré le bout de code de Philippe qui évite de casser les liens hypertextes mais les deux plugins restent sensiblement différents.

Discussion

10 discussions

  • 2

    Bonjour, y a-t-il des plans pour ce plug-in est compatible avec SPIP 3.1.4, ou il y a un autre qui est compatible ?

    Merci d’avance

    • Oui le plugin est compatible 3.1 et 3.2. Le plugin.xml est à jour, attendre un peu la génération du zip ou faire soi-même la modif.

      Sinon je recommande aussi Dictionnaires, mais il faudrait pouvoir migrer simplement.

    • Merci, Fred, je vais faire le changement. Et encore merci pour le plugin.

    Répondre à ce message

  • Il existe aussi http://contrib.spip.net/Dictionnaires

    il est dit dans le texte : « Un plugin proche existe : le plugin Glossaire mais SPIP a tendance à mouliner lorsque la liste des définitions (un groupe de mots-clés) est trop importante. Moins proche et entièrement manuel, le raccourci Wikipedia de SPIP : Wikipedia. »

    Répondre à ce message

  • 4

    Bonjour

    Est-il possible d’attacher un lien au mot trouvé ?
    Dans l’article, quand je clique sur le mot, je voudrais aller vers un autre site, et non voir le popup.

    • Je ne comprends pas bien la question. Les liens générés par le glossaire sont nécessairement internes, vers le mot-clé correspondant défini dans le site lui-même.

      Pour un glossaire externe, on peut utiliser le raccourci SPIP [?machin] (machin), configurable via la variable $url_glossaire_externe (cf. l’aide en ligne).

    • Je prends un exemple pour être plus précis sur ce que je recherche :

      Si dans mon article, j’ai l’expression « spip », je veux que le code html généré soit : spip

      et non pas un lien vers un js qui ouvre un popup

    • Ça n’a pas grand chose à voir avec le glossaire interne... Regarde peut-être du côté de cette vieille contrib : les liens automatiques.

    • spécifier le lien : c’est désormais possible avec le glossaire interne du couteau suisse

    Répondre à ce message

  • 2

    Bonjour,

    Sur chaque tentative de téléchargement d’un greffon, voici le message qui s’affiche :

    Not Found
    The requested URL /files/spip-zone/ was not found on this server.

    Cordialement.

    Répondre à ce message

  • 1

    tout bien installé le plugin + patch et ... ca marche pas ! mais j’ai peut etre pas tout compris.

    Une fois installé il suffit de rafraichir la page et le lien se fait ? sinon j’ai un doute sur l’endroit ou mettre le lier_au_glossaire . Je fais les essais avec le squelette dit et il y a des quantites de TEXT. C’est dans lequel.

    Help please. merci

    • Bonjour,

      à questions précises réponses précises :

      -  il ne suffit pas de rafraîchir la page de ton navigateur, il faut surtout la recalculer sur le serveur pour qu’il prenne en compte ta modification. Ou bien encore vider le cache pour que ta modification fasse effet sur l’ensemble des squelettes modifiés sur ton site.
      -  le filtre lier_au_glossaire s’applique à n’importe quelle balise de texte. Tu peux regarder le code source du squelette du site-exemple (modif du squelette de base de la dist), http://burof.free.fr/squelettes/article.html, où j’ai appliqué le filtre à

      [<div class="#EDIT{texte} texte">(#TEXTE|lier_au_glossaire|image_reduire{520,0})</div>]

      et à

      [<div class="notes"><h2><:info_notes:></h2>
      #DEBUT_SURLIGNE(#NOTES|lier_au_glossaire)#FIN_SURLIGNE</div>]

      Voilà, j’espère que ça t’aidera.

      Si tu ne t’en sors pas je te conseille le couteau suisse de Patrice Vanneufville (cf. ci-dessous), où tout est prémâché : tu n’as qu’à l’installer, ça marche tout seul et la fonction est plus puissante. Bémols : c’est moins modulable par des newbies et le texte du glossaire est chargé au milieu du texte de l’article. Et tu n’installes pas seulement le plugin qu’il te faut (même si tu n’es pas obligé de tous les activer).

    Répondre à ce message

  • Bonjour,

    Un glossaire analogue a été pris en charge par le Couteau Suisse.
    Pour plus d’infos, c’est ici : Un glossaire interne pour vos sites.

    Entre autres :
    -  L’idée du groupe de mots-clés « glossaire » a été conservée.
    -  De nombreuses balises HTML sont préservées
    -  Le survol de la souris affiche directement la définition du mot.
    -  Le cadre de définition est configurable par css
    -  Pas de nouvelle fenêtre ouverte (popup)
    -  La recherche est insensible à la casse.
    -  Tout est automatique : aucun filtre à ajouter dans votre squelette

    Répondre à ce message

  • 7

    Hello

    Je viens de me craquer en beauté visiblement.

    Je viens d’upgrader en 1.9.2 et mon site me dit que le filtre lier_au_glossaire n’est pas définis.

    Pourtant mon plugin est activé et ne pose en lui même pas de problèmes dans l’interface privée.

    J’avoue que je ne comprends pas trsè bien là. Si quelqu’un a une idée.

    Merci beaucoup et bonne journée à tous

    Zzz.

    • j’ai le même problème et en plus ..j’ai aussi un message pour le filtre
      « Agenda_affdate_debut_fin » du plugin agenda et barre typo est HS.

      Il semble que les filtres définis dans les plugins ne fonctionnent plus ..

      je pense que le plugins glossaire est récupérable en l’enlevant des plugins et en posant les squelettes avec les squelettes, les fonctions dans mes_fonctions .php, etc.. en attendant mieux .. pour l’agenda c’est autre chose

      ps : il faut toujours tester les migrations en local avant de migrer ton site

    • en attendant une solution, si tu peux te passer du glossaire, désactive le pluging et en lève le filtre dans tes articles..

    • oseille

      Dolce, dolce... ce plugin est vraiment basique, il y a peu de chance que ce soit lui qui pose problème. En tout cas il tourne toujours avec la dist de SPIP 1.8.2 (cf. burof.free.fr).

      Difficile de te proposer une solution comme ça. As-tu refait une install propre de SPIP ? As-tu essayé de désactiver tous les autres plugins sauf celui-là, puis de les réactiver un par un pour voir où ça cloche ? etc ...

      Par ailleurs, le test en local n’est parfois pas suffisant, on peut avoir des surprises avec des config de serveur différentes.

    • oseille

      Non, ce plugin ne tournera jamais avec SPIP 1.8.2 :-)

      Je voulais évidemment écrire 1.9.2., arf

    • Le plugin est effectivement "basique" ( mais bien fait et très utile) et si je récupère les éléments que je les places "hors plugin" ils fonctionnent.

      J’ai plusieurs erreurs de FILTRE non défini pour des filtres de plugin :
      WALMA : régler_langue_navigation ( un recalculer lève le pb et il revient à la prochaine connexion ??) , AGENDA ( Erreur : filtre « Agenda_affdate_debut_fin » non défini.. ) et lier_au glossaire ..

      Tout fonctionne sauf les filtres des plugins..

      Qu’est ce qui ne va pas ?

    • J’ai retélécharger le plugin et je l’ai installé en desactivant les autres plugins et cela marche.

    • L’oiseau2nuit (not Zzz. anymore)

      Sorry les gens, j’avais pas enregistré le fil de messages. Je vais tester vos soluces et je vous enverrai un feedback porochainement ;)

      Merci pour vos idées en tout cas.

      Bonne journée.

    Répondre à ce message

  • 2

    Merci Fred pour ce merveilleux Plugin.

    Juste une chose, il m’a semblé intéressant d’écrire une page de squelette « glossaire » permettant d’afficher l’ensemble des définitions sur une seule page. Cela permettant bien sûr de l’imprimer (ou de l’exporter en PDF). Seulement voilà, le problème de la navigation au sein de cette page se pose. En effet, comment se rendre facilement à une définition ?

    J’avais pensé que le plus simple pourrait être de proposer un menu déroulant contenant les entrées et que celui-ci, à la différence d’un « menu déroulant pour présenter une liste d’articles », pourrait chercher à atteindre une ancre interne (l’ID du mot-clef par exemple).

    Voici le code :

    <FORM ACTION="spip.php" METHOD="get">	
    	<SELECT NAME="page">
    		<BOUCLE_mot_principal1(MOTS) {type==glossaire} {par titre}>
    		    <OPTION VALUE="glossaire#[(#ID_MOT)]">[(#TITRE)]</OPTION>
    		</BOUCLE_mot_principal1>
    	</SELECT>
    	<INPUT TYPE="submit" NAME="Valider" VALUE="Afficher">
    </FORM>

    Lorsque je sélectionne une entrée via ce menu déroulant et que je valide cette sélection, l’URL obtenue est alors :

    spip.php?page=glossaire%2310&Valider=Afficher

    soit fausse et me retournant la page 404.

    Une idée ?

    Cordialement,

    Yann974

    • 	<FORM NAME="choix" METHOD="post"   >       
              <SELECT NAME="page"   > 
                      <BOUCLE_mot_principal1(MOTS) {type==glossaire} {par titre}>
                          <OPTION VALUE="[(#ID_MOT)]" >[(#TITRE)]</OPTION>
                      </BOUCLE_mot_principal1>
              </SELECT>
      		 <INPUT TYPE="submit" NAME="Valider" VALUE="Afficher" onclick="javascrip:document.choix.action='spip.php?page=glossaire#'+document.choix.page.value;">
           </FORM>

      si ta page s’appelle glossaire cela marche..

    • Merci BEAUCOUP ^^

    Répondre à ce message

  • 2

    Merci Fred ! :)

    Le pire c’est que sur mon spip en localhost, j’avais déjà pondu un groupe de mot clés Glossaire en prévision de l’élaboration future d’un tel système. Tu m’as coiffé au poteau là :D

    Petite bidouille si vous utilisez les « NiceTitle »

    dans le fichier glossaire_fonctions.php , Ligne 22 (version non modifiée préalablement)

    remplacer

    $r = spip_query("SELECT id_mot, titre FROM spip_mots WHERE type='glossaire'");

    par

    $r = spip_query("SELECT id_mot, titre{{, texte}} FROM spip_mots WHERE type='glossaire'");

    et ligne 27 (tjs dans une version non modifiée préalablement)
    remplacer

    $texte = first_replace("$o[titre]","<a href=\"spip.php?mot".$o[id_mot]."\" class=\"affgloss\" title=\"Glossaire\" onclick=\"popupGloss('spip.php?page=mot_glossaire&id_mot=$o[id_mot]'); return false;\">$o[titre]</a>",$texte);

    par

    $texte = first_replace("$o[titre]","<a href=\"spip.php?mot".$o[id_mot]."\" class=\"affgloss\" title=\"$o[texte]\" onclick=\"popupGloss('spip.php?page=mot_glossaire&id_mot=$o[id_mot]'); return false;\">$o[titre]</a>",$texte);

    et votre définition s’affichera au survol du mot par la souris. Le popUp reste d’actualité si l’internaute clique malgré tout sur le mot ;)

    Wouali woualou wouala ! :D

    Bon Code et Bonne 2007e à vous ;)

    • Bon... je ne sais pas ce qu’il s’est passé, je n’ai pas eu le temps de reconvertir mes dernière balise code en balise cadre, je lançais une prévisu de mon message pour voir quand mon post s’est validé tout seul malgré tout. en même temps, au vue des changements intervenus sur la page, quelqu’un a du « recalculer » le squelette du forum pendant que je tapais mon message :P

    • Je me rend compte en me relisant que mon 2e bloc de code contient une magistrale boulette :

      au lieu de

      $r = spip_query("SELECT id_mot, titre{{, texte}} FROM spip_mots WHERE type='glossaire'");

      Il fallait en fait lire

      $r = spip_query("SELECT id_mot, titre, texte FROM spip_mots WHERE type='glossaire'");

      J’avais voulu « hilighter » la modif effectuée pour que tout le monde la voit en la mettant en gras dans le code sans penser que < cadre > traduirait TOUT le code en texte brut, et donc le raccourcis typo de SPIP également. Désolé beaucoup !

    Répondre à ce message

  • 2

    Bonjour

    j’utilise ce plugins mais en utilisant des articles à la place des mots clés
    tout ceci fonctionne très bien sauf pour les images et les documents ou la il remplace les occurences des mots contenu dans le alt des images ou le title des liens ce qui les empeche de s’afficher correctement

    est ce qu’il y a un moyen de résoudre ce probleme ??

    merci

    • La variante du glossaire de François Schreuer par Philippe Auriol, cf. http://zone.spip.org/trac/spip-zone..., tente de résoudre le problème avec les liens.
      Tu peux essayer de l’adapter aussi aux images et d’intégrer les deux versions.

    • Merci c’est tout à fait ce que je cherchais !!!

      J’ai modifié un petit un peu cette version en intégrant les images et ca marche bien pour l’instant ;)

      Voici l’expression réguliaire que j’utilise si jamais ca peut servir :
      au lieu du $search= '@<a[^>]*?>.*?</a>@msi'; je mets
      $search = '@<img[^>]*/>|<a[^>]*?>.*?</a>@msi';

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom