D’après la documentation officielle, le #LOGIN_PUBLIC a été mis en place pour les forums sur abonnement. Depuis, cette option a souvent été assimilée à un moyen de restreindre l’accès à certaines parties “publiques” du contenu d’un site.
L’utilisation qui sera présentée ici est totalement différente et a eu comme point de départ la possibilité d’offrir des services à des utilisateurs authentifiés. C’est vrai, le fait de s’enregistrer permet au webmestre de suivre un peu ce qui se passe, mais il y a aussi l’autre aspect qui donne la possibilité de conserver certaines données dans les tables, restituées à leur auteur, sur demande.
Le test d’authentification est très bien expliqué dans la section formulaires de la documentation de SPIP, en particulier pour le test sur la variable $auteur_session.
Voyons un exemple concret. Dans mon cas, il s’agir d’un site universitaire qui offre des outils en complément du polycopié et des notes de cours. Un étudiant authentifié peut annoter les pages du cours (des articles au sens de SPIP), il peut se constituer son espace personnel avec des articles favoris, lui permettant d’accéder dès sa connexion à une sélection de quelques articles sur les centaines qui sont disponibles. C’est une troisième option qui fera l’objet du tutorial.
Nous voulons mettre en place un système qui permet aux étudiants d’accéder à une série de sujets d’examens, dits de rédaction courte.
L’ensemble des sujets appartiennent à une rubrique spéciale, disons la no 13. Le sujet est dans le titre, l’énoncé dans le texte et la réponse attendue dans le chapo. Les liens sont accessibles sur l’espace personnel du visiteur. Une boucle (ARTICLES)(id_rubrique=13) donne la liste les sujets, avec un lien répondre qui n’est que le forum attaché à l’article. Vous l’avez compris, c’est le fonctionnement classique du forum sur abonnement, détourné pour simuler un examen.
Sur cette page de contrôle, une requête SQL teste en permanence dans la table spip_forum, l’existence de message posté par l’auteur_session et correspondant à l’article (sujet) en cours. S’il existe une réponse, le texte vient s’afficher sous l’énoncé et ce pour chaque sujet. Si les mêmes conditions sont réunies, un lien “Voir la réponse” permet d’accéder à la réponse type dans une fenêtre popup.
Ces pages contiennent un peu de SPIP, aussi du php et du SQL. En voici un extrait :
((<BOUCLE_cc(ARTICLES){id_rubrique=13}{id_article!=23}{par num surtitre}>
<div style="float:left;width:auto;"><span class="textegras"><a name="art#ID_ARTICLE">#TITRE</a></span><a href="forum.php3?#PARAMETRES_FORUM&choix_div=control" class="admin">
<img src="ecrire/img_pack/icon_latest_reply.gif" width="24" height="18" align="absmiddle" border="0" hspace ="3">Répondre</a></div>
<div style="float:right;clear:right;width:20px;"><a href="#Top"><img src="biopics/haut.png" border="0" title="Haut de la page"></a></div>
<div class="petitexte" style="clear:both">[(#TEXTE)]</div>
<?
// requête SQL : extrait la ligne de la table spip_forum correspondant à l utilisateur connecté
// et à l article de la boucle
$query = "SELECT * FROM spip_forum WHERE id_article = '#ID_ARTICLE' AND auteur = '$nom_user'";
// exécute la requête
$result = spip_query($query);
if (spip_num_rows($result) != 0) {
?>
<a href="response.php3id_article=#ID_ARTICLE" class="texte">Voir la correction</a>
<? while ($row=spip_fetch_array($result)){
$texte=$row[texte];
$auteur=$row[auteur];
$statut=$row[statut];
print ("<div class=\"notes\"><font color=\"red\"><li><strong>Ma réponse : </strong>$texte</li></font></div><br>");
}
}
?>
<hr size=1>
</BOUCLE_cc>))
On se retrouve donc avec des contributions des étudiants qui répondent à des sujets rédactionnels, qui peuvent comparer leur réponse avec celle qui est attendue.
Vous pouvez voir l’exemple du fonctionnement sur la page de mon site,
en choisissant l’option Contrôle continu. Deux améliorations ont été apportées depuis :
- Pour chaque sujet il y a des mots-clés définis par l’examinateur, dont la présence est recherchée dans le texte de la réponse. S’ils figurent ils sont surlignés. Sinon, ils sont listés comme absents.
- L’examinateur, qui a des droits d’administrateur, peut répondre au forum de l’article (id_parent). De cette façon, l’étudiant peut disposer de remarques personnalisées sur sa réponse.
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 : |