He modificado el archivo "lib.php" que hay dentro de la carpeta "course"
Para ello he añadido estas dos nuevas funciones, la primera me dice si el usuario "$user" puede entrar al curso "$course" devolviendo true o false, y la segunda, si no puede entrar, me imprime el título del curso y un mensaje con la fecha de inicio del curso.
function EntraEnCurso($user,$course){
//SELECT * FROM mdl_groups AS g, mdl_groups_members AS m WHERE g.id = m.groupid AND m.userid =3 AND g.courseid =2 LIMIT 0 , 30
global $CFG;
$entra=false;
$fechaactual=time()+3600;//Obtengo la fecha actual con una hora mas
$sql="select * from {$CFG->prefix}groups as g,{$CFG->prefix}groups_members as m where g.id=m.groupid and m.userid=" . $user . " and g.courseid=".$course;
$consulta=get_records_sql($sql);
if(!$consulta)//Esto significa que no hay grupos, entonces entra si o si
{
$entra=true;
}
foreach ($consulta as $itemid => $item )
{
//echo $fechaactual;echo "\n";
//echo $item->startgroup+3600;echo "\n";
//echo $item->endgroup+86400;echo "\n";
$fechainiciogrupo = $item->startgroup+3600;
$fechafingrupo = $item->endgroup+86400;
if( $fechaactual >= $fechainiciogrupo && $fechaactual <= $fechafingrupo ){
$entra=true;
}
}
return $entra;
}
function printcoursecerrado($user,$course)
{
global $CFG;
$fechaactual=time()+3600;//Obtengo la fecha actual con una hora mas
$sql="select * from {$CFG->prefix}groups as g,{$CFG->prefix}groups_members as m where g.id=m.groupid and m.userid=" . $user . " and g.courseid=".$course;
$consulta=get_records_sql($sql);
$sql2="select * from {$CFG->prefix}course where id=".$course;
$consulta2=get_records_sql($sql2);
if($consulta)//Si hay grupos
{
foreach ($consulta as $itemid => $item ){
$fechafingrupo=$item->endgroup+3600;//Obtengo la fecha de fin de grupo xq si es menor se imprime el curso como cerrado si no no se imprime nada, xq el curso ya ha finalizado
if($fechaactual < $fechafingrupo)
{
echo "<div class='coursebox clearfix'>";
echo "<div class='info'>";
echo "<div class='name'>";
echo current($consulta2)->fullname;
echo " El curso comenzará el día ".Date("d/m/y", $item->startgroup);
echo "</div>";
echo "</div>";
echo "</div>";
}
}
}
}
Estas dos funciones las he añadido a la función print_my_moodle(), aquí esta el código modificado
foreach ($courses as $course) {
if ($course->id == SITEID) {
continue;
}
//Aquí voy a insertar una restricción para que si el curso está entre las fechas indicadas en el grupo lo inserte
echo '<li>';
if(EntraEnCurso($USER->id,$course->id))
print_course($course);
else
printcoursecerrado($USER->id,$course->id);
echo "</li>\n";
}
Muchas gracias y hasta la próxima, espero les haya servido de ayuda
No hay comentarios:
Publicar un comentario