Un glossaire interne pour vos sites - comments Un glossaire interne pour vos sites 2018-12-28T21:08:21Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment499238 2018-12-28T21:08:21Z <p>Les 2 plugins cohabitent dans problème, mais si j'ai le groupe de mots Glossaire et un sous groupe à l'intérieur et que je place l'un des mots du glossaire dans ce sous groupe, le mot n'est plus détecté dans les textes et donc le plugin glossaire est inopérant pour ce mot.</p> Un glossaire interne pour vos sites 2018-12-28T16:04:12Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment499234 2018-12-28T16:04:12Z <p>Bonjour. Il me semble que ça devrait bien cohabiter, non ? Quel est le besoin précis ?</p> Un glossaire interne pour vos sites 2018-12-28T15:07:53Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment499233 2018-12-28T15:07:53Z <p>Bonjour,</p> <p>Serai-t-il possible d'utiliser ce plugin avec le plugin “<a href='https://contrib.spip.net/Groupes-de-mots-cles-arborescents' class="spip_in" hreflang="fr" rel='nofollow'>Groupes arborescents de mots clés</a>”?</p> <p>Merci d'avance,</p> <p>Cordialement,</p> <p>Hervé</p> Un glossaire interne pour vos sites 2018-03-17T15:18:18Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment496325 2018-03-17T15:18:18Z <p>Bonjour j'ai activé Rang dans mon site. <br class="autobr" /> Depuis j'ai un problème avec le glossaire interne. Les contenus des mots clés issus de raccourcis <tt><article98|descriptif></tt> ne s'affiche plus. Voir mot Grace Kelly dans la page.<br class="autobr" /> J'ai désactivé le plugin. Les numéros de titres des objets sont toujours là. Avez-vous une idée ? Merci</p> Un glossaire interne pour vos sites 2018-03-12T14:05:07Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment496238 2018-03-12T14:05:07Z <p>Bonjour, dans les champs descriptif et texte d'un mot clé du glossaire interne, j'ai mis les liens vers des champs alias : exemple <tt><article98|descriptif></tt> <tt><article98|texte></tt>.<br class="autobr" /> Cela ne fonctionne plus. Peut être depuis qu'en activant un plugin, le site a entrepris de mettre un numéro à chaque objet ? Merci de votre aide.</p> Un glossaire interne pour vos sites 2014-09-30T19:26:47Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477197 2014-09-30T19:26:47Z <p>merci Patrice !!!</p> Un glossaire interne pour vos sites 2014-09-29T22:32:32Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477189 2014-09-29T22:32:32Z <p>Bon, c'est sans doute un problème d'accents dans la regexpr, tout dépend du codage utilisé par ton site...<br class="autobr" /> Voici une expression qui fonctionne :<br class="autobr" /> <font size="1"><code>107<sup>e</sup> R.I./,107(<sup[^>]*>)?e(</sup>)? *(R[.]*I[.]*|R\S+giment d\S+ ?Infanterie),i</code></font></p> Un glossaire interne pour vos sites 2014-09-26T23:50:09Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477149 2014-09-26T23:50:09Z <p>Merci bcp Maïeul.</p> <p>Pour ton problème Ivandps, j'ai refais les tests de mon côté, mon expression régulière ne me cause pas d'erreur et fonctionne parfaitement. Tu as peut-être pas bien recopié, ou il existe peut-être une interaction inattendue dans les plugins. Je te propose de me convier en administrateur privé sur ton site si le problème persiste.</p> <p>Sinon, je confirme que ton titre proposé le 22/10 à 20:45 n'est pas correct et ne doit pas être utilisé en l'état.</p> Un glossaire interne pour vos sites 2014-09-24T18:53:13Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477099 2014-09-24T18:53:13Z <p>je viens de corriger la balise code/cadre dans le forum, mais à l'avenir il faudrait le mettre</p> Un glossaire interne pour vos sites 2014-09-24T18:48:50Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477098 2014-09-24T18:48:50Z <p>Warning: preg_replace() [function.preg-replace]: Unknown modifier '<' in /home/amidesk/www/trace/tmp/couteau-suisse/mes_fonctions.php on line 856</p> Un glossaire interne pour vos sites 2014-09-23T19:53:33Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477080 2014-09-23T19:53:33Z <p>Pour le test, t'as bien fait un copier-coller complet ? chez moi ce truc genre marche bien pourtant...</p> <p>Je ne comprends pas ce que t'as mis, spip réclame un balise <strong>code </strong> ou <strong>cadre</strong>...</p> <p>Et quel genre de warnings ?</p> Un glossaire interne pour vos sites 2014-09-22T18:45:11Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477050 2014-09-22T18:45:11Z <p>bonjour merci j'ai testé le “truc genre” ci-dessus. <br class="autobr" /> Résultat beaucoup de warning... et ça ne fonctionne pas. <br class="autobr" /> Je confirme l'exposant. Pour l'instant j'ai mis <br class="autobr" /> <code>107e/,\b107\b,/=44</code><br class="autobr" /> qui a l'avantage de fonctionner mais qui ne répond que peu au besoin.</p> Un glossaire interne pour vos sites 2014-09-20T16:30:11Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477025 2014-09-20T16:30:11Z <p>chez moi ça fonctionne bien maitenant, plus de message d'erreur en modification comme j'avais jusque là.<br class="autobr" /> Merci beaucoup.</p> Un glossaire interne pour vos sites 2014-09-20T07:14:37Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477022 2014-09-20T07:14:37Z <p>Une idée pour cela ? modif dans la css à faire ?</p> Un glossaire interne pour vos sites 2014-09-20T07:13:24Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477020 2014-09-20T07:13:24Z <p>Merci Pat, pour moi cela semble ok</p> Un glossaire interne pour vos sites 2014-09-19T23:18:08Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477019 2014-09-19T23:18:08Z <p>Pardon pour le délai de réponse.</p> <p>Il devait manquer un include, je viens de poster une correction du plugin, vous me direz si le problème est bien réglé ;-)</p> Un glossaire interne pour vos sites 2014-09-19T23:05:53Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477018 2014-09-19T23:05:53Z <p>Le souci viendrait peut-être de la mise en exposant, tu confirmes en avoir un sur ton site ?</p> <p>Je mettrais bien un truc genre : <br class="autobr" /> <font size="1"><code>107<sup>e</sup> R.I./,107(<sup[^>]*>)?e(</sup>)? *(R[.]*I[.]*|Régiment d' ?Infanterie),i </code></font></p> <p>avant le slash, tu as le titre de la fenêtre de définition, et après le slash, tu as la super regexpr qui comprend tous tes exemples...</p> Un glossaire interne pour vos sites 2014-09-19T18:19:29Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477015 2014-09-19T18:19:29Z <p>oui pardon et merci.<br class="autobr" /> Je rectifie et je complexifie :</p> <p>107e Régiment d'Infanterie<br class="autobr" /> 107e Régiment d' Infanterie<br class="autobr" /> 107e régiment d' infanterie<br class="autobr" /> 107e RI<br class="autobr" /> 107e R.I.</p> <p>merci</p> Un glossaire interne pour vos sites 2014-09-19T11:14:12Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477010 2014-09-19T11:14:12Z <p>Pat, tu as une idée du problème ?</p> Un glossaire interne pour vos sites 2014-09-19T08:17:34Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment477004 2014-09-19T08:17:34Z <p>Bonjour. Les deux premières lignes sont identiques ?</p> Un glossaire interne pour vos sites 2014-09-18T22:30:01Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment476998 2014-09-18T22:30:01Z <p>bonjour comment rédiger une seule entrée <br class="autobr" /> (avec expression régulière ?) pour<br class="autobr" /> 107e Régiment d'Infanterie<br class="autobr" /> 107e Régiment d'Infanterie<br class="autobr" /> 107e RI<br class="autobr" /> 107e R.I.<br class="autobr" /> merci !</p> Un glossaire interne pour vos sites 2014-08-30T11:20:18Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment476705 2014-08-30T11:20:18Z <p>Bonjour, le problème persiste chez moi. Il se présente lors d'une modification d'un mot existant dans le glossaire, mais jamais lors de la création d'un nouveau mot...</p> Un glossaire interne pour vos sites 2014-08-30T08:58:56Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment476703 2014-08-30T08:58:56Z <p>Bonjour,</p> <p>Je souhaite pouvoir dans un mot clef ou j'ai un lien et qu'il servent dans le glossaire qu'il soit cliquable. Or pour le moment la pop-in se cache quand on va la survoler, comment modifier cela ?</p> Un glossaire interne pour vos sites 2014-08-30T08:46:05Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment476702 2014-08-30T08:46:05Z <p>Bonjour, je me retrouve aussi avec cette erreur de temps en temps.</p> Un glossaire interne pour vos sites 2014-08-12T07:59:36Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment476470 2014-08-12T07:59:36Z <p>Bonjour et merci :<br class="autobr" /> SPIP 3.0.14<br class="autobr" /> Pour le couteau suisse je ne sais pas répondre à la question : je lis “version locale 1.9” et “révision 82941” et “votre version est à jour”.<br class="autobr" /> Est-ce que cela répond à la question ?<br class="autobr" /> Merci pour votre aide. Je ne suis pas un expert mais j'essaie de comprendre et de progresser.<br class="autobr" /> Bonne journée.</p> Un glossaire interne pour vos sites 2014-08-12T07:39:19Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment476469 2014-08-12T07:39:19Z <p>Bonjour, je ne reproduis pas cette erreur, tu as quelle version de SPIP ? Le Couteau Suisse est-il bien compilé ?</p> Un glossaire interne pour vos sites 2014-08-11T19:46:43Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment476467 2014-08-11T19:46:43Z <p>Bonjour,<br class="autobr" /> Je peux créer des mots dans mon glossaire interne mais si je modifie un mot clef existant voilà le message que j'obtiens, cela ne semble pas gêner le fonctionnement du glossaire :</p> <blockquote class="spip"> <p>Fatal error : Call to undefined function debut_cadre_relief() in /home/nattar/public_html/tmp/couteau-suisse/mes_fonctions.php on line 481</p> </blockquote> <p>Merci pour votre aide</p> Un glossaire interne pour vos sites 2014-01-21T14:33:06Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment473420 2014-01-21T14:33:06Z <p>Bonjour,<br class="autobr" /> Merci pour la nouvelle version. Tout fonctionne de nouveau normalement. Et encore bravo pour ce couteau suisse vraiment indispensable !<br class="autobr" /> Christian.</p> Un glossaire interne pour vos sites 2014-01-21T11:31:55Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment473415 2014-01-21T11:31:55Z <p>Merci beaucoup pour votre réponse et votre intervention.<br class="autobr" /> Christian.</p> Un glossaire interne pour vos sites 2014-01-21T11:29:11Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment473414 2014-01-21T11:29:11Z <p>Oh pardon, c'est un reste de débogage ! Je corrige ça de suite, le zip sera dispo vers 13h.</p> Un glossaire interne pour vos sites 2014-01-21T10:22:21Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment473411 2014-01-21T10:22:21Z <p>Bonjour,<br class="autobr" /> J'ai depuis quelque temps un étrange problème sur un site que je gère. Il utilise le glossaire interne, qui est un outil très utile pour ce site qui concerne des établissements médico-sociaux aux nombreuses abréviations obscures. Mais désormais quand un article contient les mots clés du glossaire, s'affiche au-dessus du bandeau de l'interface privée le texte de l'article, en grande largeur, répété autant de fois qu'il y a de mots de glossaire dans les champs (voir capture). Et parfois les mots clés sont remplacés dans ce texte en haut par @@M0#3@@ ! J'ai fait le test avec un article d'essai, selon que j'ajoute ou retire un mot-clé figurant dans le glossaire, le phénomène se produit ou pas.<br class="autobr" /> Je suis en version SPIP 2.1.25 et le couteau suisse est à jour. Version 1.8.148. Version 79943.<br class="autobr" /> Voyez-vous une explication ?<br class="autobr" /> D'avance, merci pour votre réponse.<br class="autobr" /> Christian.</p> Un glossaire interne pour vos sites 2014-01-08T22:50:09Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment473150 2014-01-08T22:50:09Z <p>Bonjour à tous,</p> <p>Etant en spip 3 et en derniere version du couteausuisse, je tente désépéremment d'afficher la barre de lettres alphabétiques et les mots clés dans ma page de squelette de glossaire.</p> <p>En reprenant le code squelettes au dessus et en déclarant les fonctions dans mon squelettes/mes_fonctions.php, la barre apparait correctement, par contre les mots clés n'apparaissent pas .</p> <p>Les exemples renseignés ci-dessus sont-ils toujorus d'actualité ?</p> <p>Merci.<br class="autobr" /> CloudG</p> Un glossaire interne pour vos sites 2013-09-25T08:36:21Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment471001 2013-09-25T08:36:21Z <p>ouahh formidable ça marche !<br class="autobr" /> je peux paramétrer la page d'arrivée des mots du glossaire, lien interne, externe !<br class="autobr" /> Top merci infiniment de ton travail et de ton aide. Ivan</p> Un glossaire interne pour vos sites 2013-09-24T21:15:23Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment470992 2013-09-24T21:15:23Z <p>Bonjour, je viens de mettre à jour le Couteau Suisse et la doc pour permettre cette redirection dans le titre : <a href="http://zone.spip.org/trac/spip-zone/changeset/76478" class="spip_url spip_out auto" rel="nofollow external">http://zone.spip.org/trac/spip-zone/changeset/76478</a></p> <p>Tu me diras si tout est OK...</p> Un glossaire interne pour vos sites 2013-09-23T21:28:04Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment470966 2013-09-23T21:28:04Z <p>Pour cette redirection du lien, le code du plugin doit être un peu modifié.</p> <p>2 pistes : <br />- soit un mécanisme de redirection reconnu dans le titre comme le faisait SPIP2, par exemple : «architrave/=architrave.com» <br />- soit l'exploitation du descriptif ou du texte (plus lourd sans doute)</p> Un glossaire interne pour vos sites 2013-09-23T20:55:49Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment470965 2013-09-23T20:55:49Z <p>T'as pas besoin de me répéter la question cher ivandps, tu sais, je sais lire....</p> <p>Dans cette fonction, je pense que tu peux programmer de quoi y répondre, non ? Comment envisages-tu faire le lien entre l'article virtuel et le mot clé ? Il va falloir également surcharger la fenêtre de définition...</p> Un glossaire interne pour vos sites 2013-09-23T20:51:01Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment470964 2013-09-23T20:51:01Z <p>oui j'ai vu cette fonction.<br class="autobr" /> je voyais plus ceci :</p> <p>glossaire interne fait un lien vers le mot clé.<br class="autobr" /> J'aimerais spécifier un autre lien (lien vers un article interne ou externe).<br class="autobr" /> Est-il possible d'assigner une redirection virtuel au mot clé (à l'exemple de celle qui existe pour les articles ) ?</p> Un glossaire interne pour vos sites 2013-09-23T20:33:52Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment470963 2013-09-23T20:33:52Z <p>Bonsoir, as-tu essayé la fonction glossaire_generer_url() comme indiqué dans la doc ?</p> Un glossaire interne pour vos sites 2013-09-23T20:12:01Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment470961 2013-09-23T20:12:01Z <p>bonjour</p> <p>glossaire interne fait un lien vers le mot clé.<br class="autobr" /> J'aimerais spécifier un autre lien (lien vers un article interne ou externe).<br class="autobr" /> Est-il possible d'assigner une redirection virtuel au mot clé (à l'exemple de celle qui existe pour les articles ) ?</p> <p>merci</p> Un glossaire interne pour vos sites 2012-04-24T08:14:16Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456525 2012-04-24T08:14:16Z <p>Nan, ce que tu proposes ne fonctionne pas, et tant mieux parce que pour le rédacteur, ce ne serait pas simple à gérer...</p> <p>J'ai finalement réussi à faire ce que je voulais :</p> <p>1) Modifier le plugin «acronymes», pour faire en sorte de respecter les recommandations sur <a href="http://www.webaccessibilite.fr/abreviations-sigles-et-acronymes-2008-03-26.php#etr" class="spip_url spip_out auto" rel="nofollow external">http://www.webaccessibilite.fr/abreviations-sigles-et-acronymes-2008-03-26.php#etr</a> . J'ai contacté à ce sujet l'auteur du plugin «acronymes» Cédric Morin à qui j'ai proposé de commiter mes modifs. Malheureusement, il m'a dit que ce plugin était figé et qu'il ne maintenait plus le plugin Forms&Tables (dont il dépend) pour la version 2 de spip. Donc, le fait d'avoir modifié le plugin acronymes n'aura pas de conséquence car a priori il ne sera plus mis à jour (dernière version la 0.13.0). Et surtout, mes modifs me permettent de préciser la langue de prononciation de l'abréviation elle-même (si elle est différente de la langue principale du site) et de prendre en compte la langue de prononciation de l'expansion d'autre part (qui malheureusement n'était pas prise en compte de façon effective par le filtre du plugin malgré le renseignement du champ «Langue» correspondant du formulaire de saisie).</p> <p>Grâce à cela, j'obtiens par exemple pour «W3C» :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>- Une entrée dans la table sigles/acronymes : SIGLE = W3C Descriptif = World Wide Web Consortium Langue = en</code></pre></div> <p>Sans mes modifs sur le plugin acronymes, j'obtenais le code suivant :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><abbr title="World Wide Web Consortium">W3C</abbr></code></pre></div> <p>Ce qui montre que le filtre acronymes ne prend pas en compte la langue renseignée dans la saisie. Une modification de ce filtre était donc <strong>nécessaire</strong>.</p> <p>Avec mes modifs, j'obtiens ce que je veux (qui est préconisé sur webaccessibilite.fr) :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><abbr lang="en" title="World Wide Web Consortium"><span lang="fr">W3C</span></abbr></code></pre></div> <p>Donc si le lecteur d'écran est paramétré pour développer les abréviations, on entendra l'expansion «World Wide Web Consortium», prononcée en anglais, et sinon, on entendra «W3C» prononcé en français.<br class="autobr" /> Un utilisateur voyant voit les 2 d'un coup («W3C» dans le texte, et «World Wide Web Consortium» dans l'info-bulle)</p> <p>Si je veux que tout soit en anglais, alors il faut mettre une balise <code><multi></code> dans le titre du sigle :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>- Une entrée dans la table sigles/acronymes : SIGLE = <multi>[en]W3C</multi> Descriptif = World Wide Web Consortium Langue = en</code></pre></div> <p>et j'obtiens le code :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><abbr lang="en" title="World Wide Web Consortium">W3C</abbr></code></pre></div> <p>Là, quelle que soit la config du lecteur d'écran, la prononciation sera anglaise. Cela ne change absolument rien visuellement par rapport au comportement précédent pour les voyants.</p> <p>2) Pour que l'effet glossaire fonctionne en plus de l'effet acronymes, avec les balises <code><a></code> et <code><abbr></code> dans le bon ordre, il a fallu <strong>ajouter 2 lignes</strong> de codes dans <code>glossaire_fonctions.php</code> (juste après la ligne 256, avant le <code>return $texte</code>) :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/strpos" rel='nofollow'><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$texte</span><span class="sy0">,</span> <span class="st_h">'</span></a></span></a'</span><span class="br0">&#41;</span><span class="sy0">!==</span><span class="kw4">false</span><span class="br0">&#41;</span> <span class="co1">// si une balise span se trouve dans une balise abbr ou acronym</span> <span class="re0">$texte</span> <span class="sy0">=</span> <a href="http://www.php.net/preg_replace" rel='nofollow'><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st_h">',(<a(bbr|cronym) [^>]+>)(<span [^>]+>)(<a [^>]+class=\'cs_glossaire\'><span class=\'gl_mot\'>)(.*?)</span>(<span class="gl_.*?</span>)</a></span></a\\2>,smS'</span><span class="sy0">,</span> <span class="st_h">'$4$1$3$5</span></a$2></span>$6</a>'</span><span class="sy0">,</span> <span class="re0">$texte</span><span class="br0">&#41;</span><span class="sy0">;</span></code></pre></div> <p>Ceci permet de prendre en compte (si besoin) la balise <code><span></code> si elle se trouve dans une balise <code><abbr></code> pour remettre tout dans l'ordre.<br class="autobr" /> <strong><br class="autobr" /> Peux-tu commiter cette modif sur la lame glossaire ?</strong></p> <p>3) D'autre part, pour résoudre le problème évoqué précédemment sur le filtre <code>recherche_donnee</code> (effectivement, c'est un LIKE%%, ce qui pose de gros problèmes que je ne détaillerai pas ici) et afin d'être sûr que l'attribut <code>title</code> de la balise <code>a</code> soit le bon, voici le nouveau <code>attribut_abbr.html</code> :</p> <p><strong>(Attention : afin que ça s'affiche correctement dans le forum, j'ai dû mettre des retours chariots et des espaces entre les pipes, ce qu'il ne faut pas faire en prod pour obtenir un code XHTML correct)</strong></p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="br0">&#91;</span><span class="br0">&#40;</span><span class="co2">#REM) génère les attributs title et lang de la balise <a> pour un mot du glossaire </span> <span class="sy0">-</span> si la langue n<span class="st_h">'est pas définie dans le titre du mot (français par défaut), alors title contiendra la chaîne "MOT, Définition dans le glossaire" et lang contiendra "fr" (car un attribut lang vide ne serait pas valide) - si c'</span>est une langue définie par un <span class="sy0"><</span>multi<span class="sy0">>,</span> alors title contiendra la chaîne <span class="st0">"MOT"</span> <span class="br0">&#40;</span>même si cela n<span class="st_h">'apporte rien de plus que l'</span>intitulé<span class="sy0">,</span> un attribut vide ne serait pas valide<span class="br0">&#41;</span> et lang contiendra la langue définie pour le mot pour une prononciation correcte Le mot est recherché par une expression régulière<span class="sy0">,</span> ce qui permet de trouver le mot qu<span class="st_h">'il soit titré avec un <multi> ou pas ] [(#SET{mot,[(#ENV**{mot}|textebrut)]})] [(#SET{motif_mot,^#GET{mot}$|\]#GET{mot}<})] [href="(#ENV**{lien})"] title=" <B_Glossaire_title> <BOUCLE_Glossaire_title(MOTS){titre == #GET{motif_mot}}{0,1}> [(#TITRE* | trouve_attribut_lang | =={#LANG} | ?{[(#TITRE | contenu_balises_acronym_abbr_span) , <:def_glossaire:>], [(#TITRE | contenu_balises_acronym_abbr_span)]})] </BOUCLE_Glossaire_title> </B_Glossaire_title> #GET{mot} <//B_Glossaire_title>" lang=" <B_Glossaire_lang> <BOUCLE_Glossaire_lang(MOTS){titre == #GET{motif_mot}}{0,1}> [(#TITRE | extraire_balise{abbr} | ?{[(#TITRE | extraire_balise{abbr} | extraire_balise{span} | extraire_attribut{lang} | sinon{#LANG})], [(#TITRE | extraire_attribut{lang} | sinon{#LANG})]})] </BOUCLE_Glossaire_lang> </B_Glossaire_lang> #LANG <//B_Glossaire_lang>"</span></code></pre></div> <p>Le raccourci <code><:def_glossaire:></code> correspond en français à «Définition dans le glossaire».</p> <p>Donc, on ne recherche plus dans la table des sigles/acronymes : l'attribut <code>title</code> de la balise <code><a></code> est construit à partir du titre du mot dans le glossaire avant les traitements automatiques (#TITRE*), et l'attribut <code>lang</code> de la balise <code><a></code> est recherché après les traitements automatiques du filtre acronymes et du filtre glossaire (donc sur #TITRE).</p> <p>Ainsi, on est assuré de la correspondance parfaite (title et lang) avec ce qui est saisi dans le glossaire (ce qui paraît plus cohérent pour une balise <code><a></code> dont le <code>href</code> pointe sur la définition correspondante du glossaire, que ce soit une abréviation ou non).</p> <p>Je ne mets pas ici les filtres <code>trouve_attribut_lang</code> et <code>contenu_balises_acronym_abbr_span</code> (dans <code>mes_fonctions.php</code>) qu'il utilise pour ne pas être trop long, je ferai une description détaillée de tout cela avec le site que je prépare actuellement en local, avec des conseils pour les rédacteurs et les modifs à faire dans le plugin «acronymes».</p> <p>Au niveau accessibilité, je ne peux pas faire mieux, mais c'est déjà très complet ainsi, l'association des 2 plugins acronymes + glossaire fonctionne à merveille...</p> <p>Je te demande à nouveau si tu peux <strong>commiter</strong> dans <code>glossaire_fonctions.php</code> <strong>la modif indiquée plus haut</strong> entre la ligne 256 et 257 dans la zone ? Ceci afin que ceux qui tiennent compte des recommandations au niveau accessibilité puissent en profiter (qu'ils utilisent ou pas le plugin «acronymes»)...</p> Un glossaire interne pour vos sites 2012-04-17T21:03:59Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456348 2012-04-17T21:03:59Z <p>Eh oui, c'est qu'à mon avis, il faut un mot dans le glossaire du style :</p> <p><span class="coloration_code code"><code class="spip_xml code"> <span class="sc3"><span class="re1"><multi<span class="re2">></span></span></span>[en]JAWS<span class="sc3"><span class="re1"></multi<span class="re2">></span></span></span>/<span class="sc3"><span class="re1"><abbr</span> <span class="re0">title</span>=<span class="st0">'Job Access With Speech'</span><span class="re2">></span></span>JAWS<span class="sc3"><span class="re1"></abbr<span class="re2">></span></span></span></code></span></p> <p>que l'on peut coder en clair, ou bien sous une forme RegEx simplifiée :</p> <p> <span class="coloration_code code"><code class="spip_xml code"> <span class="sc3"><span class="re1"><multi<span class="re2">></span></span></span>[en]JAWS<span class="sc3"><span class="re1"></multi<span class="re2">></span></span></span>/,<span class="sc3"><span class="re1"><abbr</span><span class="br0">&#91;</span>^<span class="re2">></span></span>]*>JAWS<span class="sc3"><span class="re1"></abbr<span class="re2">></span></span></span>,</code></span></p> <p> </p> <p> </p> <p>Il ne faut jamais oublier que le glossaire intervient en fin de traitement sur les balises (en <i>post_propre</i>), et que par conséquent, le titre du mot recherché doit correspondre exactement dans le code à ce que peuvent produire SPIP ou d'autres plugins comme les acronymes, donc parfois, des expressions complexes. Un simple coup d'oeil dans le code source de la page HTML produite pourra te renseigner sur le titre de glossaire à donner à ton mot multilingue...</p> Un glossaire interne pour vos sites 2012-04-17T04:46:27Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456323 2012-04-17T04:46:27Z <p>Ce que tu dis est exact pour un mot du glossaire qui n'est pas une abréviation.</p> <p>Par exemple «landmarks roles» est un terme défini uniquement dans le glossaire (puisque ce n'est pas une abréviation), titré en <code><multi></code>. Si l'on saisit <code><multi>[en]landmarks roles</multi></code> dans le texte d'un article, alors c'est correctement interprété par le glossaire. Si l'on n'a pas la balise <code>multi</code> dans le texte, ce n'est pas reconnu, ce qui logique et adéquat.</p> <p>En revanche, si c'est une abréviation (c'est-à-dire en plus du glossaire, une entrée de la table sigles/acronymes), cela ne fonctionne pas : on a beau indiquer un <code><multi>[en]JAWS</multi></code> dans le texte d'un article, ce n'est pas correctement interprété par le glossaire, seul l'effet «acronymes» se produit (pourtant dans la config de la lame, la case «Ignorer les balises <code><abbr></code> et <code><acronym></code>» est bien <strong>décochée</strong>, ce qui permet à l'effet glossaire de fonctionner si le mot n'est pas titré en multi dans le glossaire). As-tu essayé avec le plugin «acronymes» et de renseigner le mot JAWS dans la table sigles/acronymes comme indiqué dans mon commentaire #456315 ? C'est la seule façon pour constater ce problème.</p> <p>C'est le même soucis qu'il y a quelques jours où l'effet «acronymes» l'emportait toujours sur l'effet «glossaire», mais avec le dernier commit que tu avais fait, en <strong>décochant</strong> la case «Ignorer les balises <code><abbr></code> et <code><acronym></code>» dans la config de la lame «glossaire interne», on peut avoir les 2 effets (si on laisse cochée la case «Ignorer les balises <code><abbr></code> et <code><acronym></code>» alors il n'y a pas d'effet «glossaire»).</p> <p>Dans ma config, cette case est bien <strong>décochée</strong>.<br class="manualbr" />Le problème semble donc se situer dans la prise en compte par le glossaire de la balise <code><abbr></code> lorsqu'elle encapsule un <code>multi</code> <strong>contenu dans le titre du mot</strong> (ou si un <code>multi</code> <strong>venant du titre du mot</strong> est encapsulé dans une <code>abbr</code>, je ne sais pas dans quel sens ça fonctionne...). La balise <code>multi</code> saisie dans le texte d'un article ne pose elle pas de problème.</p> <p>J'ai essayé de chercher dans la fonction <code>glossaire_parse()</code> et <code>cs_rempl_glossaire()</code>, mais je rame...</p> Un glossaire interne pour vos sites 2012-04-16T14:02:33Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456316 2012-04-16T14:02:33Z <p>Eh effet, le multi du glossaire sera recherché seulement si le mot trouvé est aussi en multi...</p> <p>Pour préciser : <br />- Sur une page française, le titre du mot-clé devient : <code><span lang="en">JAWS</span></code> et le mot <code>JAWS</code> seul dans ce texte français n'est donc pas trouvé. En revanche, un <code><multi>[en]JAWS</multi></code> dans le texte sera correctement interprété par le glossaire.</p> Un glossaire interne pour vos sites 2012-04-16T13:44:43Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456315 2012-04-16T13:44:43Z <p>Petite précision : ce problème ne semble se poser que pour les abréviations étrangères :</p> <p>Exemple JAWS (abréviation de Job Access With Speech)</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>- une entrée dans la table sigles/acronymes : SIGLE = JAWS Descriptif = Job Access With Speech Langue = en</code></pre></div> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>une entrée dans le glossaire : Titre = <multi>[en]JAWS</multi> Descriptif = Abréviation de {<code><multi>[en]Job Access With Speech</multi></code>}. C'est un logiciel pour déficient visuel qui a pour fonction essentielle d'être un lecteur d'écran : il transforme un texte affiché sur un écran en un texte oral (par un système de synthèse vocale) ou un texte en braille.</code></pre></div> <p>Dans ce cas, on obtient seulement l'effet «acronyme», pas l'effet «glossaire» (pas de lien vers la définition du glossaire).</p> <p>Si on supprime la balise <code><multi></code> du titre du mot dans le glossaire, alors les 2 effets «acronyme» et «glossaire» fonctionnent. Le problème est alors dans que dans la page de glossaire alphabétique (<code>glossaire.html</code>), le titre du mot JAWS dans sa balise <code><dl></code> n'est plus prononcée en anglais, mais en français...</p> <p>Il faudrait trouver le moyen de faire fonctionner les 2 effets, comme nous y sommes arrivés jusqu'ici, y compris lorsque l'abréviation est également un mot du glossaire avec un titre contenant la balise <code><multi></code>, mais j'ai beau chercher depuis quelques heures, je ne vois pas où il faut agir...</p> Un glossaire interne pour vos sites 2012-04-16T13:43:56Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456314 2012-04-16T13:43:56Z <p>Aucune idée <i>a priori</i>.</p> <p>Je viens de faire quelques tests du genre <code><multi>[en]architrave</multi></code> et tout semble fonctionner correctement. Peux-tu préciser le problème ?</p> Un glossaire interne pour vos sites 2012-04-16T04:51:33Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456305 2012-04-16T04:51:33Z <p>OK.</p> <p>En ce qui concerne le fait que les mots du glossaire dont le titre est encadré par des balises <code><multi>[en]</code> ne sont pas traités par la lame du glossaire (pas de lien vers la définition dans le glossaire), tu sais pourquoi ?</p> Un glossaire interne pour vos sites 2012-04-14T21:31:44Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456290 2012-04-14T21:31:44Z <p>Pour le code coloré, c'est : <code><code class="lelangagequejeveux"></code> ou <code><cadre class="lelangagequejeveux"></code>.</p> <p>Voici la liste des langages disponibles : <a href="http://zone.spip.org/trac/spip-zone/browser/_plugins_/coloration_code/branches/v0.6/geshi/geshi" class="spip_url spip_out" rel='nofollow external'>http://zone.spip.org/trac/spip-zone...</a></p> Un glossaire interne pour vos sites 2012-04-13T07:07:52Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456244 2012-04-13T07:07:52Z <p>Oups...<br class="autobr" /> Je n'étais pas bien réveillé : selon la spécification W3C c'est l'attribut <code>title</code> d<strong>e la balise abbr</strong> qui doit contenir seulement l'expansion et <strong>pas celui de la balise a</strong>.<br class="autobr" /> Donc on peut mettre autre chose que l'expansion elle-même dans la valeur de l'attribut <code>title</code> <strong>de la balise a</strong> : le bon usage (accessibilité) de cet attribut est de reprendre l'intitulé du lien en y ajoutant des infos complémentaires, comme par exemple la destination + explicite du lien (ici “Définition dans le glossaire”). On peut donc y mettre aussi <code>(#LESVALEURS**{ligne_1, ' '}|attribut_html) :</code> devant si on veut.</p> <p>Le problème qui restera à solutionner aussi (si on peut trouver un moyen) c'est le problème de prononciation de la valeur de l'attribut s'il contient à la fois une expansion anglaise, et la destination du lien en français : par exemple «World Wide Web Consortium, Définition dans le glossaire» sera prononcé entièrement en français (ou alors entièrement en anglais si on a un attribut <code>lang="en"</code> défini sur la balise <code><a></code>), mais ça j'en reparlerai peut-être plus tard... C'est un détail, on a déjà super avancé.</p> Un glossaire interne pour vos sites 2012-04-13T05:05:31Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456241 2012-04-13T05:05:31Z <p>ça dépend si c'est un LIKE 'titre_mot' ou avec un joker 'titre_mot%' ou '%titre_mot%'.<br class="manualbr" />Dans le premier cas, on est sûr de renvoyer la donnée correspondant au mot exact. C'est ce qu'il faudrait pour être sûr de ne pas avoir de problème</p> <p>Sinon, ta proposition de code marche parfaitement, je l'ai testée avec succès. Je retirerai juste <code>(#LESVALEURS**{ligne_1, ' '}|attribut_html) :</code> afin que l'attribut title ne contienne que l'expansion seule (car cet attribut ne doit rien contenir d'autre selon la spécification w3C).</p> <p>Ce qui donnerai :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="br0">&#91;</span><span class="br0">&#40;</span><span class="co2">#SET{mot,[(#ENV**{mot}|textebrut)]})] </span><span class="br0">&#91;</span>href<span class="sy0">=</span><span class="st0">"(#ENV**{lien})"</span><span class="br0">&#93;</span> <span class="sy0"><</span>BOUCLE_acronymes_sigles<span class="br0">&#40;</span>FORMS<span class="br0">&#41;</span><span class="br0">&#123;</span>type_form<span class="sy0">=</span>acronymes_sigles<span class="br0">&#125;</span><span class="sy0">></span> <span class="sy0"><</span>B_Sigles<span class="sy0">></span> title<span class="sy0">=</span><span class="st0">"<BOUCLE_Sigles(FORMS_DONNEES){id_form}{tri_donnee ligne_1}{recherche_donnee #GET{mot}}{0,1}>[(#LESVALEURS**{texte_1, ' '}|attribut_html), Définition dans le glossaire]</BOUCLE_Sigles>"</span> <span class="sy0"></</span>B_Sigles<span class="sy0">></span> <span class="sy0"></</span>BOUCLE_acronymes_sigles<span class="sy0">></span></code></pre></div> <p>Ici, le class=“php” sur la balise <code><cadre></code> ne me donne pas la même coloration syntaxique que toi... Une autre class à indiquer ??</p> <p>D'autre part, je viens seulement maintenant de le remarquer, mais cela n'a rien à voir avec le code que tu as proposé dans ton dernier post, l'effet glossaire ne s'applique pas sur les abréviations dont le titre dans le glossaire est encadré par <code><multi>[en]</code>. Dans ce cas l'effet acronymes l'emporte. Aurais-tu une explication ?</p> Un glossaire interne pour vos sites 2012-04-12T23:58:36Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456240 2012-04-12T23:58:36Z <p>Sans PHP supplémentaire, peut-être un truc du genre :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="kw2">function</span> glossaire_attributs_lien<span class="br0">&#40;</span><span class="re0">$id_mot</span><span class="sy0">,</span> <span class="re0">$lien</span><span class="sy0">,</span> <span class="re0">$titre</span><span class="sy0">,</span> <span class="re0">$les_titres</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> recuperer_fond<span class="br0">&#40;</span><span class="st_h">'fonds/attribut_abbr'</span><span class="sy0">,</span> <a href="http://www.php.net/array" rel='nofollow'><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st_h">'mot'</span><span class="sy0">=></span><span class="re0">$les_titres</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="st_h">'lien'</span><span class="sy0">=></span><span class="re0">$lien</span><span class="sy0">,</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></code></pre></div> <p>avec fonds/attribut_abbr.html :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{mot,<span class="re4">[</span><span class="re4">(</span><span class="re1">#ENV</span><span class="re0">**</span>{mot}<span class="re50">|textebrut</span><span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">[</span>href="<span class="re4">(</span><span class="re1">#ENV</span><span class="re0">**</span><span class="re40">{lien}</span><span class="re4">)</span>"<span class="re4">]</span><span class="re11"><BOUCLE_acronymes_sigles</span><span class="re12">(FORMS)</span><span class="re13"><span class="re41">{type_form=acronymes_sigles}</span></span><span class="re10">></span><span class="re15"><B_Sigles></span> title="<span class="re11"><BOUCLE_Sigles</span><span class="re12">(FORMS_DONNEES)</span><span class="re13"><span class="re41">{id_form}</span><span class="re41">{tri_donnee ligne_1}</span><span class="re41">{recherche_donnee <span class="re1">#GET</span><span class="re40">{mot}</span>}</span><span class="re41">{0,1}</span></span><span class="re10">></span><span class="re4">[</span><span class="re4">(</span><span class="re1">#LESVALEURS</span><span class="re0">**</span><span class="re40">{ligne_1, ' '}</span><span class="re50">|attribut_html</span><span class="re4">)</span><span class="re4">[</span> : <span class="re4">(</span><span class="re1">#LESVALEURS</span><span class="re0">**</span><span class="re40">{texte_1, ' '}</span><span class="re50">|attribut_html</span><span class="re4">)</span><span class="re4">]</span><span class="re4">]</span><span class="re15"></BOUCLE_Sigles></span>"<span class="re15"></B_Sigles></span> <span class="re15"></BOUCLE_acronymes_sigles></span></code></pre></div> <p>Mais le critère <strong>recherche_donnee</strong> exécute un LIKE... C'est peut-être pas la meilleure chose...</p> Un glossaire interne pour vos sites 2012-04-12T17:43:23Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456234 2012-04-12T17:43:23Z <p>Avec la coloration syntaxique voici un code + lisible :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="coMULTI">/************************************ surcharge de la fonction glossaire_attributs_lien_dist() de la lame glossaire du couteau suisse. Ceci permet d'intégrer un attribut title personnalisé dans la balise <a> d'un mot du glossaire ************************************/</span> <span class="kw2">function</span> glossaire_attributs_lien<span class="br0">&#40;</span><span class="re0">$id_mot</span><span class="sy0">,</span> <span class="re0">$lien</span><span class="sy0">,</span> <span class="re0">$titre</span><span class="sy0">,</span> <span class="re0">$les_titres</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="st0">"href='<span class="es4">$lien</span>' title=<span class="es1">\"</span>"</span> <span class="sy0">.</span> expansion_abbr_acronym_chercher<span class="br0">&#40;</span> contenu_balises_acronym_abbr_span<span class="br0">&#40;</span><span class="re0">$les_titres</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">', définition dans le glossaire"'</span><span class="sy0">;</span> <span class="co1">// le glossaire n'échappe pas les balises span (si le titre du mot est en langue étrangère, les balises <multi>[en] sont transformées en <span lang="en">) => Ces balises ne doivent pas se retrouver dans la valeur de l'attribut title</span> <span class="coMULTI">/* Le problème qui subsiste (pas de solution trouvée) est que "définition dans le glossaire" étant prononcé dans la langue du site (ici fr), alors l'expansion également, ce qui pour une expansion de signification étrangère qui serait donc mal prononcée peut rendre difficile sa compréhension. Mais il reste néanmoins la possibilité de cliquer sur le lien pour avoir accès à la définition complète du mot dans le glossaire (l'expansion sera là prononcée dans la bonne langue) */</span> <span class="br0">&#125;</span></code></pre></div> <p>et pour chercher l'expansion de l'abréviation :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="coMULTI">/*************************** La fonction suivante permet, depuis la table "acronymes_sigles" installée avec le plugin "acronymes", de récupérer l'expansion d'une abréviation, afin de l'afficher comme valeur de l'attribut title dans la fonction glossaire_attributs_lien() qui surcharge la fonction glossaire_attributs_lien_dist() de la lame glossaire du couteau suisse. Ceci permet de donner un accès direct à l'expansion d'une abréviation quelle que soit la configuration du lecteur d'écran (lecture du titre de lien ou de l'intitulé du lien) ************************/</span> <span class="re0">$expansion</span> <span class="sy0">=</span> <span class="re0">$expression</span><span class="sy0">;</span> <span class="co1">// initialisation au cas où l'expression n'est pas une abréviation, c'est l'expression elle-même qui sera renvoyée</span> <span class="re0">$liste</span><span class="sy0">=</span>Forms_liste_tables<span class="br0">&#40;</span><span class="st_h">'acronymes_sigles'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/count" rel='nofollow'><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$liste</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> include_spip<span class="br0">&#40;</span><span class="st_h">'forms_fonctions'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="re0">$id_form</span> <span class="sy0">=</span> <a href="http://www.php.net/intval" rel='nofollow'><span class="kw3">intval</span></a><span class="br0">&#40;</span><a href="http://www.php.net/reset" rel='nofollow'><span class="kw3">reset</span></a><span class="br0">&#40;</span><span class="re0">$liste</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="re0">$res</span> <span class="sy0">=</span> spip_query<span class="br0">&#40;</span><span class="st0">"SELECT id_donnee FROM spip_forms_donnees WHERE id_form="</span><span class="sy0">.</span>_q<span class="br0">&#40;</span><span class="re0">$id_form</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">" AND statut='publie'"</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw1">while</span> <span class="br0">&#40;</span><span class="re0">$row</span> <span class="sy0">=</span> spip_fetch_array<span class="br0">&#40;</span><span class="re0">$res</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$accro</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace" rel='nofollow'><span class="kw3">str_replace</span></a><span class="br0">&#40;</span> <span class="st0">"."</span><span class="sy0">,</span><span class="st0">""</span><span class="sy0">,</span>forms_calcule_les_valeurs<span class="br0">&#40;</span> <span class="st_h">'forms_donnees_champs'</span><span class="sy0">,</span> <span class="re0">$row</span><span class="br0">&#91;</span><span class="st_h">'id_donnee'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="st_h">'ligne_1'</span><span class="sy0">,</span> <span class="re0">$id_form</span><span class="sy0">,</span><span class="st_h">' '</span><span class="sy0">,</span> <span class="kw4">true</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/strlen" rel='nofollow'><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$accro</span><span class="br0">&#41;</span> <span class="sy0">&&</span> <span class="re0">$accro</span> <span class="sy0">==</span> <span class="re0">$expression</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$expansion</span> <span class="sy0">=</span> forms_calcule_les_valeurs<span class="br0">&#40;</span><span class="st_h">'forms_donnees_champs'</span><span class="sy0">,</span> <span class="re0">$row</span><span class="br0">&#91;</span><span class="st_h">'id_donnee'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="st_h">'texte_1'</span><span class="sy0">,</span> <span class="re0">$id_form</span><span class="sy0">,</span><span class="st_h">' '</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span></code></pre></div> <p>pour cette dernière fonction, j'ai repris une partie du code de la fonction <code>acronymes_ajouter()</code> dans le fichier <code>acronymes_filtre.php</code> du plugin acronymes.</p> <p>Par contre, pour répondre à ta question sur la mise en cache, je ne connais pas suffisamment spip à ce jour pour savoir comment je peux utiliser la fonction <code>recuperer_fonc()</code>.<br class="autobr" /> Cependant, dans les fichiers du plugin acronymes, j'ai trouvé dans le dossier modeles un fichier sigles.html qui contient des boucles pour récupérer les données voulues (et dont on pourrait s'inspirer) :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="sy0"><</span>BOUCLE_acronymes_sigles<span class="br0">&#40;</span>FORMS<span class="br0">&#41;</span><span class="br0">&#123;</span>type_form<span class="sy0">=</span>acronymes_sigles<span class="br0">&#125;</span><span class="sy0">></span> <span class="sy0"><</span>B_Sigles<span class="sy0">></span> <span class="sy0"><</span>dl<span class="sy0">></span> <span class="sy0"><</span>BOUCLE_Sigles<span class="br0">&#40;</span>FORMS_DONNEES<span class="br0">&#41;</span><span class="br0">&#123;</span>id_form<span class="br0">&#125;</span><span class="br0">&#123;</span>tri_donnee ligne_1<span class="br0">&#125;</span><span class="sy0">></span> <span class="sy0"><</span>dt<span class="sy0">></span><span class="co2">#LESVALEURS{ligne_1,' '}</dt> </span><span class="sy0"><</span>dd<span class="sy0">></span><span class="co2">#LESVALEURS{texte_1,' '}</dd> </span><span class="sy0"></</span>BOUCLE_Sigles<span class="sy0">></span> <span class="sy0"></</span>dl<span class="sy0">></span> <span class="sy0"></</span>B_Sigles<span class="sy0">></span> <span class="sy0"><</span>p<span class="sy0">><:</span>acronymessigles<span class="sy0">:</span>aucune_reponse<span class="sy0">:></</span>p<span class="sy0">></span> <span class="sy0"><</span><span class="co1">//B_Sigles></span> <span class="sy0"></</span>BOUCLE_acronymes_sigles<span class="sy0">></span> <span class="sy0"><</span>p<span class="sy0">><:</span>acronymessigles<span class="sy0">:</span>aucune_reponse<span class="sy0">:></</span>p<span class="sy0">></span> <span class="sy0"><</span><span class="co1">//B_acronymes_sigles></span></code></pre></div> <p>Je sais que le champ <code>texte_1</code> contient l'expansion à récupérer, mais je ne vois pas comment utiliser recuperer_fond() dans ma fonction <code>glossaire_attributs_lien()</code>, comme je t'ai dit je ne connais pas encore assez bien spip...</p> Un glossaire interne pour vos sites 2012-04-11T20:13:15Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456203 2012-04-11T20:13:15Z <p>Alors pour le code coloré, c'est : <code><code class="php"></code> ou <code><cadre class="php"></code>.</p> <p>Pour ce qui est de ton accès en BDD, serait-il possible de passer par un fond pour profiter du cache et éviter la connexion systématique, en utilisant la fonction SPIP <code>récuperer_fond()</code> directement dans la fonction <code>glossaire_attributs_lien()</code>. Pourrait-on donc simplifier tout cela avec un fond HTML ?</p> Un glossaire interne pour vos sites 2012-04-11T15:49:41Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456200 2012-04-11T15:49:41Z <p>Alors là, pas mal !</p> <p>En configurant la lame glossaire avec la case ignorer les balises <code><acronym></code> et <code><abbr></code> <strong>décochée</strong>, on obtient bien le code que je souhaitais.</p> <p>Par exemple pour W3C :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><a class="cs_glossaire" name="mot16_4" title="W3C, définition dans le glossaire" href="./?+-W3C-+"> <span class="gl_mot"><abbr lang="en" title="World Wide Web consortium">W3C</abbr></span> <span class="gl_dl"> <span class="gl_dt">W3C</span> <span class="gl_dd"> Abréviation de World Wide Web Consortium. C'est un organisme de normalisation chargé de promouvoir la compatibilité des technologies web. Il émet des recommandations qui ont valeur de standards internationaux et décrit les spécifications des différentes technologies utilisées sur le web. </span> </a></code></pre></div> <p>Le seul problème résiduel réside dans la gestion des liens par le lecteur d'écran (je n'ai testé que JAWS 10); je rappelle que celui-ci peut être paramétré pour lire le titre de lien (attribut title de la balise <code><a></code>), ou bien l'intitulé du lien (contenu entre les balises <code><a></code> et <code></a></code>), ou encore le plus long des 2 (titre ou intitulé).</p> <p>Si le lecteur est paramétré pour lire l'intitulé du lien, comme celui-ci contient une balise <code><abbr></code>, alors l'expansion sera prononcée par le lecteur (si le lecteur est paramétré pour développer les abréviations)</p> <blockquote class="spip"> <p>«Lien World Wide Web consortium» (prononciation anglaise)</p> </blockquote> <p>, donc la clarification est accessible, tout comme la définition complète si on active le lien.</p> <p>Si c'est l'attribut title du lien qui est lu :</p> <blockquote class="spip"> <p>«Lien W3C, définition dans le glossaire» (prononciation française)</p> </blockquote> <p>Le problème ici, est que l'expansion n'est plus accessible directement.</p> <p>Il faut donc que l'attribut title contienne l'expansion soit <br class="autobr" /> <code><a class="cs_glossaire" name="mot16_4" title="World Wide Web consortium, définition dans le glossaire" href="./?+-W3C-+">.....</a></code></p> <p>Ce qui donnera à la lecture :</p> <blockquote class="spip"> <p>«Lien <strong>World Wide Web consortium</strong>, définition dans le glossaire» (prononciation française)</p> </blockquote> <p>Pour arriver à ce résultat, il suffit de modifier la fonction <code>glossaire_attributs_lien</code> (à placer dans <code>mes_fonctions.php</code> qui surcharge la nouvelle fonction glossaire_attributs_lien_dist committée il y a quelques jours (désolé pour la mise en forme du code, mais je ne sais pas comment faire pour avoir la coloration syntaxique sur ce forum) :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>function glossaire_attributs_lien($id_mot, $lien, $titre, $les_titres) { return "href='$lien' title=\"" . expansion_abbr_acronym_chercher(contenu_balises_acronym_abbr_span($les_titres[0])) . ', définition dans le glossaire"'; }</code></pre></div> <p>et d'ajouter la fonction <code>expansion_abbr_acronym_chercher()</code> :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>function expansion_abbr_acronym_chercher($expression) { $expansion = $expression; $liste=Forms_liste_tables('acronymes_sigles'); if (count($liste)) { include_spip('forms_fonctions'); $id_form = intval(reset($liste)); $res = spip_query("SELECT id_donnee FROM spip_forms_donnees WHERE id_form="._q($id_form)." AND statut='publie'"); while ($row = spip_fetch_array($res)) { $accro=str_replace(".","",forms_calcule_les_valeurs('forms_donnees_champs', $row['id_donnee'], 'ligne_1', $id_form,' ', true)); if (strlen($accro) && $accro == $expression) { $expansion = forms_calcule_les_valeurs('forms_donnees_champs', $row['id_donnee'], 'texte_1', $id_form,' ', true); } } } return $expansion; }</code></pre></div> <p>Euh, je pourrais peut-être poster un code plus clair, avec les commentaires qui vont avec si on me dit comment faire pour avoir une mise en forme propre, la balise <code><code></code> ou <code><cadre></code> n'étant pas satisfaisantes en l'état.</p> Un glossaire interne pour vos sites 2012-04-09T10:36:11Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456132 2012-04-09T10:36:11Z <p>Bon, abandonnons alors la surcharge de la balise <code><a></code>.</p> <p>Suite à cette très longue discussion, je propose que la lame du CS sont configurable au niveau des balises <code><abbr></code> et <code><acronym></code>. Par défaut, elle les ignore.</p> <p>Si l'utilisateur veut quand même les voir traitées par le glossaire, alors la lame s'occupe de la mise en ordre correct des balises.</p> <p>Dernier commit : <a href="http://zone.spip.org/trac/spip-zone/changeset/60201" class="spip_url spip_out" rel='nofollow external'>http://zone.spip.org/trac/spip-zone...</a>. Que donnent tes tests dans ce cas ?</p> Un glossaire interne pour vos sites 2012-04-09T06:59:51Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456128 2012-04-09T06:59:51Z <p>Le problème est ici au niveau de la sémantique : une balise <code>abbr</code> ne doit contenir qu'un terme abrégé, avec comme attribut <code>title</code> l'expansion de l'abréviation et rien d'autre.<br class="autobr" /> Selon la spécification du W3C (<a href="http://www.w3.org/TR/html5/the-abbr-element.html#the-abbr-element" class="spip_url spip_out auto" rel="nofollow external">http://www.w3.org/TR/html5/the-abbr-element.html#the-abbr-element</a>) :</p> <blockquote class="spip"> <p>The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else.</p> </blockquote> <p>Il ne faut donc pas confondre expansion du terme abrégé et définition du terme : la première désigne la signification de chaque lettre composant un acronyme (ex : HTML pour «Hyper Text Makrkup Language») ou la signification de l'abréviation (ex: etc. pour «et caetera») et la 2ème donne <strong>une explication</strong> par une définition du terme.</p> <p>Ensuite, toutes les abréviations ne sont pas forcément à associer à une définition au sens du glossaire si l'expansion de l'abréviation suffit à la compréhension du terme. C'est ensuite au rédacteur de décider s'il doit apporter des informations complémentaires à l'expansion pour faciliter la compréhension du terme : par exemple, pour HTML, l'expansion «Hyper Text Makrkup Language» n'est pas suffisante pour expliquer ce qu'est et à quoi sert HTML. Dans ce cas il faudrait y associer une définition comme celle-ci : «Abréviation de <i>HyperText Markup Language</i>. C'est un langage de balisage utilisé pour écrire les pages Web : il définit la structure et le contenu de la page.»</p> <p>D'après la spécification W3C, l'attribut title de la balise <code><abbr></code> ne doit pas contenir autre chose que l'expansion «HyperText Markup Language» : pour ma part, c'est pour cela que ce terme fait partie de 2 tables (acronymes : pour expliciter l'expansion, glossaire : pour expliciter la définition plus complète).</p> <p>Avec la lame glossaire du CS actuelle, à condition d'utiliser conjointement le plugin acronymes, ce qui est mon cas, on ne voit que l'expansion (elle est prononcée par la synthèse vocale pour les non-voyants), pour accéder à la définition, il faut se rendre dans le glossaire (il faut un lien vers ce glossaire en haut de chaque page pour y faciliter l'accès). En effet la balise <code>abbr</code> étant échappée par la lame glossaire du CS, «l'effet glossaire» ne s'applique pas, c'est «l'effet plugin acronymes» qui l'emporte.</p> <p>Par contre, il existe beaucoup de termes à définir qui ne sont pas des abréviations (<i>architrave</i>, <i>référentiel d'accessibilité</i>,...). Dans ce cas, «l'effet glossaire» l'emporte (puisqu'il n'y a pas d'entrée correspondante dans la table des acronymes) : La lame glossaire du CS actuelle insère un lien vers la définition du glossaire (accessible à tous) et affiche la définition (accessible aux voyants seuls) dans une petite fenêtre au survol souris, ce qui reste un bon <strong>compromis</strong> puisque la définition est accessible à tous d'une manière ou d'une autre.</p> <p>Ce serait une erreur de sémantique d'encadrer le terme «architrave» par une balise <code>abbr</code> alors que ce terme <strong>n'est pas</strong> une abréviation.</p> <p>Il est vrai que le glossaire peut gérer toutes les définitions (des terme abrégés, comme des termes normaux), mais ne peut pas actuellement faire la distinction sémantique entre une abréviation et un terme «normal». Pour gérer les acronymes, il faudrait peut-être créer un sous-groupe de mots «abréviations» au sein du groupe de mots «Glossaire». Ensuite il y a du code à retoucher pour faire en sorte de savoir si un terme appartient au sous-groupe «abréviations» : si c'est le cas, alors on indiquerait le code suivant (par exemple avec le terme W3C) :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><a class="cs_glossaire" name="mot16_4" title="W3C, définition dans le glossaire" href="./?+-W3C-+"> <span class="gl_mot"><abbr lang="en" title="World Wide Web consortium">W3C</abbr></span> <span class="gl_dl"> <span class="gl_dt">W3C</span> <span class="gl_dd"> Abréviation de World Wide Web Consortium. C'est un organisme de normalisation chargé de promouvoir la compatibilité des technologies web. Il émet des recommandations qui ont valeur de standards internationaux et décrit les spécifications des différentes technologies utilisées sur le web. </span> </a></code></pre></div> <p>A noter que dans ce cas, selon le paramétrage du lecteur d'écran (JAWS 10) pour la lecture des liens, on obtient la lecture suivante : <br />- Paramétrage lecture du titre de lien (attribut <code>title</code>) :</p> <blockquote class="spip"> <p>«Lien W3C, définition dans le glossaire»</p> </blockquote> <p><br />- Paramétrage lecture de l'intitulé du lien (texte entre les balises <code><a></code> et <code></a></code>) :</p> <blockquote class="spip"> <p>«Lien World Wide Web consortium»</p> </blockquote> <p>(ce qui est après le mot «Lien» est prononcé en anglais à cause de l'attribut <code>lang</code> de la balise <code><abbr></code>) si le lecteur d'écran est paramétré pour développer les abréviations, ou sinon</p> <blockquote class="spip"> <p>«W3C»</p> </blockquote> <p>(prononcé en anglais, ce qui peut être un problème pour sa compréhension par les non-anglophones, voir post scriptum en fin de commentaire).</p> <p>Donc ce code foncionne super bien, c'est pourquoi je voulais arriver à cela ! (voir le commentaire #comment456001 sur cette page). Ce serait l'idéal.</p> <p>Si le terme n'appartient pas au sous-groupe «abréviations», ce serait le code suivant (par exemple avec le terme <i>référentiel d'accessibilité</i>):</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><a class="cs_glossaire" name="mot16_4" title="référentiel d'accessibilité, définition dans le glossaire" href="./?+-Referentiel-d-accessibilite-+"> <span class="gl_mot">référentiel d'accessibilité</span> <span class="gl_dl"> <span class="gl_dt">référentiel d'accessibilité</span> <span class="gl_dd">La définition... </span> </a></code></pre></div> <p>Ceci supposerait que pour un mot du sous-groupe «abréviations» dans le glossaire, dans l'interface privée de spip, le champ de saisie «descriptif rapide» contiennent l'expansion seule, tandis que le champ «Texte explicatif» contiendra<strong> en plus de l'expansion</strong>, la définition complète.</p> <p>En attendant, j'utilise le plugin acronyme en association avec le glossaire, ce qui répond à mes besoins, mais m'oblige effectivement à avoir le terme dans 2 tables différentes, et présente l'inconvénient de la prédominance de l'effet acronyme sur l'effet glossaire (pour les termes abrégés seulement) comme j'ai précisé plus haut.</p> <p>D'autre part, en ce qui concerne la lecture vocale du code que tu proposes, à savoir :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><abbr title="Architrave" name="mot1_0" class="cs_glossaire"><span class="gl_mot">architrave</span><span class="gl_dl"> <span class="gl_dt">Architrave</span> <span class="gl_dd">Le texte explicatif complet du mot !</span> </span></abbr></code></pre></div> <p>je viens de tester avec le lecteur d'écran JAWS 10 : <br />- Si celui-ci est paramétré pour développer les abréviations, alors c'est la valeur de l'attribut <code>title</code> qui sera prononcé seule, soit</p> <blockquote class="spip"> <p>«architrave»</p> </blockquote> <p>. Dans ce cas, il n'y a aucun accès possible à la définition. <br />- Si JAWS est paramétré pour ne pas développer les abréviations, alors c'est tout le contenu situé entre les balises <code><abbr></code> et <code></abbr></code> qui sera lu, soit</p> <blockquote class="spip"> <p>«architrave Architrave Le texte explicatif complet du mot !»</p> </blockquote> <p>. Dans ce cas, les 3 textes entre les balises <code>span</code> sont prononcés l'un après l'autre (d'où la répétition du mot architrave).</p> <p>On constate donc qu'<strong>outre le problème de sémantique déjà signalé, cette solution n'est pas satisfaisante pour un lecteur vocal</strong>.</p> <p>Enfin, afin que le respect de la sémantique soit total, le terme à définir devrait être encapsulé dans une balise <code><dfn></code> selon les modalités décrites sur la page <a href="http://www.w3.org/wiki/HTML/Elements/dfn" class="spip_url spip_out auto" rel="nofollow external">http://www.w3.org/wiki/HTML/Elements/dfn</a> et plus précisément sur <a href="http://www.w3.org/TR/html5/the-dfn-element.html#the-dfn-element" class="spip_url spip_out auto" rel="nofollow external">http://www.w3.org/TR/html5/the-dfn-element.html#the-dfn-element</a>, ceci afin d'indiquer que le terme en question est défini quelque part : reste à voir où (il semble que ce soit le noeud parent immédiat de l'élément <code><dfn></code>), je n'ai pas encore approfondi cette question, il me faut être sûr que j'ai bien assimilé la spécification du W3C, ce qui est loin d'être sûr, je viens juste de la découvrir...</p> <p>Pour l'instant donc, en l'état actuel de mes connaissances, je pense que la solution actuelle (association des plugins acronymes + lame glossaire du CS) me semble le meilleur compromis pour une bonne accessibilité; sinon, pour éviter les inconvénients signalés (terme abrégé dans 2 tables, échappement de balise <code><abbr></code> par la lame), il faudrait retoucher le code de la lame glossaire afin d'obtenir le codage idéal (voir question du sous-groupe «abréviations», abordée plus haut). Si dans l'avenir je trouve mieux, j'en ferai part sur ce forum.</p> <p>PS : pour les abréviations d'origine étrangère, il faut tenir compte de ce qui est dit sur <a href="http://www.webaccessibilite.fr/abreviations-sigles-et-acronymes-2008-03-26.php#etr" class="spip_url spip_out auto" rel="nofollow external">http://www.webaccessibilite.fr/abreviations-sigles-et-acronymes-2008-03-26.php#etr</a>; Pour les mots du sous-groupe «abréviations», la solution préconisée pourrait être mise en place en ajoutant une balise <code><multi></code> encadrant la valeur du champ de saisie «descriptif rapide» afin de préciser d'une part la langue de prononciation de l'expansion, et d'autre part une autre balise <code><multi></code> dans le champ «titre» du mot si la langue de prononciation de l'abréviation elle-même doit être différente de la langue principale du site.</p> Un glossaire interne pour vos sites 2012-04-07T23:46:59Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456115 2012-04-07T23:46:59Z <p>Merci pour toutes ces explications précises, le sujet est intéressant. Je continue de penser qu'un terme ne doit faire partie que d'une seule table, histoire d'éviter une confusion des genres : au webmestre de choisir s'il veut une simple abréviation ou un vraie définition...</p> <p>Il reste une 3e solution : pouvoir surharger la balise utilisée par la lame du CS, et donc abandonner la balise <code><a/></code> du glossaire interne au profit de <code><abbr/></code> par exemple. On perd dans ce cas le lien pointant vers le squelette glossaire.html, mais est-il indispensable finalement ? Que fera la synthèse vocale dans un pareil cas ? Serait-ce une piste exploitable ?</p> <p>Exemple du genre :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="xml"><code><span class="sc3"><span class="re1"><abbr</span> <span class="re0">title</span>=<span class="st0">"Architrave"</span> <span class="re0">name</span>=<span class="st0">"mot1_0"</span> <span class="re0">class</span>=<span class="st0">"cs_glossaire"</span><span class="re2">></span><span class="re1"><span</span> <span class="re0">class</span>=<span class="st0">"gl_mot"</span><span class="re2">></span></span>architrave<span class="sc3"><span class="re1"></span<span class="re2">></span></span><span class="re1"><span</span> <span class="re0">class</span>=<span class="st0">"gl_dl"</span><span class="re2">></span></span> <span class="sc3"><span class="re1"><span</span> <span class="re0">class</span>=<span class="st0">"gl_dt"</span><span class="re2">></span></span>Architrave<span class="sc3"><span class="re1"></span<span class="re2">></span></span></span> <span class="sc3"><span class="re1"><span</span> <span class="re0">class</span>=<span class="st0">"gl_dd"</span><span class="re2">></span></span>Le texte explicatif complet du mot !<span class="sc3"><span class="re1"></span<span class="re2">></span></span></span> <span class="sc3"><span class="re1"></span<span class="re2">></span></span><span class="re1"></abbr<span class="re2">></span></span></span></code></pre></div> <p>N'hésite pas à nous tenir au courant de tes travaux.</p> Un glossaire interne pour vos sites 2012-04-07T10:10:44Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456097 2012-04-07T10:10:44Z <p>Au final, je vais retenir la solution n°1, car elle me permet de ne pas modifier le code de <code>glossaire_fonctions.php</code>, ce qui me protège des futures mises à jour du plugin, sachant que dans ma page d'aide sur l'accessibilité du site, j'explique comment les utilisateurs peuvent avoir accès (même si c'est indirectement) à la définition plus complète du terme en abréviation dans le glossaire.</p> <p>Ceci est le meilleur compromis, je pense.</p> <p>Merci pour les conseils prodigués et la modif sur la lame glossaire pour l'attribut <code>title</code>.</p> <p>Quand tout sera en place et que j'aurais un peu de temps, je rédigerai un article expliquant l'utilisation conjointe des plugins acronymes et glossaire afin de respecter les exigences des principaux référentiels d'accessibilité avec un site sous spip...</p> Un glossaire interne pour vos sites 2012-04-05T15:23:23Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456057 2012-04-05T15:23:23Z <p>Tout d'abord, abbr et glossaire ne disent pas exactement la même chose dans la mesure où la définition du glossaire est complète comme je l'ai indiqué dans mon précédent post avec l'exemple “W3C”. J'ai plein d'autres exemples comme ceux-là (voir les copies d'écran jointes pour un autre exemple)</p> <p>Je souhaitais simplement permettre l'accès à la définition <strong>complète</strong> à travers le lien, ce qui n'est pas possible si la balise <code><a></code> est à l'intérieur d'une balise <code><abbr></code> : dans ce cas, la synthèse vocale ignore le lien et lit l'attribut <code>title</code> de la balise <code><abbr></code>, l'utilisateur (non voyant) n'étant pas informé qu'il existe un lien vers la définition complète du glossaire, mais au moins il connaît la signification de chaque lettre de l'abréviation.</p> <p>Je pensais donc qu'il suffisait d'inverser l'encapsulation (mettre<code><a></code> dans <code><abbr></code>), ce que je viens de tester sur une copie du code de la page. Mais là, le résultat est exactement inverse, c'est-à-dire que la synthèse vocale “voit” le lien puisqu'elle indique “lien W3C, définition dans le glossaire”, par contre elle ne lit pas l'attribut <code>title</code> de la balise <code><abbr></code> qui suit, ce qui fait que l'utilisateur non-voyant ne peut pas savoir la signification de chaque lettre de l'abréviation sans activer le lien par la touche entrée, donc en changeant de page...</p> <p>J'aurai voulu que la synthèse vocale lise les 2 (l'un après l'autre) : à savoir le lien s'il souhaite une définition complète et pendant la lecture de l'intitulé du lien, sa clarification, ce qui donnerait ici “lien Word Wide Web Consortium, définition dans le glossaire” au lieu de "lien W3C, définition dans le glossaire. Mais d'après mes derniers tests, je ne peux pas arriver à avoir ce comportement.</p> <p>Si on se pose la question du pourquoi j'utilise le plugin acronymes à côté de la lame glossaire, c'est pour satisfaire autant le côté sémantique et le côté pratique : <br />- le côté sémantique car une abréviation, un sigle, un acronyme se doit d'être encadré au moins une fois par une balise <code><abbr title="clarification de l'abréviation"></code> <br />- le côté pratique (pas seulement pour les voyants !), si la clarification directe n'est pas suffisante pour la compréhension, un lien vers une définition plus complète est proposé</p> <p>Il me reste donc 2 choix possibles :</p> <p>1) Soit je ne touche pas à la lame du glossaire et dans ce cas, l'échappement des balises <code><abbr></code> dans les fonctions du glossaire font que toutes mes abréviations sont clarifiées (accessibles aux voyants comme aux non-voyants), mais il n' y a pas de lien vers une définition plus complète (cette dernière est inaccessible pour tout le monde) : voir la capture d'écran test_acronymes+glossaire(abbr-echappees).png</p> <p>Dans ce cas, le seul moyen d'accéder à la définition complète du mot dans le glossaire se fait par le squelette glossaire.html en passant par le moteur de recherche du site et en cliquant sur le lien du mot-clé dans la page des résultats.</p> <p>2) Soit j'empêche la lame du glossaire d'échapper les balises <code><abbr></code>, dans ce cas, les non-voyants ont accès à la clarification de l'abréviation, mais pas au lien vers la définition complète, tandis que les voyants ont accès direct visuellement à la définition complète (donc à la clarification de l'abréviation) sans changer de page... _ Voir la capture d'écran test_acronymes+glossaire(abbr-non-echappees).png</p> <p>La solution n°2 est plus proche de ce que je recherche, mais voilà, il faut toucher au plugin...</p> <p><strong>Ceci ne concerne que les mots du glossaire qui sont également des abréviations</strong>, ce qui n'est pas le cas de tous les mots du glossaire : par exemple les <i>landmarks roles</i> sont définis dans le glossaire, mais pas dans le plugin acronymes. Dans ce cas, il n'y a pas d'encapsulation de balises <code><a></code> dans balises <code><abbr></code>, et donc le lien vers le glossaire est accessible à tous (directement sur la même page au survol de la souris pour les voyants, indirectement par l'appui de la touche entrée dès que la synthèse vocale prononce “Lien landadmarks roles, définition dans le glossaire”, mais en changeant de page.)</p> Un glossaire interne pour vos sites 2012-04-05T11:39:45Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456040 2012-04-05T11:39:45Z <p>Mais pourquoi vx-tu absolument que 2 fenêtres (abbr et glossaire) se superposent pour dire la même chose !?</p> Un glossaire interne pour vos sites 2012-04-05T05:20:31Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456014 2012-04-05T05:20:31Z <p>Super pour la fonction fournie ! ça fonctionne à merveille, ma surcharge est OK (dans mes_fonctions.php). J'y ai mis :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>function glossaire_attributs_lien($id_mot, $lien, $titre, $les_titres) { return "href='$lien' title=\"" . contenu_balises_acronym_abbr_span($les_titres[0]) . ', définition dans le glossaire"'; }</code></pre></div> <p>Merci pour la réactivité sur le dev... Ceci me permet d'éviter de toucher au code du plugin !!</p> <p>Sauf que, dans mon cas particulier, comme la balise <code>abbr</code> est maintenant échappée, mes abréviations (reconnues et balisées correctement par le plugin acronymes), ne sont plus reconnues par la lame glossaire...<br class="manualbr" />Il a fallu donc que j'enlève la balise abbr des balises html échappées (et du coup modifier à nouveau glossaire_fonctions.php :-( ). A noter que je n'emploie pas la balise <code>acronym</code> car elle est obsolète en html5, donc mes abréviations/sigles/acronymes sont codées systématiquement avec la balise <code>abbr</code></p> <blockquote class="spip"> <p>“je ne vois pas l'intérêt d'avoir le même mot dans 2 tables différentes...”</p> </blockquote> <p>L'intérêt d'avoir les 2 est que la première (table des acronymes) permet de clarifier l'abréviation en donnant sa signification (ce n'est pas forcément sa définition : ex W3C = “World Wide Web Consortium”), et que la 2ème (définition du glossaire) permet de donner une définition plus ou moins complète (Ex : W3C = “Abréviation de World Wide Web Consortium. C'est un organisme de normalisation chargé de promouvoir la compatibilité des technologies web. Il émet des recommandations qui ont valeur de standards internationaux et décrit les spécifications des différentes technologies utilisées sur le web.”). On comprend bien que ce texte est trop long pour figurer dans un attribut title. D'ailleurs sémantiquement, ce serait moins correct à mon sens.<br class="manualbr" />Ensuite, l'intérêt est que pour les synthèses vocales, la clarification de l'abréviation est disponible immédiatement, et la définition complète reste accessible par l'activation du lien. Malheureusement, comme je le précisait dans mon post précédent, l'encapsulation de <code><a></code> dans <code><abbr></code>, fait que la synthèse vocale ne “voit” pas la balise <code><a></code>, donc n'annonce pas la présence du lien, privant ainsi l'utilisateur de l'accès à la définition complète du glossaire.</p> <p>Je me suis documenté un peu sur la façon de créer un plugin, les pipelines... et j'ai ainsi pu constater que le plugin acronymes (dans son fichier plugin.xml) se branche sur le pipepline post_typo.<br class="manualbr" />Pour la lame glossaire il semble que le dossier /tmp/couteau_suisse, contient un fichier mes_options avec le code <code>$GLOBALS['table_des_traitements']['TEXTE'][]='cs_nettoie(cs_glossaire(propre(%s,$connect)))'; </code> ce qui laisse supposer que le traitement par le glossaire intervient après “propre”.</p> <p>Je ne connais malheureusement pas encore assez spip du point de vue des traitement automatiques et des plugins pour comprendre ce qu'il faut faire pour faire en sorte que l'encapsulation qui pose problème soit inversée, mais je crois savoir qu'il faut changer l'ordre de traitement du plugin acronyme par rapport à la lame du glossaire, simplement je ne sais pas où agir : post_propre, post_typo, pipelines, tables_des_traitements, je dois encore me documenter là-dessus...</p> Un glossaire interne pour vos sites 2012-04-04T23:22:23Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456011 2012-04-04T23:22:23Z <p>Le Glossaire pourrait totalement ignorer les <strong>abbr </strong> : je ne vois pas l'intérêt d'avoir le même mot dans 2 tables différentes : <a href="http://zone.spip.org/trac/spip-zone/changeset/60119" class="spip_url spip_out" rel='nofollow external'>http://zone.spip.org/trac/spip-zone...</a></p> <p>Pour <strong>jQuery</strong>, je ne pensais pas au survol de la souris, mais à la fin du chargement de la page.</p> <p>Une solution était aussi de créer une lame perso branchée sur le pipeline post_propre et qui reprendrait les syntaxes en les modifiant comme tu le souhaites en php.</p> <p>Bref, j'ai publié une correction sur le CS pour permettre un branchement sur le calcul des attributs : <a href="http://zone.spip.org/trac/spip-zone/changeset/60118" class="spip_url spip_out" rel='nofollow external'>http://zone.spip.org/trac/spip-zone...</a></p> <p>Fonction fournie :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="kw2">function</span> glossaire_attributs_lien_dist<span class="br0">&#40;</span><span class="re0">$id_mot</span><span class="sy0">,</span> <span class="re0">$lien</span><span class="sy0">,</span> <span class="re0">$titre</span><span class="sy0">,</span> <span class="re0">$les_titres</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="st0">"href='<span class="es4">$lien</span>'"</span><span class="sy0">;</span> <span class="br0">&#125;</span></code></pre></div> <p>Exemple de fonction surchargée à placer dans config/mes_options.php par exemple :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code><span class="kw2">function</span> glossaire_attributs_lien<span class="br0">&#40;</span><span class="re0">$id_mot</span><span class="sy0">,</span> <span class="re0">$lien</span><span class="sy0">,</span> <span class="re0">$titre</span><span class="sy0">,</span> <span class="re0">$les_titres</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="st0">"href='<span class="es4">$lien</span>' title=<span class="es1">\"</span>"</span> <span class="sy0">.</span> attribut_html<span class="br0">&#40;</span><span class="re0">$les_titres</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">.</span> <span class="st_h">'"'</span><span class="sy0">;</span> <span class="br0">&#125;</span></code></pre></div> <p>Travailler sur le code fourni par le plugin est toujours une très mauvaise idée à cause des mises à jour régulières...</p> Un glossaire interne pour vos sites 2012-04-04T14:26:20Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment456001 2012-04-04T14:26:20Z <p>Finalement, j'ai réussi à copier ma fonction dans <code>glossaire_fonctions.php</code> et à recompiler le couteau suisse sans le problème décrit précédemment et j'obtiens bien ce que je cherchais.</p> <p>L'inconvénient effectivement, c'est en cas de mise à jour du plugin. J'effectuerai une sauvegarde préalable de mes modifs et s'il faut à nouveau les remettre, je le remettrai...</p> <p>Le seul problème qui subsiste, comme j'utilise aussi le plugin acronymes, qui repère mes acronymes et y applique une balise <code><abbr></code> est que mes balises <code><a></code> avec mon attribut title comme je le souhaite se trouvent encapsulées dans une balise <code><abbr></code>, ce qui fait que le lien n'est pas reconnu en tant que tel par la synthèse vocale (et à mon avis le code ne doit pas être valide avec le validateur W3C).<br class="autobr" /> Par exemple, pour un mot du glossaire comme “W3C”, défini également en tant qu'acronyme (dans une table sigles_acronymes, fournie par le plugin acronymes), j'obtiens le code suivant :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><abbr lang="en" title="World Wide Web consortium"> <a class="cs_glossaire" name="mot16_4" title="W3C, définition dans le glossaire" href="./?+-W3C-+"> <span class="gl_mot">W3C</span> <span class="gl_dl"> <span class="gl_dt">W3C</span> <span class="gl_dd"> </span> </a> </abbr></code></pre></div> <p>Il semble clair qu'il y a un ordre à respecter dans l'application des fonctions du plugin glossaire et de celles de l'acronyme, mais je ne sais pas lequel ni où je pourrais modifier l'ordre de traitement du texte des articles par ces plugins.</p> <p>Le code souhaité est :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><a class="cs_glossaire" name="mot16_4" title="W3C, définition dans le glossaire" href="./?+-W3C-+"> <span class="gl_mot"><abbr lang="en" title="World Wide Web consortium">W3C</abbr></span> <span class="gl_dl"> <span class="gl_dt">W3C</span> <span class="gl_dd"> </span> </a></code></pre></div> <p> Mais je ne sais pas où se trouve le code qui fait que spip applique automatiquement ces filtres (ceux du plugin glossaire + ceux du plugin acronymes), il faudrait changer l'ordre d'application. Si quelqu'un peut me donner une piste...</p> Un glossaire interne pour vos sites 2012-04-04T05:52:01Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment455990 2012-04-04T05:52:01Z <p>Tu as raison pour la balise <code><code></code>... Suis-je bête, je mettais des crochets à la place des chevrons...</p> <p>En ce qui concerne le jQuery, si on code l'apparition de l'attribut <code>title</code> associé à l'événement survol du mot du glossaire, alors nan, le lecteur vocal n'y aura pas accès (les mal ou non-voyants n'utilisant pas de souris). D'ailleurs, il est aussi possible que le javascript soit désactivé sur le navigateur... C'est pour ça que j'utilise le mode CSS pour la lame glossaire.</p> <p>Donc, il vaut bien mieux que le code avec l'attribut title soit déjà dans la page au chargement de celle-ci.</p> <p>Maintenant, pour ce qui est de la future mise à jour du plugin, effectivement c'est un problème...(à moins, à chaque mise à jour, de penser à remodifier le code...) Y aurait pas un moyen de surcharger la fonction <code>cs_rempl_glossaire()</code> ?</p> Un glossaire interne pour vos sites 2012-04-03T14:33:02Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment455980 2012-04-03T14:33:02Z <p>La balise <code><code></code> fonctionne bien ici pourtant ...</p> <p>Est-ce que par hasard le lecteur tiens compte du jQuery ? Parce qu'il serait possible d'ajouter le title en jQuery plus facilement qu'en codant en dur... Tu te prives là de toute mise à jour future du plugin...</p> Un glossaire interne pour vos sites 2012-04-03T14:07:11Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment455979 2012-04-03T14:07:11Z <p>OK, maintenant ça fonctionne (désolé pour la mauvaise mise en forme du code à l'affichage, apparemment le raccourci [code][/code] ne fonctionne pas dans le formulaire de saisie) :<br class="autobr" /> J'ai mis $table1[$gloss_id] = “href='$lien' title=\”$titre, définition dans le glossaire\“name='mot$gloss_id”;</p> <p>Le seul problème résiduel est pour les mots du glossaire dans une autre langue (en) que celle du site (fr) : dans ce cas, la variable $titre contient les balises span. Ce qui a pour conséquence fâcheuse la lecture des balises span par une synthèse vocale...</p> <p>J'ai une fonction perso (dans mes_fonctions.php dans mon dossier squelettes) qui extrait le contenu de balises span, ce qui donnerai le code :<br class="autobr" /> $table1[$gloss_id] = “href='$lien' title=\”“.contenu_balises_acronym_abbr_span($titre).”, définition dans le glossaire\“name='mot$gloss_id”;</p> <p>La fonction est contenu_balises_acronym_abbr_span($chaine) : je ne détaille pas son code ici pour ne pas alourdir mon propos, il faut juste savoir qu'elle renvoie la chaîne contenu entre une balise (span, acronym, abbr)ouvrante et une fermante.</p> <p>J'ai tenté de la copier au début du fichier glossaire_fonctions.php, après le define() de la liste des accents (ligne 11). Après recompilation du couteau suisse, je ne peux plus accéder à mon site. J'ai réussi à y accéder à nouveau en sauvegardant puis en vidant le répertoire tmp.</p> <p>Ma question est : comment appeler cette fonction depuis glossaire_fonctions.php, si on ne peut pas y copier son code ?</p> Un glossaire interne pour vos sites 2012-04-03T09:02:16Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment455970 2012-04-03T09:02:16Z <p>Ah oui c'est exact, c'est bien ligne 214. Pour que les modifs soient prises en compte, il faut recompiler le Couteau Suisse en réaffichant sa page d'admin, puis vider les caches de SPIP.</p> Un glossaire interne pour vos sites 2012-04-03T04:44:48Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment455960 2012-04-03T04:44:48Z <p>Merci pour votre réponse.<br class="manualbr" />le fichier glossaire_fonctions.php ne contient que 283 lignes (/plugins/couteau_suisse/outils, c'est bien là ?). Pour moi, ceci se trouve ligne 214, mais j'ai déjà essayé cette modif sans succès (y compris en vidant le cache) : l'attribut title n'apparaît pas dans le code de la page. Une autre idée ?</p> <p>En ce qui concerne le masquage de l'attribut title à l'affichage, cela ne paraît pas possible de le faire, je n'ai pas trouvé malgré mes recherches. Cependant, l'info-bulle sur Firefox ne semble masquer que le titre de la fenêtre, la définition reste visible (si on ne bouge pas la souris dans la définition).</p> Un glossaire interne pour vos sites 2012-04-02T18:16:00Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment455946 2012-04-02T18:16:00Z <p>Bonjour,</p> <p>Le title brouille visuellement la fenêtre du glossaire lors du survol de la souris : comment faire pour que le navigateur ne l'affiche pas pour les voyants ?</p> <p>Le code se site ligne 925 et pourrait peut-être être changé en :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>$table1[$gloss_id] = "href='$lien' title =\"$les_titres\" name='mot$gloss_id"; </code></pre></div> Un glossaire interne pour vos sites 2012-04-02T14:02:48Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment455940 2012-04-02T14:02:48Z <p>Bonjour,</p> <p>Pour des raisons d'accessibilité, j'ai besoin de mettre un attribut title dans la balise <a> d'un mot du glossaire. En effet, si la fenêtre de définition apparaît bien au survol de la souris, cette définition n'est pas accessible aux non-voyants, le lecteur vocal ne restituant que l'intitulé du lien, c'est à dire le titre du mot, mais ce n'est pas assez explicite.</p> <p>Je voudrais quelque chose du genre <a href=“URL” title=“TITRE_DU_MOT, définition dans le glossaire”>titre_du_mot</a>. Ainsi la synthèse vocale lira de façon explicite la destination du lien.</p> <p>J'ai beau chercher dans glossaire_fonctions.php, je ne vois pas où je peux insérer cet attribut...</p> <p>Pourriez-vous m'indiquer où modifier le code ?</p> Un glossaire interne pour vos sites 2011-03-09T07:43:16Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment442271 2011-03-09T07:43:16Z <p>Le terme utilisée est “mandatée” en utf-8</p> Un glossaire interne pour vos sites 2011-03-07T13:26:51Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment442183 2011-03-07T13:26:51Z <p>Un pb d'accent sans doute... <br />- Quel est le jeu de caractères du site du site (configuration/Gestion des langues) ? <br />- Quel est le terme exact utilisé pour le mot ?</p> Un glossaire interne pour vos sites 2011-03-07T12:59:47Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment442179 2011-03-07T12:59:47Z <p>Bonjour,</p> <p>nous venons de voir sur un texte récent publié que le glossaire était activé sur le terme “mandatée” alors que le terme saisi est “mandat”</p> <p>En revanche sur un autre texte “mandats”, terme saisi, ne déclenche pas l'activation du glossaire sur “mandat”</p> <p>Quelle est la règle retenue pour les déclinaisons et quelle alternative utilisée pour soit désactiver dans un cas, soit activer dans l'autre sauf à saisir explicitement tous les termes séparés par des /</p> <p>merci</p> Un glossaire interne pour vos sites 2011-01-23T23:14:37Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439944 2011-01-23T23:14:37Z <p>Attention, il faut vider les caches et reconstuire le Couteau Suisse.</p> Un glossaire interne pour vos sites 2011-01-23T22:32:51Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439942 2011-01-23T22:32:51Z <p>Je viens de voir ta réponse, je look la doc.</p> Un glossaire interne pour vos sites 2011-01-23T22:30:23Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439941 2011-01-23T22:30:23Z <p>Hello,<br class="autobr" /> mais c'est tout récent ça !</p> <p>J'ai updaté via SVN, le filtre est non reconnu :<br class="autobr" /> Seul le export<i>1</i> donne un résultat.</p> <p>As tu un mail pour échanger plus rapidement ? moi : colliotarobasepierre-jean.com</p> Un glossaire interne pour vos sites 2011-01-23T22:28:57Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439940 2011-01-23T22:28:57Z <p>Finalement, je viens de documenter le filtre<strong> |cs_mots_glossaire </strong> dans le nouveau paragraphe : <a href="#lister" class="spip_ancre" rel='nofollow'>Lister les mots reconnus</a>.</p> Un glossaire interne pour vos sites 2011-01-23T19:00:15Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439934 2011-01-23T19:00:15Z <p>Oui, cette fonctionnalité a été introduite dans la version 1.8.33.02 du plugin, mais n'est pas encore documentée...</p> <p>Infos ici : <a href="http://zone.spip.org/trac/spip-zone/changeset/43826" class="spip_url spip_out" rel='nofollow external'>http://zone.spip.org/trac/spip-zone...</a>. Tout retour (bugs, noisettes, lignes de code, ...) sur ton projet est le bienvenu !</p> Un glossaire interne pour vos sites 2011-01-22T09:36:45Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439874 2011-01-22T09:36:45Z <p>Bonjour,</p> <p>Comment faire pour afficher les mots du glossaire trouvé dans le texte ailleurs que dans le texte lui-même ?<br class="autobr" /> Plus clairement : j'aimerais pouvoir boucler ou afficher les mots trouvés par le glossaire à un endroit bien défini dans ma page, par exemple : faire un nuage de tags avec les mots trouvés.</p> <p>Pierre-Jean</p> Un glossaire interne pour vos sites 2011-01-21T14:19:41Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439841 2011-01-21T14:19:41Z <p>Oui, merci ...<br class="autobr" /> Cela fonctionne avec la première solution, puisque pour le moment je n'envisage pas de faire mon site en multi-langue.<br class="autobr" /> C'était bien le sens de ma question, soit “activer un mot du Glossaire du Couteau Suise” dans un texte écrit directement dans un squelettes " : <code>[(#VAL{Mot_du_Glossaire_Choisi}|cs_glossaire)]</code>.</p> <p>Bonne journée</p> Un glossaire interne pour vos sites 2011-01-21T13:41:00Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439836 2011-01-21T13:41:00Z <p>Peut-être : <code>[(#VAL{t&eacute;l&eacute;chargeable}|cs_glossaire)]</code> ?</p> <p>Ou : <code><:telechargeable|cs_glossaire:></code> si tu as défini une chaine de langue 'telechargeable' dans local_fr.php (<a href="http://www.spip.net/fr_article2128.html" class="spip_url spip_out" rel='nofollow external'>http://www.spip.net/fr_article2128.html</a>) ?</p> <p>Etait-ce le sens de ta question ?</p> Un glossaire interne pour vos sites 2011-01-21T13:16:30Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment439833 2011-01-21T13:16:30Z <p>Bonjour,<br class="autobr" /> Dans le squelettes article.html, j'ai un petit texte écrit pour le Portfolio.<br class="autobr" /> J'aimerais que le mot “téléchargeable” soit pris en compte dans le glossaire ( bien entendu, le mot est créé dans le glossaire .. ). J'ai vu qu'il était possible de forcer une balise <br class="autobr" /> <code>[(#MA_BALISE|cs_glossaire)]</code>. <br class="autobr" /> Mais dans mon cas il s'agit de surcharger un petit texte qui se trouve dans le squelette. <br class="autobr" /> Le mot “téléchargeable” est donc noté “<code>t&eacute;l&eacute;chargeable</code>” comme ceci dans le squelette.<br class="autobr" /> Est-ce possible de le faire fonctionner avec le glossaire ?<br class="autobr" /> Si oui comment .. et de quelle manière ?<br class="autobr" /> Merci</p> <p>Pour exemple, voici une des adresses :<br class="autobr" /> <a href="http://g.colin.free.fr/spip/spip.php?article305#Portfolio" class="spip_url spip_out" rel='nofollow external'>http://g.colin.free.fr/spip/spip.ph...</a></p> Un glossaire interne pour vos sites 2010-06-28T16:20:26Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment432136 2010-06-28T16:20:26Z <p>Autant pour moi, merci pour cette précision.</p> <p>J'essaye tout de suite.</p> Un glossaire interne pour vos sites 2010-06-28T16:13:14Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment432134 2010-06-28T16:13:14Z <p>La sensibilité à la casse peut déjà être activée grâce aux expressions régulières.</p> <p>Je reproduis ici un extrait de l'article ci-dessus :</p> <blockquote class="spip"> <p>Ces expressions régulières sont utiles pour la recherche d'un mot sensible à la casse. Exemple : « ,CES, » (abbréviation de <i>Collège d'Enseignement Secondaire</i> à ne pas confondre avec le pronom <i>ces</i>).</p> </blockquote> <p>Il faut donc mettre des virgules autour des mots-clés majuscules...</p> Un glossaire interne pour vos sites 2010-06-28T16:05:20Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment432133 2010-06-28T16:05:20Z <p>Bonjour,</p> <p>Je suis en train de tester le glossaire en ce moment et tout fonctionne très bien à une chose prêt... Dans mon cas le fait que l'outil soit insensible à la casse pose problème car je ne m'en sert que pour la traduction des sigles/acronymes...</p> <p>En clair si les prochaines versions pouvait permettre de paramétrer la sensibilité à la casse ça serait vraiment top :)</p> Un glossaire interne pour vos sites 2010-03-29T10:07:54Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment428349 2010-03-29T10:07:54Z <p>Youpi et surtout MERCI</p> <p>Je viens de vérifier tous les mots clé du Glossaire et j'ai corrigé deux types d'erreur : <br />- l'apostrophe qui n'est pas acceptée (je ne le savais pas) <br />- et singulier/,pluriel?,i il manquait qq fois l'un des codes</p> <p>Après correction, nous n'avons plus de messages d'erreur, c'est génial</p> <p>MERCI à vous, le diagnostic était juste.</p> Un glossaire interne pour vos sites 2010-03-29T08:13:59Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment428345 2010-03-29T08:13:59Z <p>Surligné ne passe pas, donc la ligne 556 est :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>$texte = preg_replace_callback($les_regexp, "glossaire_echappe_mot_callback", $texte, $limit);</code></pre></div> Un glossaire interne pour vos sites 2010-03-29T08:11:36Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment428342 2010-03-29T08:11:36Z <p>Merci beaucoup de nous aider.<br class="autobr" /> Je ne voulais pas copier le code sur le site, car dans le fichier,je ne savais pas quelle partie vous serait utile ou pas et cela aurait été trop long. Bon j'insère un bout du fichier, surligné en jaune la ligne 556 .</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>// parcours de tous les mots, sauf celui qui peut faire partie du contexte (par ex : /spip.php?mot5) $mot_contexte=$GLOBALS['contexte']['id_mot']?$GLOBALS['contexte']['id_mot']:_request('id_mot'); foreach ($glossaire_array as $mot) if (($gloss_id = $mot['id_mot']) <> $mot_contexte) { // parser le mot-cle du glossaire // contexte de langue a prendre en compte ici list($les_mots, $les_regexp, $les_titres) = glossaire_parse($titre=extraire_multi($mot['titre'])); $mot_present = false; if(count($les_regexp)) { // a chaque expression reconnue, on pose une balise temporaire cryptee // ce remplacement est puissant, attention aux balises HTML ; par exemple, eviter : ,div,i $texte = preg_replace_callback($les_regexp, "glossaire_echappe_mot_callback", $texte, $limit); // TODO 1 : sous PHP 5.0, un parametre &$count permet de savoir si un remplacement a eu lieu // et s'il faut construire la fenetre de glossaire. // TODO 2 : decrementer le parametre $limit pour $les_mots, si &$count est renseigne. // en attendant, constuisons qd meme la fenetre... $mot_present = true; } if($les_mots) { if(preg_match(",\W(?:$les_mots)\W,i", " $texte ")) { $texte = glossaire_gogogo($texte, $les_mots, $limit, $unicode); $mot_present = true; } } // si un mot est trouve, on construit la fenetre de glossaire if($mot_present) { $lien = $glossaire_generer_url($gloss_id, $titre); // $definition =strlen($mot['descriptif'])?$mot['descriptif']:$mot['texte']; $table1[$gloss_id] = "href='$lien' name='mot$gloss_id"; // name est complete plus tard pour eviter les doublons $table2[$gloss_id] = recuperer_fond( defined('_GLOSSAIRE_JS')?'fonds/glossaire_js':'fonds/glossaire_css', array('id_mot' => $gloss_id, 'titre' => $les_titres, 'texte' => glossaire_safe($mot['texte']), 'descriptif' => glossaire_safe($mot['descriptif']))); } }</code></pre></div> <p>Notre glossaire comprend 400 termes, mais va grossir considérablement dans le temps.<br class="autobr" /> Il y a 4 types de mots et il nous a été créé un champ supplémentaire dans le cadre de saisie des mots du glossaire qui permet d'indiquer la catégorie ( soit Dico Sigles, dico animalier, dico noms propres, termes non animalier)<br class="autobr" /> Sinon on remplit le contenu des explications sur le terme du glossaire dans Descriptif rapide ( on met jamais rien en Texte explicatif). D'autre part, certains mots du glossaire ont des articles qui leur sont liés.</p> <p>- des sigles : par exemple : 3A-FIM, ou AACDA ( jamais de . entre les lettres, mais qq uns ont un tiret au milieu. Pour les sigles, dans Descriptif rapide je mets les lettres correspondantes au sigle en gras comme ceci <strong>A</strong></p> <p>- Noms propres : Prénom Nom, exemple : Albert t'Serstevens, Alexis Carrel, Truc de Machin de Bidule<br class="autobr" /> ( je vous ai mis Albert, car il a la particularité d'avoir une apostrophe au milieu)</p> <p>- termes animalier : peut être constitué d'un seul mot ou de plusieurs (exmple : Groupe 1, ou Perruche à bandeau rouge) et pour que le pluriel soit aussi reconnu, on nous a demandé de saisir comme suit : <br class="autobr" /> Perruche à bandeau rouge/,perruche à bandeau rouge?,i<br class="autobr" /> (sans espace entre les 2)</p> <p>- Termes non animaliers : mot ou groupe de mot, singulier/,pluriel?,i</p> <p>Vraiment merci de votre aide, car nous souhaitons vraiment sortir notre site avec SPIP, même si nous ne le connaissons trés peu, on veut s'accrocher !!<br class="autobr" /> Si vous souhaitez m'appeler, n'hésitez pas, je vous donnerai mon tel.</p> Un glossaire interne pour vos sites 2010-03-28T14:06:20Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment428330 2010-03-28T14:06:20Z <p>Pour insérer du code (pas trop long...) ici, il faut utiliser les balises <cadre> et </cadre>. L'erreur est provoquée par un mot particulier du glossaire... Y en a-t-il beaucoup? quels sont ces mots?</p> Un glossaire interne pour vos sites 2010-03-27T06:26:06Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment428261 2010-03-27T06:26:06Z <p>Bonjour. notre site a été commencé par une personne pro connaissant SPIP mais qui n'est plus là. Nous continuons entre débutants de SPIP, parce qu'il est trop génial.<br class="autobr" /> Nous avons un message d'erreur qui apparait tant sur le site privé que public, après avoir vidé les caches :</p> <p><i>Warning: preg_replace_callback() [function.preg-replace-callback]: No ending delimiter ',' found in /homez.38/solidari/www/tmp/couteau-suisse/mes_fonctions.php on line 556</i></p> <p>Nous avons regardé et si on ne se trompe pas, cela viendrait du code suivant :</p> <p>// a chaque mot reconnu, on pose une balise temporaire cryptee <br class="autobr" /> return trim(preg_replace_callback(",(?<=\W)(?:$mots)(?=\W),i", " glossaire_echappe_mot_callback ", " $texte ", $limit)); <br class="autobr" /> </p> <p>Notre version de SPIP installée est : 2.0.7 . <br class="autobr" /> Il est possible que la personne "pro" ait"touché" aux codes, nous n'en savons rien.<br class="autobr" /> Pourriez vous nous aider ? Ce serait vraiment super sympa, car notre site devrait bientôt être mis en ligne ( on espère!), mais pas tant que ce message apparaît et des fois 15 fois en haut de page.</p> <p>Merci +++++</p> <p>PJ : copie intégrale du code du fichier mes_ fonctions.php qui se trouve dans /www/tmp/couteau-suisse, -> <a rel='nofollow'>codes</a></p> Un glossaire interne pour vos sites 2010-03-25T06:10:51Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment428161 2010-03-25T06:10:51Z <p>Bonjour,<br class="autobr" /> J'utilise ce plugin qui me rend bien des services et notamment l'affichage des mots-clés avec la liste alphabétique ! Un grand merci !<br class="autobr" /> J'aurais voulu savoir s'il était possible d'afficher l'ensemble des mots-clés par ordre alphabétique (et avec pagination) lorsqu'on arrive sur la page glossaire.html puis seulement les mots-clés qui commence par la lettre concernée lorsqu'on clique sur une lettre de la liste.<br class="autobr" /> J'ai un peu cherché mais je débute et là je sèche ...<br class="autobr" /> Merci.</p> Un glossaire interne pour vos sites 2010-03-10T13:27:24Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment427428 2010-03-10T13:27:24Z <p>Salut</p> <p>Est ce que tu sais combien de capacités demande ton pluging et si avec 4 groupes de mots avec pour l'instant actuellement en tout 2000 mots (pour les 4 groupes) je peux utiliser ton pluging car je risque d'avoir au moins des milliers de milliers de mots.</p> <p>est ce qu'il faut changer un paramètre sous apache, spip ....</p> <p>Merci d'avance</p> Un glossaire interne pour vos sites 2010-03-09T18:47:07Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment427388 2010-03-09T18:47:07Z <p>Il y a une lame “SPIP et le cache” qui permet de modifier ces réglages par défaut (lorsqu'il n'y a pas de balise #CACHE dans les squelette).</p> <p>Les pages sont lentes car ton serveur est peut-être mutualisé avec d'autres sites... Je crois qu'en ajoutant le paramètre “&var_profile=oui” à ton URL, SPIP affiche la vitesse des boucles et des accès à la BDD. Dans les logs de SPIP (tmp/*.log), il y a aussi je crois le temps de compilation des différents squelettes.</p> Un glossaire interne pour vos sites 2010-03-09T11:50:43Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment427362 2010-03-09T11:50:43Z <p>cela se règle où les paramètres par défaut de spip.</p> <p>Actuellement j'ai comme pluging, un squelette en ajout suivi de pluguing pour le glossaire interne, cicas, snippets)</p> <p>Voila</p> Un glossaire interne pour vos sites 2010-03-09T10:59:24Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment427355 2010-03-09T10:59:24Z <p>Tout dépend du nombre de mots-clés présents dans la base. Il est possible en effet que cet outil (Glossaire interne) prenne certaines ressources serveur au moment du calcul de la page, avant la mise en cache (une fois par jour, selon les réglages par défaut de SPIP).</p> <p>As-tu de nombreux outils activés ? Certains ne prennent aucune ressource. Par précaution, il vaut mieux activer juste ce qui est nécessaire...</p> Un glossaire interne pour vos sites 2010-03-09T08:39:34Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment427342 2010-03-09T08:39:34Z <p>Est ce que ce pluging prend beaucoup de ressources sous spip ? Car je trouve que quand je cherche à lire un article, il rame beaucoup ?</p> Un glossaire interne pour vos sites 2010-02-24T15:31:24Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment426884 2010-02-24T15:31:24Z <p>$id=#ID_GROUPE : utiliser des variables sous SPIP, c'est avec #SET et #GET. Il me semble t'avoir déjà proposé la traduction de ton code php...</p> <p>Sinon, pour ton système de pagination, il faut utiliser un tableau et passer le bon critère dans la boucle. Je viens donc de modifier l'exemple ci-dessus (squelette html) en le rendant un peu plus “moderne” et “paginable”. Je te laisse l'adapter à tes besoins.</p> Un glossaire interne pour vos sites 2010-02-24T14:37:08Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment426873 2010-02-24T14:37:08Z <p>Merci et en ce qui concerne la pagination, car mon problème est que cela affiche des n° de pagination mais pour l'ensemble des mots du groupe sans prendre en compte les lettres et le groupe que l'on a choisi.</p> <p>Comment à la place de mettre dans un squelette <code><span style="color: #000000"> <span style="color: #0000BB"><?php $id</span><span style="color: #007700">=</span><span style="color: #FF8000">#ID_GROUPE</span><span style="color: #0000BB">?></span> </span> </code> je peux écrire ?</p> <p>Merci d'avance</p> Un glossaire interne pour vos sites 2010-02-24T14:17:06Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment426870 2010-02-24T14:17:06Z <p>Il faut éviter de mettre du php dans un squelette, il n'y a aucune garantie contre les erreurs de syntaxe...</p> <p>Ta dernière boucle doit être :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re11"><BOUCLE_groupes</span><span class="re12">(GROUPES_MOTS)</span><span class="re13"><span class="re41">{par titre}</span></span><span class="re10">></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#ID_GROUPE</span><span class="re50">|==</span><span class="re40">{<span class="re1">#ENV</span>{id}}</span><span class="re50">|non</span><span class="re4">)</span> <li><a href="<span class="re4">[</span><span class="re4">(</span><span class="re1">#URL_PAGE</span><span class="re40">{glossaire2}</span><span class="re50">|parametre_url</span><span class="re40">{Glossaire,<span class="re1">#TITRE</span>}</span><span class="re50">|parametre_url</span><span class="re40">{id,<span class="re1">#ID_GROUPE</span>}</span><span class="re4">)</span><span class="re4">]</span>"><span class="re1">#TITRE</span></a></li> <span class="re4">]</span> <span class="re15"></BOUCLE_groupes></span></code></pre></div> Un glossaire interne pour vos sites 2010-02-24T12:27:39Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment426864 2010-02-24T12:27:39Z <p>Voici mon code :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR"> <head> <title>[[(#NOM_SITE_SPIP|textebrut)]] : [(#TITRE|supprimer_numero|textebrut)]</title> <INCLURE{fond=page}{fond=styles}{lang}{id_mot}> </head> <body dir="#LANG_DIR" class="#LANG mot groupe#ID_GROUPE mot#ID_MOT"> <div id="page"> <!-- ***************************************************************** Bandeau, titre du site et menu langue Header and main menu (top and right) ************************************************************* --> <INCLURE{fond=inc/inc-bandeau}{lang}{id_mot}> <!-- ***************************************************************** Contenu principal (centre) Main content (center) ************************************************************* --> <div id="bloc-contenu"> [(#REM) Construction d'une chaine comportant toutes les premieres lettres de tous les mots du glossaire (ex : "AABBBFGG") ] <BOUCLE_listalpha(MOTS){type=#ENV{Glossaire}}> [(#SET{lettres,[(#GET{lettres}|concat{[(#TITRE|premieres_lettres)]})]})] [(#SET{ok#ID_MOT,[(#TITRE|mot_affichable{#ENV{lettre,A}})]})] </BOUCLE_listalpha> [(#REM) Affichage de la barre de navigation ] <center> <h1>#ENV{Glossaire}</h1> </center> <br/> <div class="barre_alphabetique"> Index alphab&eacute;tique : [(#GET{lettres}|alphabet_cliquable{#ENV{lettre,A}})] </div><hr/> <div class="liste_glossaire"> <B_Glossaire2> #ANCRE_PAGINATION <dl> <BOUCLE_Glossaire2(MOTS){type=#ENV{Glossaire}} {par titre} {pagination}> [(#GET{ok#ID_MOT}|?{' ',''}) <dt class="#EDIT{titre}"><a href="#URL_MOT">[(#TITRE|replace{\s*/\s*,' / '})][ ((#DESCRIPTIF))]</a></dt> <dd class="#EDIT{texte}">#TEXTE</dd> ] </BOUCLE_Glossaire2> </dl> #PAGINATION </B_Glossaire2> </div> </div><!-- bloc-contenu --> <!-- ***************************************************************** Menus contextuels (droite) Contextual menus (right) ************************************************************* --> <div id="menu-rubriques"> <h2 class="structure"><:autres_listes_indexation:></h2> <div class="menu"> <ul> <li><b><:autres_listes_indexation:></b> <ul> <BOUCLE_groupes(GROUPES_MOTS){par titre}> <?php if(#ID_GROUPE!=#ENV{id}) echo '<li><a href="spip.php?page=glossaire2&Glossaire=#TITRE&id=#ID_GROUPE">#TITRE</a></li>'; ?> </BOUCLE_groupes> </ul> </li> </ul> </div><!-- menu --> </div><!-- encart --> <INCLURE{fond=inc/inc-menu-glossaire}{lang}{id_mot}> <INCLURE{fond=inc/inc-bas}{lang}{id_mot}> </div> <!-- page --> </body> </html></code></pre></div> <p>si on peut m'aider</p> Un glossaire interne pour vos sites 2010-02-24T12:06:39Z https://contrib.spip.net/Un-glossaire-interne-pour-vos-sites#comment426863 2010-02-24T12:06:39Z <p>On ne comprend pas du tout ton message... Il faut mettre tes exemples entre les balises <cadre> et </cadre>.</p>