| Server IP : 165.22.154.248 / Your IP : 216.73.216.165 [ Web Server : Apache/2.4.29 (Ubuntu) System : Linux droplet-integra 4.15.0-197-generic #208-Ubuntu SMP Tue Nov 1 17:23:37 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 7.2.24-0ubuntu0.18.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/avanza-lms.old.bak9874115/blocks/classmates/ |
Upload File : |
<?php
defined('MOODLE_INTERNAL') || die();
/**
* @param contextid recibe el contexto id de usuario
* @param picture recibe el id de la imagen de perfil del usuario
* @param size recibe el tamaƱo de la imagen
* @return string retorna la url completa de la imagen de perfil
*/
function classmates_getImageStudent($contextid, $picture, $size="f1"){
global $DB,$CFG;
$imagen=$CFG->wwwroot."/theme/image.php?theme=".$CFG->theme."&component=core&image=u%2F".$size;
if($picture <> 0 ){
$imagen=$CFG->wwwroot."/pluginfile.php/".$contextid."/user/icon/".$size;
}
return $imagen;
}
/**
* devuelve una lista de usuarios por rol de estudiante
* @param courseid recibe el id de curso
* @return array retorna todos los datos
*/
function classmates_getListClassmates($courseid, $limit=50){
global $DB, $CFG;
$role_id_student = 5;
$id_picture_default = 0;
$context_course = 50;
$context_user = 30;
$randomFunSQL = classmates_getFunRandomSql($CFG->dbtype);
$sql = "SELECT
u.id as userid,
u.firstname,
u.lastname,
u.picture,
ct.id as contextid,
t.id as context_id_curso
FROM mdl_user u
JOIN mdl_role_assignments a ON (a.userid=u.id)
JOIN mdl_context t ON (t.id = a.contextid)
JOIN mdl_course c ON (c.id =t.instanceid)
JOIN mdl_context ct ON (ct.instanceid=u.id and ct.contextlevel={$context_user})
WHERE t.contextlevel= {$context_course}
AND c.id = {$courseid}
AND u.picture <> 0
AND a.roleid = {$role_id_student}
ORDER BY {$randomFunSQL}
LIMIT {$limit}";
$sql = str_replace('mdl_', $CFG->prefix, $sql);
$result = $DB->get_records_sql($sql);
//var_dump($result);
//exit();
return $result;
}
/**
* organiza los datos en arreglo para poder definirlos en mustache
* @param data recibe un arreglo de datos
* @return array retorna un arreglo de datos organizado
*/
function classmates_orderDataMustache($data){
$array_data = array();
foreach($data as $key => $value){
$object = array("student" => $value);
$object["images"] = classmates_getImageStudent($value->contextid, $value->picture);
array_push($array_data, $object);
}
return $array_data;
}
/**
* permite elegir la funcion para generar randoms en sql dependiendo si es otra base de datos.
* @param db_type recibe el tipo de base de dato de moodle
*/
function classmates_getFunRandomSql($db_type){
$postgres_type = "pgsql";
if($db_type == $postgres_type){
return "RANDOM()";
} else {
return "RAND()";
}
}