«Bonbon !», un cahier de texte pour SPIP

«Bonbon !» est un cahier de texte qui s’installe à coté de SPIP (et notamment SPIP Eva) dont il utilise les ressources (articles, mots-clés, rubriques).

Nota SPIP-Contrib: la ligne rédactionnelle actuelle de SPIP-Contrib est clairement tournée vers les versions de SPIP post 1.9, et les plugins pour les mises à jour. La présente contribution ne répond pas à ces critères.

Cependant, elle est publiée comme témoignage intéressant de l’usage scolaire de SPIP, et surtout comme amorce et support (forum) de la documentation des travaux de développement annoncés par l’auteur de la version plugin pour SPIP 1.9.

m-a-j. du 4/02/08: Ceux qui lisent assidûment les commentaires de cette contrib’ savent qu’une version plugin de «Bonbon !» existe pour SPIP 1.9.2(c ou d). Pour savoir comment la trouver, l’installer, l’utiliser, reportez-vous aux commentaires en attendant des contribs’ plus détaillées : Commentaires de cette contrib’. N’hésitez pas à compléter ces commentaires de questions... ou de réponses !

Notez aussi, que ceux qui mettent à jour «Bonbon !» en plugin à partir d’une version téléchargée avant le 4 férvrier 2008 doivent exécuter http://votresite/spip.php?page=cahier-de-texte-installer-mots-cles pour mettre à jour les données. Sinon, l’affichage ne sera pas correct.

«Bonbon !»

«Bonbon !» est un cahier de texte, facile à installer pour les enseignants. Il s’ajoute simplement aux sites qui hébergent déjà SPIP.

«Bonbon !» est sous la double licence GPL et Bonbonware (la licence Bonbonware est une licence GPL+«si vous aimez, envoyez moi des bonbons», qui s’inspire évidement de la licence de «Chocolat», un autre cahier de texte, qui m’a servi de modèle).

Fonctions de «Bonbon !»

  • Il peut s’installer sur tout site SPIP : Il est conçu pour s’intégrer à la charte graphique de SPIP-Eva (2.x), mais il peut très bien s’installer sur n’importe quel SPIP (et il sera quand même joli!...).
«Bonbon !» installé sur un Spip-Eva
Il en reprend les couleurs (CSS)
«Bonbon !» installé sans Spip-Eva
Il adopte ses propres couleurs

Voir aussi le site de démonstration de «Bonbon !».

  • Il possède un accès public :
    • simplifié, qui permet d’accéder en deux clics aux devoirs d’une classe, ou au contenu du cahier de texte par classe ou par matières
L’accès public à «Bonbon !»
    • complet, qui permet de faire des requêtes sur le contenu (avec comme paramètres: les dates, les classes, les groupes, les matières, la quantité de réponses, de n’afficher que les devoirs, que les séances ou les deux).
Les requêtes «avancées» de «Bonbon !»
  • Il possède un accès «enseignants» :
    • qui permet de saisir des séances (pour une classe ou un regroupement de classe, ou un groupe de classe). À chaque séance, on peut associer un ou plusieurs devoirs (à des dates différentes). La saisie se fait grâce à fckeditor qui permet de faire du WYSIWYG («tel écran tel écrit») et de copier-coller depuis MS-Word. Les raccourcis typographiques de SPIP restent tout de même valables ! (essayez sur le site de démonstration avec le login: dudu et mot de passe: demobonbon).
    • qui permet de voir ses séances, ou celles d’autres enseignants (voir demo)
L’accès enseignant de «Bonbon !»

Installation de «Bonbon !»

«Bonbon !» v1.0 fonctionne avec SPIP, il faut donc avoir un SPIP 1.8.x déjà installé.

Aujourd’hui, «Bonbon !» est prévu pour fonctionner avec SPIP 1.8.x, dès que j’aurai un SPIP 1.9.x sous la main, je ferais les adaptations nécessaires (et peut-être même un plugin si je comprends comment ça fonctionne).

Archive Zip de « Bonbon ! » v1.0 (avec FCKeditor)
« Bonbon ! » est un cahier de texte pour Spip.

Pour installer «Bonbon !», il suffit de dézipper le document joint à cet article. Les fichiers contenus à la racine du répertoire Fichiers-Bonbon sont placés à la racine de votre site (des fichiers .php3), le répertoire fckeditor aussi (sauf s’il existe déjà, «Bonbon !» saura l’utiliser). Les fichiers contenus dans le sous-répertoire squelettes (des fichiers .html et .css) doivent être placés dans le répertoire squelettes de votre site.

Archive Zip de « Bonbon ! » v1.0 sans FCKeditor
« Bonbon ! » est un cahier de texte pour Spip.
(cette archive n’inclut pas FCKeditor)

Pour terminer l’installation, il faut créer la rubrique qui contiendra les fiches du cahier de texte, ainsi que les mots-clés qui servent à son fonctionnement. Il y a un fichier-squelette dans «Bonbon !» qui fait cela, on y accède par:

http://votre_site_sous_SPIP/cahier-de-texte-installer-mots-cles.php3

Attention !: avant d’accéder à cette page, veillez à en modifier le comportement de façon à ce qu’il corresponde à vos besoins:

Ouvrez le fichier cahier-de-texte-installer-mots-cles.html que vous avez copié dans le répertoire squelettes de votre site, puis vers la ligne 30 de ce fichier, vous trouvez ceci:

//à adapter selon vos besoins:

	$classes = array (
	"6A", "6B", "6C", "6D", "6E", "6F", "6G", "6H", "6I", "6J", "6K", "6L", "5A", "5B", "5C", "5D", "5E", "5F", "5G", "5H", "5I", "5J", "5K", "5L", "4A", "4B", "4C", "4D", "4E", "4F", "4G", "4H", "4I", "4J", "4K", "4L", "3A", "3B", "3C", "3D", "3E", "3F", "3G", "3H", "3I", "3J", "3K", "3L"
	);
	$groupes = array (
	"groupe A", "groupe B",
	);
	$matieres = array (
	"Allemand LV1","Allemand LV2","Anglais LV1","Anglais LV2","Arts Plastiques","E.P.S.","Education musicale","Espagnol LV2","Histoire Géographie","Latin","Grec","Français","Mathématiques","Physique Chimie","Sciences de la vie et de la Terre","Technologie","Vie de classe","Itinéraire de découverte",
	);
//fin de la partie à adapter

Selon le type d’établissement, vous aurez à changer le nom des classes, les matières, et le nom des groupes. L’exemple par défaut est un —gros— collège dont les classes ont des noms de lettres (Ex.: 6A).

Veillez à vérifier que vos noms de classes, de groupes et de matières sont bien entourés par des guillemets droits ", et suivis d’une virgule.

Une fois ces modifications faites et sauvées, vous pouvez suivre les instructions données là: http://votre_site_sous_SPIP/cahier-de-texte-installer-mots-cles.php3 (n’oubliez pas de renommer cahier-de-texte-rubrique.html comme c’est écrit à la fin de la page)...

Il manque encore un petit morceau: «CalendarPopup». Il s’agit d’un outil en javascript qui affiche un joli calendrier. Comme «Bonbon !» l’utilise, et qu’il n’est pas re-distribuable, vous devez le télécharger ici: http://www.mattkruse.com/javascript... et le copier dans votre répertoire squelettes. En attendant de trouver une solution vraiment Libre.

Voilà, «Bonbon !» est installé et prêt à l’emploi.

Utilisation de «Bonbon !»

Vous avez accès à plusieurs pages:
-  cahier-de-texte-accueil.php3 qui est la page d’accueil du cahier de texte (on arrive sur la même page d’accueil en accédant à la rubrique du cahier de texte). Elle contient un accès public et un accès privé, comme expliqué plus haut. De là, on accède à toutes les autres pages du cahier de texte.
-  cahier-de-texte-saisie.php3 permet aux utilisateurs enregistrés dans SPIP, c’est-à-dire tous les rédacteurs, de saisir des fiches et donc de compéter le cahier de texte. Ils doivent d’abord choisir une ou plusieurs classes (regroupements de classes), puis le groupe, puis la matière. Ils peuvent ensuite compléter le descriptif de la séance, celui des devoirs éventuels (on peut rajouter des devoirs pour d’autres dates).
-  cahier-de-texte-affichage.php3 affiche le contenu du cahier de texte. Elle est appelée par la page d’accueil. Cette page n’affiche pas le contenu de la même façon si on demande de n’afficher que les devoirs:

L’affichage des devoirs dans «Bonbon !»

que les séances:

L’affichage des séances dans «Bonbon !»

Ou tout !

L’affichage des devoirs et des séances dans «Bonbon !»

Intégration dans SPIP de «Bonbon !»

Toutes les fiches saisies dans le cahier de texte seront mises dans la rubrique «Cahier de texte» créée à l’installation. Elles seront rangées dans des sous-rubriques correspondant à l’année scolaire pendant laquelle elles ont été écrites («Bonbon !» se débrouille tout seul pour créer ces sous rubriques quand l’année scolaire change).

«Bonbon !» crée des articles: chaque séance saisie est enregistrée comme un article dans SPIP. Son titre est du genre: «Le DATE, en MATIÈRE avec les CLASSE (GROUPE) :». Le texte de l’article contient la description saisie par l’enseignant. Le PS contient des liens vers les devoirs. Ex.: «Devoir n°1 pour le 26/06/2007». La date de l’article est la date de la séance définie par l’enseignant. De plus, ces articles sont étiquetés par les mots-clés suivants: «Description de séance», le mot-clé de la matière et les mots-clés des classes et du groupe.

Les Mots-clés des descriptions de séances

Chaque devoir, pour une date donnée, est un article aussi (toujours placé dans la même rubrique). Son titre est du genre: «Devoir à faire pour le DATE, par les CLASSE (GROUPE) en MATIÈRE :». Le texte contient le descriptif des devoirs saisis par l’enseignant. Le PS contient un lien vers l’article de la séance pendant laquelle il a été donné. La date de l’article est la date pour laquelle le devoir est à faire (date future dans certains cas). De plus, ces articles des devoirs sont étiquetés par les mots-clés suivants: «Devoirs à faire», le mot-clé de la matière et les mots-clés des classes et du groupe.

Les Mots-clés des devoirs

Le fait d’avoir choisi de faire des articles différents pour les devoirs et les descriptions de séances permet au cahier de texte de faire des recherches séparément dans les devoirs et le reste (utile pour les élèves qui veulent savoir ce qu’ils ont à faire et iront à partir de la page d’accueil choisir leur classe puis cliquer sur «Consulter les devoirs»). Les mots-clés, permettent aussi les recherches multicritères.

Comme les fiches du cahier de texte sont des articles, vous les retrouvez dans la partie privée de SPIP (dans la rubrique cahier de texte).

Les fiches du cahier de texte dans la partie privée
Les fiches enregistrées par «Bonbon !» sont accessibles depuis la partie privée de Spip

De même, les recherches faites sur votre site sont aussi faites dans le cahier de texte.

«Bonbon !» se fond parfaitement dans SPIP, ce ne sont que quelques squelettes un peu améliorés.

Principe de fonctionnement de «Bonbon !»

«Bonbon !» est essentiellement un nouvel ensemble de squelettes pour SPIP. Par rapport aux squelettes classiques, il ajoute une interface de saisie, qui permet d’écrire des articles sans passer par l’interface privée. C’est la raison pour laquelle, dans le fichier squelette cahier-de-texte-saisie.php3, on trouve surtout du PHP qui gère cette saisie.

Ce fichier contient donc des formulaires pour saisir l’article et choisir ses mots-clés. Le tout est géré par des variables passées en GET et en POST et traitées en PHP. Il y a trois étapes:

  1. la saisie des infos (boîtes de sélections et zones de textes gérées par fckeditor)
  2. la vérification des infos (avec éventuellement retour à la saisie)
  3. validation définitive des infos qui conduisent au placement des articles dans la base de données de SPIP et l’association des mots-clés qui conviennent.

Le squelette cahier-de-texte-affichage.html contient surtout des boucles et des balises (un tout petit peu de PHP pour contourner des manques de SPIP 1.8.x). Ce squelette prend une série de paramètres en GET qui permet de sélectionner ce qui va s’afficher:

  • classe= le nom d’une classe (attention il faut qu’il y ait identité avec le mot clé de la classe)
  • groupe= le nom du groupe (attention il faut qu’il y ait identité avec le mot clé du groupe)
  • matiere= le nom de la matière (attention il faut qu’il y ait identité avec le mot clé de la matière)
  • prof= l’id_auteur d’un auteur (un professeur)
  • date_debut= début de la période considérée (sinon c’est depuis le début de l’année en cours)
  • date_debut= fin de la période considérée (sinon c’est jusqu’en 9999, ce qui devrait suffire jusqu’au bug de l’an 10000). Les dates sont au format YYYY-MM-DD
  • seances_seules= si cet argument est donné alors les devoirs ne s’affichent pas
  • devoirs_seuls= si cet argument est donné, alors seuls les devoirs s’affichent

Si les deux arguments sont donnés (seances_seules et devoirs_seuls rien ne s’affiche !)

  • annee_scolaire= définit quelle année scolaire afficher (sous le format XXXX%2FYYYY, par exemple 2006%2F2007 [1]). Si ce n’est pas défini, c’est l’année scolaire la plus récente qui s’affiche
  • nb= nombre maxi d’entrées listées (sinon on liste les 100000000000000 premières entrées...)
  • apartir= entrée à partir de laquelle l’affichage commence.

Une requête peut donc être:

http://votre_site_sous_SPIP/cahier-de-texte-affichage.php3?nb=20&classe=4B&groupe=groupe+A&matiere=Latin&prof=2&date_debut=&date_fin=2007-07-03&devoirs_seuls=oui

qui affiche les 20 derniers devoirs à faire jusqu’au 3 juillet 2007 par les 4B en Latin, donnés par le professeur dont l’id_auteur est 2 (Professeur Duschmol)...

Le squelette cahier-de-texte-accueil.html est une interface qui permet de formuler les requêtes envoyées à cahier-de-texte-affichage.html. cahier-de-texte-accueil.html contient une noisette incluse (cahier-de-texte-selection.html) qui permet de faire des requêtes complexes sur le cahier de texte (on retrouve aussi cette noisette dans cahier-de-texte-affichage.html).

Problèmes connus, TODO-list

-  Premier gros problème: je suis un très mauvais programmeur, donc le code source est cochon au possible... Il est donc prévu de rendre ça plus propre... Surtout qu’il doit traîner des tas de bugs !
-  Second gros problème, lié au premier: ce n’est pas prévu pour SPIP 1.9... Je vais m’y atteler dans l’été.
-  Troisième gros problème : la gestion des documents joints est non fonctionnelle : je n’ai pas compris comment SPIP intégrait les docs joints, et n’ai pas pu en reprendre les fonctions... Pour un cahier de texte, c’est vraiment un souci. Ce sera résolu, je l’espère avec le passage en 1.9

Un peu d’aide serait la bienvenue pour les développements futurs... Dès que j’aurai compris comment on fait pour mettre un projet sur la zone, et comment on utilise SVN, le développement sera plus facilement collaboratif.

Contributions externes et remerciements

-  Merci à Pierre Lemaître pour son cahier de texte Chocolat dont j’ai repris de bonnes idées d’interface.
-  Merci aux auteurs de fckeditor (livré avec «Bonbon !»).
-  Merci aux auteurs de SPIP-Eva dont j’ai repris le principe de mise en forme.
-  Merci à Matt Kruse pour CalendarPopup.

Footnotes

[1%2F est un slash (/) encodé pour aller dans l’URL.

Discussion

51 discussions

  • Merci pour ce très beau travail.
    Je suis professeur et je travaille sur la MAJ du site du collège en SPIP et ce qui est fait est très intéressant.
    Toutefois, comme je débute en SPIP, je ne serais pas contre un Plugin à la place. C’est plus souple à installer.
    Alors, espérons qu’il arrivera bientot !

    Bon courage !

    Reply to this message

Add a comment

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

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

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom