[Solved] Module Inscription

Ask your questions and tell us what's wrong

[Solved] Module Inscription

Postby BCarpentier on Tue Nov 22, 2011 12:47 pm

Bonjour,

Version 1.10.6. L'excellent module Inscription de Pierre Raynaud ne permet plus au gestionnaire du cours d'inscrire les étudiants. La liste des étudiants à inscrire reste désespérément vide. En revanche, si ils s'inscrivent eux-mêmes tout fonctionne très bien.
Subscription.jpg
Subscription.jpg (25.52 KiB) Viewed 1025 times

Une idée ?
Last edited by BCarpentier on Fri Nov 25, 2011 12:22 pm, edited 1 time in total.
BCarpentier
Contributeurs Actif Forum
 
Posts: 45
Joined: Fri Sep 11, 2009 12:55 pm

Re: Module Inscription

Postby Anto on Tue Nov 22, 2011 1:22 pm

Bonjour,

Vous auriez un lien vers le module afin de pouvoir jeter un oeil à son code ?
User avatar
Anto
Contributeurs Actif Forum
 
Posts: 401
Joined: Thu Jan 14, 2010 10:53 am

Re: Module Inscription

Postby BCarpentier on Tue Nov 22, 2011 2:13 pm

Bonjour et merci de cette réponse rapide

Le lien : Module Inscription
BCarpentier
Contributeurs Actif Forum
 
Posts: 45
Joined: Fri Sep 11, 2009 12:55 pm

Re: Module Inscription

Postby BCarpentier on Tue Nov 22, 2011 8:18 pm

Petit bug bien génant trouvé dans ce module : on peut atteindre un nombre de places restantes négatif.

Explications :

L'accès à l'inscription se fait sous la forme d'un lien qui est accessible si le nombre de places restantes est différent de 0
(lignes 459 à 466 de index.php du module Inscription, avec appel à la fonction CLFDisAllowedToSubscribe)

Si 1 étudiant clique sur le lien alors qu'un autre est en train de s'inscrire, on peut passer en dessous de 0. A partir de ce moment là, les inscriptions sont indéfiniment possibles puisque le test (ligne 200 de lib/subscribe.lib.php) ne teste que l'égalité à 0.


2 suggestions :

- patch rapide de la ligne 200 de lib/subscribe.lib.php
Code: Select all
if (CLFDgetRemainingPlaces($session_id) && $allow_user_to_modify==1)

devient

Code: Select all
if (CLFDgetRemainingPlaces($session_id)>0 && $allow_user_to_modify==1)

ce qui limite les dégâts

- correction du module en intégrant une vérification que les dernières places libres n'ont pas été prises au moment de l'écriture de l'écriture dans la bdd (ça dépasse malheureusement mes compétences php).
BCarpentier
Contributeurs Actif Forum
 
Posts: 45
Joined: Fri Sep 11, 2009 12:55 pm

Re: Module Inscription

Postby BCarpentier on Fri Nov 25, 2011 12:22 pm

Patchs à passer dans le module SUBSCR pour résoudre les problème suivants :

- places qui deviennent négatives si plusieurs étudiants prennent en même temps la dernière place :
SUBSCR/lib/subscribe.lib.php aux alentours de la ligne 225 :
Code: Select all
global $tbl_subscriptionUsers;
$sql_subscribe = "INSERT INTO `$tbl_subscriptionUsers`
SET subscription_id = $session_id,
user_id = $user_id,
subscription_date = NOW()";
if (claro_sql_query($sql_subscribe))
return true;
else
return false;
devient
Code: Select all
if (CLFDgetRemainingPlaces($session_id)>0) { // *ajout*
   global $tbl_subscriptionUsers;
   $sql_subscribe = "INSERT INTO `$tbl_subscriptionUsers`
                     SET subscription_id = $session_id,
                      user_id = $user_id,
                      subscription_date = NOW()";
   if (claro_sql_query($sql_subscribe))
   return true;
   else
   return false; }
else // *ajout*
return false; // *ajout*
ce qui permet de n'écrire dans la table que si il reste des places

- impossibilité pour le gestionnaire de cours de procéder aux inscriptions :
dans SUBSCR/lib/subscribe.lib.php aux alentours de la ligne 285 :
Code: Select all
$tbl_rel_course_user = claro_sql_get_tbl('cours_user');
$tbl_rel_course_user = $tbl_rel_course_user['cours_user'];
devient
Code: Select all
$tbl_rel_course_user = claro_sql_get_tbl('rel_course_user');
$tbl_rel_course_user = $tbl_rel_course_user['rel_course_user'];


dans SUBSCR/session_detail.php aux alentours de la ligne 149 :
Code: Select all
warniing
devient
Code: Select all
warning
BCarpentier
Contributeurs Actif Forum
 
Posts: 45
Joined: Fri Sep 11, 2009 12:55 pm

Re: [Solved] Module Inscription

Postby ddm59 on Sat Jul 14, 2012 8:54 pm

Bonjour,

J'ai installé le module sur la Version 1.10.7. par contre je crée une session d'inscription mais quand je me connecte avec un identifiant élève, alors qu'il reste des place j'ai "inscription impossible"
Sauriez-vous me dire pour quelle raison?
User avatar
ddm59
 
Posts: 28
Joined: Sat Nov 17, 2007 7:21 pm
Location: Tourcoing, France

Re: [Solved] Module Inscription

Postby Phil on Wed Jul 18, 2012 8:22 am

Est-ce que la session est bien visible ? oeil ouvert ?

Phil
Phil
Contributeurs Actif Forum
 
Posts: 880
Joined: Sat Jul 06, 2002 1:00 am

Re: [Solved] Module Inscription

Postby ddm59 on Fri Jul 20, 2012 3:02 pm

OUi oui puisque l'inscription impossible est côté élève.
User avatar
ddm59
 
Posts: 28
Joined: Sat Nov 17, 2007 7:21 pm
Location: Tourcoing, France


Return to Bugs Claroline 1.10 (previous stable version)

Who is online

Users browsing this forum: No registered users and 1 guest