Las múltiples posibilidades de #LOGIN_PUBLIC

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Cómo utilizar el #LOGIN_PUBLIC para ofrecer opciones a los usuarios autentificados

Según la documentación oficial, la baliza #LOGIN_PUBLIC se estableció para gestionar los foros bajo suscripción. Más tarde esta opción se utilizó como método de limitar el acceso a algunas partes “públicas” del contenido de un sitio.

La utilización que se presentará aquí es completamente diferente y tuvo como punto de inicio la posibilidad de ofrecer servicios a usuarios autentificados. Es cierto que tener usuarios registrados permite a los administradores seguir un poco lo que pasa, pero existe también otro aspecto que da la posibilidad de conservar algunos datos en las tablas, devueltas a su autor, previa petición.

La prueba de autenticación se explica en “Los formularios” de la documentación de SPIP, en particular al final del documento, donde explica sobre la utilización de la variable $auteur_session.

Un ejemplo concreto

En mi caso, he trabajado en un sitio para universitarios que ofrece herramientas, además de apuntes y las notas de curso. Un estudiante autentificado puede comentar en las páginas del curso (que son artículos en el sentido de SPIP), puede hacerse de su espacio personal con artículos favoritos, permitiéndole además acceder a partir de su conexión a una selección de algunos artículos sobre los centenares que están disponibles.

También queremos establecer un sistema que permita a los estudiantes acceder a una serie de preguntas cortas tipo exámen.

El conjunto de los temas pertenecen a una sección especial, en nuestro caso la nº13. El tema está en el título, la declaración en el texto y la respuesta esperada en el epígrafe (chapo). Los vínculos son accesibles desde el espacio personal del visitante.

Un bucle (ARTICLES)(id_rubrique=13) devuelve la lista los temas, con un vínculo responder que no es más que el foro vinculado al artículo. ¡Han comprendido !, es el funcionamiento clásico del foro por suscripción, utilizado para simular un examen.

Sobre esta página de control, una consulta SQL prueba permanentemente en la tabla spip_forum, la existencia de un mensaje publicado por el auteur_session y correspondiendo al artículo (tema) en curso. Si existe una respuesta, el texto se indicará bajo la declaración y esto para cada tema. Si las mismas condiciones se reúnen, un vínculo “Ver la respuesta” permite acceder a la respuesta modelo en una ventana popup.

Estas páginas contienen un poco de SPIP, como tambien PHP y consultas SQL a traves de las funcion spip_query(). He aquí un extracto :

 
((<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">Responder</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>

<?	
		// consulta SQL : extrae la linea de la tabla spip_forum correspondiente al usuario conectado.
		// y al articulo del bucle
		$query = "SELECT * FROM spip_forum WHERE id_article = '#ID_ARTICLE' AND auteur = '$nom_user'";
		// ejecuta la consulta
		$result = spip_query($query);
	if (spip_num_rows($result) != 0) {
?>
		<a href="response.php3id_article=#ID_ARTICLE" class="texte">Ver la correccion</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>Mi respuesta : </strong>$texte</li></font></div><br>");
			}
	}
 ?>
 <hr size=1>
</BOUCLE_cc>))

Asi se reciben contribuciones de los estudiantes que responden a temas editoriales, que pueden comparar su respuesta con la que se espera.

Pueden ver un ejemplo funcionando en mi sitio, eligiendo la opción Control contínuo (Contrôle continu).

Se agregaron posteriormente dos mejoras :

-  Por cada tema hay palabras clave definidas por el evaluador, cuya presencia se busca en el texto de la respuesta. Si figuran, se subrayan. Si no, se listan como ausentes.

-  El evaluador, que tiene derechos de administrador, puede responder al foro del artículo (id_parent). De esta forma, el estudiante puede disponer de observaciones personalizadas sobre su respuesta.

Discussion

Aucune discussion

Ajouter un commentaire

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
  • 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 apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom