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
Discussions par date d’activité
3 discussions
Encore merci pour ce plugin...
Ce plugin empêche le plugin Thickbox v1 de fonctionner...
test effectué avec la version 1.9.1 (7385) de Spip ...
une solution ?
Non, il va falloir voir ce qui coince, mais effectivement, je viens de faire le test et il y a une incompatibilité d’humeur entre les deux plugins.
Hum, je ne vois pas l’incompatibilité.
Désolé, dés que je vois, j’essaye de corriger.
c’est probablement résolu aujourd’hui, non ?
Non ... parceque chez moi, je ne trouve pas cette incompatibilité ... et je suis donc mal à même de la résoudre
en local ça fonctionne en effet... mais c’est en ligne que je rencontre des incompatibilités : mots croisés semble empêcher de fonctionner Thickbox v1 et/ou le plugin Pagination_ahah. Peut-être est-ce lié à notre config... dès que je peux j’essaie ailleurs.
Répondre à ce message
Bonjour,
Installation OK, cache vidé mais ce plugin provoque une page blanche dans l’espace privé.
J’ai oublié quelque chose ?
Config pour info : plugins : FCK, Form, Acces Restreint, Jquery ; Hebergeur : Free ; Spip : 1.9.1 (7339). Nav : IE6 & Mozilla
Merci
Correction à faire au fichier « mot_croises_header_prive.php ». Il faut fermer la balise « script ».
Houps ....
je corrige.
Je pense que je vais désactiver ca dans l’espace privé, ca à l’air de faire planter ff.
Merci,
en fait, la balise se ferme d’elle même (présence d’un / final, comme dans
<br />
) mais il semble que ca pose problème.Cela sera coorigé sur la future version
Toujours un pb ?
Essayez eventuellement avec les autres plugins désactivés.
Même chose pour mot_croises_insert_head.php, il faut fermer par
</script>
:Bonjour,
Avec spip 1.9.1. affichage page blanche, espace privé inaccessible. Obligation de supprimer le plugin en ftp.
Cordialement
Répondre à ce message
Depuis peu, une nouvelle syntaxe a été implémentée dans ce plugin :
De plus, cette présente contrib vient d’être intégrée dans le plugin ’jeux’
La syntaxe est quasiment la même.
Je fais appel à tous les testeurs ;-)
Voir : Des jeux dans vos articles !
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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 : |