Salve,
rilevo il seguente problema:
limitando la possibilità di iscrizione a un corso in un intervallo di date (Modifica corso / Iscrizione al corso / L'utente può icriversi? opzione : L'iscrizione è disponibile nel seguente periodo), quando l'utente, per effettuare l'iscrizione, inserisce nell'apposito campo "iscrizione con codice" (nella side-bar del profilo) un codice random usa e getta (creato dalla sezione Configurazione/configurazione di sistema/codice, e abbinato al corso), ottiene l'errore "subscription not allowed yet", anche se il tentativo di iscrizione viene fatto nell'intervallo temporale consentito;
se invece l'iscrizione non è limitata in un intervallo di date, ma è normalmente aperta, i codici random funzionano correttamente;
sull'argomento non ho trovato informazioni nel forum, qualcuno ha rilevato il problema?
può trattarsi di qualche configrazione mancante o può essere un bug? (e in tal caso c'è qualche workaround noto?)
Grazie se qualcuno ha info in merito
--------------
Forma 2.4.2
[RISOLTO] Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
[RISOLTO] Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
Last edited by gfiandino on Fri Jun 04, 2021 3:14 pm, edited 1 time in total.
Re: Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
Bug. È lì da sempre, esteso non solo ai codici perché le date in cui sono disponibili le iscrizioni incidono anche su altre funzioni.
Per supporto GRATUITO contattatemi in privato qui
Re: Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
Come primo test, in /appLms/lib/lib.course.php trova:
e sostituiscila con:
Code: Select all
$query_course_active = "SELECT idCourse" .
" FROM %lms_course" .
" WHERE autoregistration_code = '".$code."'"
." AND autoregistration_code <> ''"
." AND (
(can_subscribe=2 AND (sub_end_date = '0000-00-00' OR sub_end_date >= '".date('Y-m-d')."') AND (sub_start_date = '0000-00-00' OR '".date('Y-m-d')."' >= sub_start_date)) OR
(can_subscribe=1)
) ";
Code: Select all
$query_course_active = "SELECT idCourse" .
" FROM %lms_course" .
" WHERE autoregistration_code = '".$code."'"
." AND autoregistration_code <> ''"
." AND (
(can_subscribe=2 AND (sub_end_date IS NULL OR sub_end_date = '0000-00-00 00:00:00' OR sub_end_date >= '".date('Y-m-d')."') AND (sub_start_date IS NULL OR sub_start_date = '0000-00-00 00:00:00' OR '".date('Y-m-d')."' >= sub_start_date)) OR
(can_subscribe=1)
) ";
Per supporto GRATUITO contattatemi in privato qui
- fra.scalinci
- Newbie
- Posts: 21
- Joined: Thu Oct 22, 2020 2:14 pm
Re: Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
Grazie mille per la segnalazione alfa24! L'abbiamo passata agli sviluppatori. Verificheremo la soluzione proposta e cercheremo di inserirla nelle prossime release.
Re: Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
Grazie Alfa24 per il suggerimento di test,
ho provato a modificare il codice, e ti segnalo che in /appLms/lib/lib.course.php, nella definizione di $query_course_active che hai indicato, la parte relativa al FROM non è " FROM %lms_course" ma " FROM ".$GLOBALS['prefix_lms']."_course" .
in ogni caso ho provato a sostituite la parte rimanente del codice della Select con quello che hai indicato, ma il problema permane, l'iscrizione con codici (creati dalla sezione Configurazione/configurazione di sistema/codice, e abbinati al corso) non viene permessa
ho anche notato che invece, usando il "Codice per l'iscrizione automatica ad un corso" (che unico per tutti gli utenti) generato nella pagina stessa di modifica del corso , l'iscrizione limitata nell'intervallo di date funziona correttamente;
purtroppo a me serve usare molteplici codici (usa e getta, e uno per ciascun utente)
ti ringrazio in anticipo nel caso ti venissero in mente alternative, e attendo eventuali soluzioni al problema nelle prossime releases.
ho provato a modificare il codice, e ti segnalo che in /appLms/lib/lib.course.php, nella definizione di $query_course_active che hai indicato, la parte relativa al FROM non è " FROM %lms_course" ma " FROM ".$GLOBALS['prefix_lms']."_course" .
in ogni caso ho provato a sostituite la parte rimanente del codice della Select con quello che hai indicato, ma il problema permane, l'iscrizione con codici (creati dalla sezione Configurazione/configurazione di sistema/codice, e abbinati al corso) non viene permessa
ho anche notato che invece, usando il "Codice per l'iscrizione automatica ad un corso" (che unico per tutti gli utenti) generato nella pagina stessa di modifica del corso , l'iscrizione limitata nell'intervallo di date funziona correttamente;
purtroppo a me serve usare molteplici codici (usa e getta, e uno per ciascun utente)
ti ringrazio in anticipo nel caso ti venissero in mente alternative, e attendo eventuali soluzioni al problema nelle prossime releases.
Re: Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
Come ho scritto si tratta di un test, che ho buttato giù al volo vedendo l'errore macroscopico nel codice (i campi sono del tipo DATETIME, non DATE, e hanno default NULL, non '0').
Devo replicarlo sulle mie istanze. Ti dirò nei prossimi gg.
P.S.: puoi usare tranquillamente %lms_ anziché $GLOBAL['prefix_lms'], che è lì per retrocompatibilità ma che sarebbe opportuno rimuovere.
Devo replicarlo sulle mie istanze. Ti dirò nei prossimi gg.
P.S.: puoi usare tranquillamente %lms_ anziché $GLOBAL['prefix_lms'], che è lì per retrocompatibilità ma che sarebbe opportuno rimuovere.
Per supporto GRATUITO contattatemi in privato qui
Re: Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
Aggiungo, oltre a quanto già proposto, anche la seguente:
in /appCore/lib/lib.code.php occorre ridefinire la query nella funzione getAvailableCourseAssociated($id_code_group) come segue:
in /appCore/lib/lib.code.php occorre ridefinire la query nella funzione getAvailableCourseAssociated($id_code_group) come segue:
Code: Select all
{
$query = "SELECT ccc.idCourse"
." FROM ".$this->_getCodeCourseTable()." AS ccc JOIN ".$this->_getCourseTable()." AS lc ON ccc.idCourse = lc.idCourse"
." WHERE ccc.idCodeGroup = '".$id_code_group."'
AND ( can_subscribe=1 OR
(lc.can_subscribe=2
AND
(lc.sub_end_date IS NULL OR lc.sub_end_date = '0000-00-00 00:00:00' OR lc.sub_end_date >= '".date('Y-m-d')."')
AND
(lc.sub_start_date IS NULL OR lc.sub_start_date = '0000-00-00 00:00:00' OR '".date('Y-m-d')."' >= lc.sub_start_date)
))";
Per supporto GRATUITO contattatemi in privato qui
Re: Errore "subscription not allowed yet" usando iscrizione limitata in un intervallo di date
Grazie Alfa24,
ho provato e confermo che la ridefinizione della query con quella da te indicata corregge il bug;
ora l'iscrizione ad un corso tramite i codici creati dalla sezione Configurazione/configurazione di sistema/codice, e abbinati al corso, funziona anche se limitata in un intervallo di date.
Grazie ancora per la rapida soluzione.
ho provato e confermo che la ridefinizione della query con quella da te indicata corregge il bug;
ora l'iscrizione ad un corso tramite i codici creati dalla sezione Configurazione/configurazione di sistema/codice, e abbinati al corso, funziona anche se limitata in un intervallo di date.
Grazie ancora per la rapida soluzione.