Les multiples possibilités du #LOGIN_PUBLIC

All contributions published for previous SPIP versions

Comment utiliser le #LOGIN_PUBLIC pour offrir des options aux utilisateurs authentifiés

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&eacute;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.

Portfolio

updated on 21 December 2004

Discussion

4 discussions

  • Il y a un souci sur le lien donné dans l’article.
    http://avtomati.net/

    Reply to this message

  • Jonathan Sombers

    Que c’est bien que j’ai pu trouver un site qui est entièrement dédiée à cette plateforme. J’ai lu essays sur tout le web pour moi d’être en mesure de terminer mon mémoire de recherche sur différentes plates-formes web de programmation. Je sais que ce site sera utile pour mes études.

    Reply to this message

  • 3
    PELAGIE

    Bonjour,

    Je développe en ce moment avec SPIP mais je rencontre des difficultés pour faire exactement ce que je veux.

    En effet je souhaite que le lien “s’inscrire” qui se trouve sur la page privée et qui permet de rentrer son pseudo et son Email afin de recevoir ses codes de connexion puisse non pas faire ce qui précède mais nous redirige vers le formulaire d’inscription d’un nouvel auteur et permettre au nouveau rédacteur de valider ses informations personnelles.

    Merci pour celui qui veux bien m’aider rapidement

    • La réponse à la question mérite réflexion. En fait, dans SPIP 1.8, la gestion des formulaires est totalement différente. On n’a plus à aller modifier le inc_formulaire comme avant. Donc, à mon sens, je peux me tromper, il faut créer une page avec un formulaire choisi dans le répertoire ad hoc. Les .html sont personnalisables.
      Dans mon cas j’utilise la balise #LOGIN_PUBLIC sur un formulaire perso et ça marche très bien. tu peux aller voir le fonctionnement à partir de la contrib no 909.

      @+

      YR

    • PELAGIE

      Bonjour,

      Je ne suis pas une pro de spip 1.8 et je le découvre depuis seulement un mois. alors ce que tu me dis ne me parle pas trop. La contrib 909 dont tu parles se trouve où?

      Explique moi explicitement ce qu’il faut faire pour résoudre mon problème.

      En te remerciant...

    • Malheureusement je n’ai pas de recette toute faite. L’article que je te conseille est en cours de validation : http://www.spip-contrib.net/ecrire/articles.php3?id_article=909 (il faut s’inscrire).
      Par rapport à la 1.8, c’est juste une idée dans la mesure où les formulaires sont maintenant gérés par des couples .php3/.html, donc plus faciles à adapter à des usages spécifiques. Si tu cherche de l’aide tu as intérêt à poser la question directement sur la liste des utilisateurs.

      YR

    Reply to this message

  • 3

    Il y a un souci sur le lien donné dans l’article. Difficile donc d’aller voir :-(

    Reply to this message

Comment on this article

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