Proyectos de Subversion Moodle

Rev

Rev 1 | Rev 1234 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1231
Línea 2... Línea 2...
2
 
2
 
Línea 3... Línea 3...
3
defined('MOODLE_INTERNAL') || die();
3
defined('MOODLE_INTERNAL') || die();
Línea 4... Línea 4...
4
 
4
 
-
 
5
use core_completion\progress;
-
 
6
 
-
 
7
class block_cesa_lastcourse_renderer extends plugin_renderer_base
-
 
8
{
Línea 5... Línea -...
5
use core_completion\progress;
-
 
6
 
-
 
7
class block_cesa_lastcourse_renderer extends plugin_renderer_base {
9
 
8
 
10
    public function procesar()
9
    public function procesar() {
11
    {
10
        
12
 
11
        global $USER, $DB, $CFG, $PAGE;
13
        global $USER, $DB, $CFG, $PAGE;
12
        
14
 
13
        
15
 
14
        $userid = $USER->id;
16
        $userid = $USER->id;
15
        $url_noimage =  $CFG->wwwroot . '/theme/' . $PAGE->theme->name . '/pix/coursenoimage.jpg';
17
        $url_noimage =  $CFG->wwwroot . '/theme/' . $PAGE->theme->name . '/pix/coursenoimage.jpg';
16
        
18
 
17
        $data = [
19
        $data = [
18
            'course' => ''
20
            'course' => ''
19
        ];
21
        ];
20
        
22
 
21
 
23
 
22
        $sql  = "SELECT DISTINCT(courseid) AS courseid  FROM {logstore_standard_log} WHERE ";
24
        $sql  = "SELECT DISTINCT(courseid) AS courseid  FROM {logstore_standard_log} WHERE ";
23
        $sql .= "action = 'viewed'  AND target IN ('course', 'course_module') AND userid = $userid ";
25
        $sql .= "action = 'viewed'  AND target IN ('course', 'course_module') AND userid = $userid ";
24
        $sql .= "GROUP BY courseid ORDER BY timecreated DESC  ";
26
        $sql .= "GROUP BY courseid ORDER BY timecreated DESC  ";
25
        
27
 
26
        
28
 
27
        $courseid =  null; 
29
        $courseid =  null;
28
        
-
 
29
        
30
 
30
        $lastcourses = $DB->get_records_sql($sql);
31
 
31
        foreach($lastcourses as $lastcourse) 
32
        $lastcourses = $DB->get_records_sql($sql);
32
        {
33
        foreach ($lastcourses as $lastcourse) {
33
            //$course = get_course($lastcourse->courseid);
34
            //$course = get_course($lastcourse->courseid);
34
            
35
 
35
 	    $course =  $DB->get_record('course',array('id'=>$lastcourse->courseid));
36
            $course =  $DB->get_record('course', array('id' => $lastcourse->courseid));
36
	
37
 
37
	    if(!$course || !$course->visible) {
38
            if (!$course || !$course->visible) {
38
                continue;
39
                continue;
39
            }
40
            }
40
            
41
 
41
            $category = $DB->get_record('course_categories',array('id'=>$course->category));
42
            $category = $DB->get_record('course_categories', array('id' => $course->category));
42
            if(!$category || !$category->visible) {
43
            if (!$category || !$category->visible) {
43
                continue;
-
 
44
            }
44
                continue;
45
            
45
            }
46
            $courseid = $course->id;
46
 
47
            
47
            $courseid = $course->id;
48
        }
48
        }
49
        
49
 
50
        if($courseid) {
50
        if ($courseid) {
51
                $course = get_course($courseid);
51
            $course = get_course($courseid);
52
                
52
 
53
                if ($course instanceof stdClass) {
53
            if ($course instanceof stdClass) {
54
                    $courseInList = new core_course_list_element($course);
-
 
55
                }
54
                $courseInList = new core_course_list_element($course);
56
                $image = $url_noimage;
55
            }
57
                foreach ($courseInList->get_course_overviewfiles() as $file)
56
            $image = $url_noimage;
58
                {
57
            foreach ($courseInList->get_course_overviewfiles() as $file) {
59
                    $isimage = $file->is_valid_image();
-
 
60
                    $image = file_encode_url("{$CFG->wwwroot}/pluginfile.php", '/' . $file->get_contextid() . '/' . $file->get_component() . '/' . $file->get_filearea() . $file->get_filepath() . $file->get_filename(), !$isimage);
-
 
61
                    if (!$isimage) {
-
 
62
                        $image = $url_noimage;
-
 
63
                    }
-
 
64
                }
-
 
65
                
-
 
66
   
-
 
67
                $lastaccess = null;
-
 
68
                $sql = "select timecreated  from {logstore_standard_log} where courseid  = :courseid and userid  = :userid " .
-
 
69
                    "  and eventname  = '\\\\core\\\\event\\\\course_viewed' order by id desc limit 1 ";
-
 
70
                
-
 
71
                $timecreated = $DB->get_field_sql($sql,  array('courseid' => $course->id, 'userid' => $userid));
-
 
72
                if($timecreated) {
-
 
73
                    
-
 
74
                    $lastaccess = date('d/m/Y h:i a', $timecreated);
-
 
75
                }
-
 
76
                
-
 
77
                $category = $DB->get_record('course_categories',array('id'=>$course->category));
-
 
78
                
-
 
79
                $progress = progress::get_course_progress_percentage($course);
-
 
80
                $progress = $progress ? floatval($progress) : 0.0;
-
 
81
                $miProgreso = number_format($progress,2); // Progreso por curso
-
 
82
                
-
 
83
                
-
 
84
                $first_section = 0;
-
 
85
                $sections = $DB->get_records('course_sections', ['course' => $course->id], 'section ASC', 'id,name,section,sequence,visible');
-
 
86
                
-
 
87
                foreach($sections as $section)
-
 
88
                {
-
 
89
                    if(!empty($section->section)) {
58
                $isimage = $file->is_valid_image();
-
 
59
                $image = file_encode_url("{$CFG->wwwroot}/pluginfile.php", '/' . $file->get_contextid() . '/' . $file->get_component() . '/' . $file->get_filearea() . $file->get_filepath() . $file->get_filename(), !$isimage);
-
 
60
                if (!$isimage) {
-
 
61
                    $image = $url_noimage;
-
 
62
                }
-
 
63
            }
-
 
64
 
-
 
65
 
-
 
66
            $lastaccess = null;
-
 
67
            $sql = "select timecreated  from {logstore_standard_log} where courseid  = :courseid and userid  = :userid " .
-
 
68
                "  and eventname  = '\\\\core\\\\event\\\\course_viewed' order by id desc limit 1 ";
90
                        $first_section = $section->id;
69
 
-
 
70
            $timecreated = $DB->get_field_sql($sql,  array('courseid' => $course->id, 'userid' => $userid));
-
 
71
            if ($timecreated) {
91
                        break;
72
 
92
                    }
73
                $lastaccess = date('d/m/Y h:i a', $timecreated);
-
 
74
            }
93
                }
75
 
-
 
76
            $category = $DB->get_record('course_categories', array('id' => $course->category));
-
 
77
 
-
 
78
            $progress = progress::get_course_progress_percentage($course);
94
                $course_context = context_course::instance($course->id);
79
            $progress = $progress ? floatval($progress) : 0.0;
95
                $roles = get_user_roles($course_context, $USER->id, true);
80
            $miProgreso = number_format($progress, 2); // Progreso por curso
-
 
81
 
-
 
82
 
96
                
83
            $first_section = 0;
97
                $completion_edit_curso = false;
84
            $sections = $DB->get_records('course_sections', ['course' => $course->id], 'section ASC', 'id,name,section,sequence,visible');
98
                foreach ($roles as $role) {
85
 
99
                    if ($role->shortname == 'companydepartmentmanager' || $role->shortname == 'companycoursenoneditor') {
86
            foreach ($sections as $section) {
100
                        $completion_edit_curso  = true;
-
 
101
                        break;
-
 
102
                    }
-
 
103
                }
-
 
104
                
-
 
105
                
-
 
106
                
-
 
107
                $modules = get_fast_modinfo($course->id)->get_cms();
87
                if (!empty($section->section)) {
108
                
88
                    $first_section = $section->id;
109
                
89
                    break;
110
                
-
 
111
                $linkurl = '';
-
 
112
                foreach ($modules as $module)
-
 
113
                {
90
                }
114
                    
-
 
115
                    
-
 
116
                    
91
            }
117
                    
92
            $course_context = context_course::instance($course->id);
118
                    //print "!".$module->uservisible ."||". $module->is_stealth() ."||". $module->url ."||". $module->section."<br>";
-
 
119
                    if (!$module->uservisible || $module->is_stealth() || empty($module->url) || empty($module->section)) {
93
            $roles = get_user_roles($course_context, $USER->id, true);
120
                        continue;
-
 
121
                    }
94
 
122
                    
95
            $completion_edit_curso = false;
123
                    if($module->section == $first_section || $completion_edit_curso) {
96
            foreach ($roles as $role) {
-
 
97
                if ($role->shortname == 'companydepartmentmanager' || $role->shortname == 'companycoursenoneditor') {
-
 
98
                    $completion_edit_curso  = true;
-
 
99
                    break;
-
 
100
                }
-
 
101
            }
-
 
102
 
-
 
103
 
-
 
104
 
-
 
105
            $modules = get_fast_modinfo($course->id)->get_cms();
124
                        $linkurl =  new moodle_url($module->url, array('forceview' => 1));
106
 
-
 
107
 
-
 
108
 
-
 
109
            $linkurl = '';
-
 
110
            foreach ($modules as $module) {
-
 
111
 
125
                        break;
112
 
-
 
113
 
126
                    }
114
 
Línea 127... Línea -...
127
                }
-
 
128
                if( $completion_edit_curso){
115
                //print "!".$module->uservisible ."||". $module->is_stealth() ."||". $module->url ."||". $module->section."<br>";
129
                    $linkurl = $CFG->wwwroot . '/course/view.php?id=' . $course->id;
-
 
130
                }
116
                if (!$module->uservisible || $module->is_stealth() || empty($module->url) || empty($module->section)) {
131
 
117
                    continue;
132
                
-
 
133
                $summary = trim(strip_tags($course->summary));
-
 
134
                
-
 
135
                if(empty($summary)) {
118
                }
136
                    $summary = '&nbsp';
-
 
137
                } else if(strlen($summary) > 80) {
-
 
138
                    
119
 
139
                    $summary =  substr($summary, 0, 80) . '...';
120
                if ($module->section == $first_section || $completion_edit_curso) {
140
                }
-
 
141
                
-
 
142
                
-
 
143
                $data['course'] = [
-
 
144
                    'courseid' => $course->id,
121
                    $linkurl =  new moodle_url($module->url, array('forceview' => 1));
145
                    'coursecategory' => $category->name,
-
 
146
                    'courseimage' => $image,
122
                    break;
147
                    'enddate' => $course->enddate,
-
 
148
                    'fullname' => $course->fullname,
-
 
149
                    'fullnamedisplay' => get_course_display_name_for_list($course),
-
 
150
                    'hasprogress' => true,
-
 
-
 
123
                }
-
 
124
            }
151
                    'hidden' => false,
125
            if ($completion_edit_curso) {
-
 
126
                $linkurl = $CFG->wwwroot . '/course/view.php?id=' . $course->id;
152
                    'id' => $course->id,
127
            }
153
                    'idnumber' => $course->idnumber,
-
 
154
                    'isfavourite' => false,
128
 
155
                    'progress' => $miProgreso,
-
 
156
                    'shortname' => $course->shortname,
-
 
157
                    'showshortname' => false,
-
 
158
                    'startdate' => $course->startdate,
-
 
159
                    'summary' =>  $summary,
129
 
160
                    'summaryformat' => $course->summaryformat,
-
 
161
                    'timeaccess' => $lastaccess,
-
 
Línea -... Línea 130...
-
 
130
            $summary = trim(strip_tags($course->summary));
-
 
131
 
-
 
132
            if (empty($summary)) {
162
                    'viewurl' => $CFG->wwwroot . '/course/view.php?id=' . $course->id,
133
                $summary = '&nbsp';
-
 
134
            } else if (strlen($summary) > 80) {
-
 
135
 
-
 
136
                $summary =  substr($summary, 0, 80) . '...';
-
 
137
            }
-
 
138
 
-
 
139
 
-
 
140
            $data['course'] = [
-
 
141
                'courseid' => $course->id,
-
 
142
                'coursecategory' => $category->name,
-
 
143
                'courseimage' => $image,
-
 
144
                'enddate' => $course->enddate,
-
 
145
                'fullname' => $course->fullname,
-
 
146
                'fullnamedisplay' => get_course_display_name_for_list($course),
-
 
147
                'hasprogress' => true,
-
 
148
                'hidden' => false,
-
 
149
                'id' => $course->id,
-
 
150
                'idnumber' => $course->idnumber,
-
 
151
                'isfavourite' => false,
-
 
152
                'progress' => $miProgreso,
-
 
153
                'shortname' => $course->shortname,
-
 
154
                'showshortname' => false,
-
 
155
                'startdate' => $course->startdate,
163
                    'viewurlnew' => $linkurl,
156
                'summary' =>  $summary,
-
 
157
                'summaryformat' => $course->summaryformat,
164
                    'visible' => true,
158
                'timeaccess' => $lastaccess,
165
                    
159
                'viewurl' => $CFG->wwwroot . '/course/view.php?id=' . $course->id,
166
                ];
160
                'viewurlnew' => $linkurl,
167
 
161
                'visible' => true,
168
            
162
 
169
            
163
            ];
170
        }
-