Avertissement de l’auteur : ce plugin n’est plus maintenu à jour. La fonctionalité est désormais intégrée au plugin jeux.
Fonctionnalités
Ce plugin propose :
- de mettre en ligne des mots croisés, avec leurs définitions.
- de proposer aux utilisateurs de les remplir et de les vérifier.
- d’afficher le nombre d’erreurs et la solution.
Historique et Licence
Ce plugin est une adaptation/mise à jour de la contrib Des mots croisés avec SPIP par son auteur originale Maïeul Rouquette. Comme cette dernière, il est distribué sur Licence GPL.
Liste des principales nouveautés :
- installation simplifiée : plus besoin de toucher au squelette pour s’en servir.
- support du multi-linguisme
- un script javascript est proposé permettant
- prévisualisation de la grille dans l’espace privé.
- un filtre pas_de_grille est créé, permettant d’éviter d’afficher grille pour certain format de fichier (rss par exemple).
- la balise #INTRODUCTION n’affiche plus la solution de la grille.
- amélioration de la syntaxe de rédaction de la grille. Plus besoin de réfléchir à combien d’espaces on met après/avant
<grille>,<vertical>,<horizontal>ect
. De même, on peut mettre des espaces dans les cellules du tableau.- optimisation du code.
Configuration requise
- Spip 1.9.1 ou Spip 1.9 + plugin « patch »
- Des squelettes intégrant la balise #INSERT_HEAD au bon endroit, c’est à dire entre les balises
<head>
et</head>
- Le plugin Jquery actif si l’on veux profiter du Javascript [1]. Vous pouvez le télécharger sur cette page
Installation
Téléchargez le fichier zip ci-joint, puis suivez la procédure d’installation des plugins
Mise à jour depuis l’ancienne version
Si vous aviez mis en place l’ancienne version de la contrib :
- Suivez la procédure décrite plus haut.
- Supprimez toute référence au filtre |grille dans vos squelettes
- Supprimez la feuille de style créée pour la gestion des grilles.
- Supprimez le code que vous aviez inséré dans mes_fonctions.php3 ou mes_fonctions.php
Rédigez vos mot-croisés
Ecrire
<grille>
puis composer votre grille comme un tableau Spip.Il ne faut mettre ni numéro de colonne, ni numéro de ligne, ni raccourcis du type
||xx|yy||
. Ni tout autre chose qu’un tableau spip (espaces et sauts de ligne exceptés)Pour représenter un noir, utiliser un astérisque « * ». Dans les autres cases, entrez les lettres des mots du mot-croisé. Cette grille apparaîtra telle que vous la remplissez si l’utilisateur choisit d’afficher la solution
Puis écrire
</grille>
Les définitions sont des simples listes numérotées à la Spip. Les définitions verticales devant être entourées par
<vertical>
et</vertical>
, les horizontales par<horizontal>
et<horizontal>
.Exemple :
<grille> |a|a|a| |b|*|g| |a|*|d| </grille> <horizontal> -#def 1 -#def 2 -#def 3 </horizontal> <vertical> -#def 1 -#def 2 -#def 3 </vertical>
Utilisation en ligne
L’utilisateur a le choix d’afficher ou non la solution en cochant la case prévue.
Si le navigateur dispose de Javascript, alors :
- Le remplissage de la grille est simplifié par la possibilité de se déplacer au clavier (flèche gauche, droite, haut et bas) pendant la saisie .
- De plus, lorsqu’on entre une lettre, le curseur se déplace automatiquement dans la case suivante sur le plan horizontal.
- Pour le remplissage vertical, un clic droit modifie ce déplacement automatique.
- Pour savoir le sens d’écriture, il suffit de regarder la flèche au survol du formulaire.Pour les toilemestres : traduire le rendu public
Vous aimeriez avoir des mots-croisés en russe, anglais, arabe ou autre et l’interface dans la bonne langue ?
Faites une copie du fichier motscroises_fr.php situé dans le dossier /lang du plugin vers le dossier lang de votre dossier de squelette [2]. Renommez le motscroises_xx.php, où xx est le code de langue. Puis modifiez à l’intérieur les chaînes de langues selon le besoin. Si des caractères sont situés entres deux @, gardez-les ainsi.
Vous êtes invités à m’envoyer ce fichier de langue, afin que je l’intègre dans le plugin pour les prochaines versions.
Régler la présentation de la grille
Le plugin est livré avec deux feuilles de style, situées à la racine du plugin :
- mots-croises.css
- mots-croises-prive.css
La première est destinée au rendu public de la grille.
La seconde au rendu dans l’interface privée.Il est possible de surcharger l’une ou l’autre (ou les deux) en créant un homonyme dans votre dossier squelettes [3].
Voici quelques informations utiles pour la personnalisation de vos css
- le tableau à remplir a pour classe « grille » et se situe dans un formulaire de classe « grille » (cette classe n’existait pas dans la version précédente)
- les définitions verticales appartiennent à un div de classe « vertical » et celles horizontales à un div de classe « horizontal »
- la grille de solution a pour classe « solution » et est incluse dans un div de class « solution »
- le coin supérieur gauche est une cellule de classe « coin »
- les cases noires sont de classe « noir ».
- il existe un label dans les cases à remplir, afin de permettre une meilleure accessibilité. Vous pouvez masquer ce label grâce à un code du type .grille labeldisplay:noneUn filtre direction_css est appliqué, permettant de présenter correctement la grille pour les langues s’écrivant de droite à gauche (voir la documentation.
Le filtre
|pas_de_grille
Il peut arriver que dans certain cas, nous ne souhaitons pas afficher la grille de mot-croisés. Le filtre
|pas_de_grille
appliqué à une balise résoud le problème.Les squelettes backend.html et backend-breves.html sont surchargés, afin d’appliquer le filtre |pas_de_grille.
Techniquement ça marche comment ?
Comme tout plugin, mot-croisés contient un fichier
plugin.xml
à la racine. Il contient notamment des appels aux fichiers :
mot_croises_options.php
. Ce fichier, qui à le même rôle que mes_options, contient deux fonctions :
introduction()
. C’est une « surcharge » du code appelé par spip pour calculer la balise #INTRODUCTION.pas_de_grille_introduction()
. Appelée par la fonction précédente, elle permet d’éviter d’avoir la solution qui apparait lorsque l’on se sert de #INTRODUCTION.mot_croises_fonctions.php
. Ce fichier, qui à le même rôle que mes_fonctions, contient la définition du filtre|pas_de_grille
, ainsi que celui du filtre|grille
, qui ne sert plus à rien, mais est gardé pour des raisons de compatibilité historique.Ce fichier
plugin.xml
utilise des pipelines.
insert_head
-> la fonction associée estmot_croises_insert_head()
définie dansmot_croises_insert_head.php
. Elle se charge d’ajouter les appels au css et au javascript dans les entêtes html de l’espace public (balise #INSERT_HEAD)header_prive
->la fonction associée estmot_croises_header_prive()
définie dansmot_croises_header_prive.php
. Elle se charge d’ajouter l’appel au css dans les entêtes html de l’espace privépre_propre
->la fonction associée estmot_croises_pre_propre()
définie dansmot_croises_pre_propre.php
>la fonction associée estmot_croises_avant_propre()
définie dansmot_croises_avant_prive.propre
. Appelée, comme son nom l’indique, avant la fonctionpropre()
, [4], c’est la base de tout le système de mot-croisés. Elle va appeler plusieurs fonctions :
calcul_tableau_grille()
définie dansinc/calculer_grille.php
. Se charge de coonvertir le code du tableau que vous avez rentré en tableau phpcomparaison()
définie dansinc/verification.php
, se charge de comparer les réponses rentrés par l’utilisateurs avec la solution. En gros, calcule le nombre d’erreurs.affichage_grille()
définie dansinc/affichage_grille.php
. Calcule la grille à remplir si le second argument est faux, la grille de solution dans le cas contraire. Le premier argument a été calculé aveccalcul_tableau_grille()
. Cette fonctionaffichage_grille() fait elle même appel à une fonction<code>lettre()
, pour afficher les numéros de ligne en lettres.liste_spip()
. Chargée de convertir les listes « à la Spip » en liste HTML.Remerciement
Aux zoneurs qui m’ont aidé dans l’adaptation en plugin.
A Piif qui a fournit une bonne partie du javascript, à Renato qui m’a aidé.
A Linstit qui a testé le plugin et participé à la rédaction et a la correction de fôte d’hortograf de la documentation.
Aux bêta-testeurs.Et à d’autres que j’ai dû oublier ...
Evolution possible
- Plusieurs grilles sur une même page ?
- Gestions des résultats : regarder l’évolution des performances d’un utilisateur avec le temps ?
En attendant, sachez que le plugin est developpé sur la Zone.
Le plugin mot-croisés !
Ceci est une archive périmée mais qui reste intéressante, parfois autant pour l’article que les commentaires associés.
Notes
[1] pour les futures versions de spip, la fonctionnalité de ce plugin sera livrée « en standard », mais n’anticipons pas.
[2] ou tout autre dossier lang du path, voir : la documentation.
[3] ou à n’importe quel endroit où Spip cherche ses squelettes,selon l’ordre de priorité
[4] fonction qui se charge, grosso-modo, de convertir les raccourcis spip en code html
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |