AutorÃa | Ultima modificación | Ver Log |
<?phpuse core_completion\progress;class block_cursosrecientes_renderer extends plugin_renderer_base {public function procesar($instance_id) {global $USER, $DB, $CFG, $PAGE;//require_once $CFG->libdir . '/coursecatlib.php';//require_once $CFG->libdir . '/completionlib.php';// require_once $CFG->dirroot . '/lib/datalib.php';require_once $CFG->dirroot . '/course/classes/category.php';require_once $CFG->dirroot."/blocks/course_list/block_course_list.php";//require_once $CFG->dirroot . '/completion/classes/progress.php';$userid = $USER->id;$url_noimage = $CFG->wwwroot . '/theme/' . $PAGE->theme->name . '/pix/coursenoimage.jpg';$type = isset($_GET['type']) ? filter_var($_GET['type'], FILTER_SANITIZE_STRING) : '';if($type != 'grid' && $type != 'listing') {$type = 'grid';}$search = isset($_GET['search']) ? filter_var($_GET['search'], FILTER_SANITIZE_STRING) : '';$data = ['user_id' => $userid,'instance_id' => $instance_id,'courses' => [],'grid' => $type == 'grid' ? true : false,'listing' => $type == 'listing' ? true : false];$courselist = array();$mycourses = enrol_get_users_courses($userid);$courselist = array();foreach ($mycourses as $key => $val) {if($search) {if(stripos($val->fullname, $search) === false) {continue;}}$courselist[] = $val->id;}/*$paramsql = array('userid' => $userid);$sql = "SELECT DISTINCT rai.courseid, rai.*FROM {block_recentlyaccesseditems} raiJOIN {course} c ON c.id = rai.courseidWHERE userid = :useridORDER BY rai.timeaccess DESC";$records = $DB->get_records_sql($sql, $paramsql);foreach ($records as $record) {$courselist[] = $record->courseid;}*/for ($x = 1; $x <= sizeof($courselist); $x++) {$course = get_course($courselist[$x - 1]);if ($course instanceof stdClass) {$courseInList = new core_course_list_element($course);}$image = $url_noimage;foreach ($courseInList->get_course_overviewfiles() as $file){$isimage = $file->is_valid_image();$image = file_encode_url("{$CFG->wwwroot}/pluginfile.php", '/' . $file->get_contextid() . '/' . $file->get_component() . '/' . $file->get_filearea() . $file->get_filepath() . $file->get_filename(), !$isimage);if (!$isimage) {$image = $url_noimage;}}$lastaccess = null;$sql = "select timecreated from {logstore_standard_log} where courseid = :courseid and userid = :userid " ." and eventname = '\\\\core\\\\event\\\\course_viewed' order by id desc limit 1 ";$timecreated = $DB->get_field_sql($sql, array('courseid' => $course->id, 'userid' => $userid));if($timecreated) {$lastaccess = date('d/m/Y h:i a', $timecreated);}$category = $DB->get_record('course_categories',array('id'=>$course->category));$miProgreso = number_format(progress::get_course_progress_percentage($course),2); // Progreso por curso//$modules = get_fast_modinfo($course->id)->get_cms();//print_r($modules);// $sections = $DB->get_records('course_sections', ['course' => $course->id], 'section ASC', 'id,name,section,sequence,visible');//print_r($modules);$first_section = 0;$sections = $DB->get_records('course_sections', ['course' => $course->id], 'section ASC', 'id,name,section,sequence,visible');foreach($sections as $section){if(!empty($section->section)) {$first_section = $section->id;break;}}$course_context = context_course::instance($course->id);$roles = get_user_roles($course_context, $USER->id, true);$completion_edit_curso = false;foreach ($roles as $role) {if ($role->shortname == 'companydepartmentmanager' || $role->shortname == 'companycoursenoneditor') {$completion_edit_curso = true;break;}}$modules = get_fast_modinfo($course->id)->get_cms();$linkurl = '';foreach ($modules as $module){//print "!".$module->uservisible ."||". $module->is_stealth() ."||". $module->url ."||". $module->section."<br>";if (!$module->uservisible || $module->is_stealth() || empty($module->url) || empty($module->section)) {continue;}if($module->section == $first_section || $completion_edit_curso) {$linkurl = new moodle_url($module->url, array('forceview' => 1));//print_r($linkurl);//var_dump($linkurl);break;}}//$linkurl == "" &&if( $completion_edit_curso){$linkurl = $CFG->wwwroot . '/course/view.php?id=' . $course->id;}/*el mioforeach($sections as $section){$first = true;foreach ($modules as $module){if($module->section != $section->id) {continue;}$mods[$module->id] = $module;$linkurl = new moodle_url($module->url, array('forceview' => 1));}}/die();*//*echo '<pre>';echo $first_activity_summary;echo '</pre>';*/$summary = trim(strip_tags($course->summary));if(strlen($summary) > 80) {$summary = substr($summary, 0, 80) . '...';}$data['courses'][] = ['coursecategory' => $category->name,'courseimage' => $image,'enddate' => $course->enddate,'fullname' => $course->fullname,'fullnamedisplay' => get_course_display_name_for_list($course),'hasprogress' => true,'hidden' => false,'id' => $course->id,'idnumber' => $course->idnumber,'isfavourite' => false,'progress' => $miProgreso,'shortname' => $course->shortname,'showshortname' => false,'startdate' => $course->startdate,'summary' => $summary,'summaryformat' => $course->summaryformat,'timeaccess' => $lastaccess,'viewurl' => $CFG->wwwroot . '/course/view.php?id=' . $course->id,'viewurlnew' => $linkurl,'visible' => true,];}//var_dump($data);// die();return $this->render_from_template('block_cursosrecientes/full', $data);}}