Proyectos de Subversion Moodle

Rev

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

Rev 1 Rev 446
Línea 14... Línea 14...
14
{
14
{
15
    public static function get_listado_de_cursos_recientes_parameters()
15
    public static function get_listado_de_cursos_recientes_parameters()
16
    {
16
    {
17
        return new \external_function_parameters([
17
        return new \external_function_parameters([
18
            'category_id' => new \external_value(PARAM_INT, 'Categoría de los Cursos', VALUE_DEFAULT, 0),
18
            'category_id' => new \external_value(PARAM_INT, 'Categoría de los Cursos', VALUE_DEFAULT, 0),
19
            'search_text' => new \external_value(PARAM_ALPHANUM, 'Palabra de busqueda', VALUE_DEFAULT, ' ' ),
19
            'search_text' => new \external_value(PARAM_ALPHANUM, 'Palabra de busqueda', VALUE_DEFAULT, ' '),
20
        ]);
20
        ]);
21
    }
21
    }
Línea 22... Línea 22...
22
 
22
 
23
    public static function get_listado_de_cursos_recientes($category_id, $search_text)
23
    public static function get_listado_de_cursos_recientes($category_id, $search_text)
Línea 30... Línea 30...
30
        ] = self::validate_parameters(self::execute_parameters(), [
30
        ] = self::validate_parameters(self::execute_parameters(), [
31
            'category_id' => $category_id,
31
            'category_id' => $category_id,
32
            'search_text' => $search_text
32
            'search_text' => $search_text
33
        ]);
33
        ]);
34
        */
34
        */
35
        
35
 
36
        global $USER, $DB, $CFG, $OUTPUT, $PAGE;
36
        global $USER, $DB, $CFG, $OUTPUT, $PAGE;
37
        
37
 
38
        
38
 
39
        $userid = $USER->id;
39
        $userid = $USER->id;
40
        $url_noimage =  $CFG->wwwroot . '/theme/' . $PAGE->theme->name . '/pix/coursenoimage.jpg';
40
        $url_noimage =  $CFG->wwwroot . '/theme/' . $PAGE->theme->name . '/pix/coursenoimage.jpg';
Línea 41... Línea 41...
41
 
41
 
42
        $courses = [];
42
        $courses = [];
43
        $courselist = array();
43
        $courselist = array();
44
        
44
 
45
        
45
 
-
 
46
        $mycourses = enrol_get_users_courses($userid);
46
        $mycourses = enrol_get_users_courses($userid);
47
 
47
        $courselist = array();
48
        $courselist = array();
48
        foreach ($mycourses as $course) 
-
 
49
        {
49
        foreach ($mycourses as $course) {
50
            if(!$course->visible) {
50
            if (!$course->visible) {
51
                continue;
51
                continue;
52
            }
52
            }
53
            
53
 
54
            
54
 
55
            if($search_text) {
55
            if ($search_text) {
56
                if(stripos($course->fullname, $search_text) === false) {
56
                if (stripos($course->fullname, $search_text) === false) {
57
                    continue;
57
                    continue;
58
                }
58
                }
59
            }
59
            }
60
            
60
 
61
            if($category_id) {
61
            if ($category_id) {
62
                if($category_id != $course->category) {
62
                if ($category_id != $course->category) {
63
                    continue;
63
                    continue;
64
                }
64
                }
65
            }
65
            }
66
            
66
 
67
            $category = $DB->get_record('course_categories',array('id'=>$course->category, 'visible' => 1));
67
            $category = $DB->get_record('course_categories', array('id' => $course->category, 'visible' => 1));
68
            if(!$category) {
68
            if (!$category) {
69
                continue;
69
                continue;
Línea 70... Línea 70...
70
            }
70
            }
71
 
71
 
72
            
72
 
73
            if ($course instanceof stdClass) {
73
            if ($course instanceof stdClass) {
74
                $courseInList = new core_course_list_element($course);
74
                $courseInList = new core_course_list_element($course);
75
            }
75
            }
76
            $image = $url_noimage;
-
 
77
            foreach ($courseInList->get_course_overviewfiles() as $file)
76
            $image = $url_noimage;
78
            {
77
            foreach ($courseInList->get_course_overviewfiles() as $file) {
79
                $isimage = $file->is_valid_image();
78
                $isimage = $file->is_valid_image();
80
                $image = file_encode_url("{$CFG->wwwroot}/pluginfile.php", '/' . $file->get_contextid() . '/' . $file->get_component() . '/' . $file->get_filearea() . $file->get_filepath() . $file->get_filename(), !$isimage);
79
                $image = file_encode_url("{$CFG->wwwroot}/pluginfile.php", '/' . $file->get_contextid() . '/' . $file->get_component() . '/' . $file->get_filearea() . $file->get_filepath() . $file->get_filename(), !$isimage);
81
                if (!$isimage) {
80
                if (!$isimage) {
82
                    $image = $url_noimage;
81
                    $image = $url_noimage;
83
                }
82
                }
84
            }
83
            }
85
            
84
 
86
            $lastaccess = null;
85
            $lastaccess = null;
87
            $sql = "select timecreated  from {logstore_standard_log} where courseid  = :courseid and userid  = :userid " .
86
            $sql = "select timecreated  from {logstore_standard_log} where courseid  = :courseid and userid  = :userid " .
88
                "  and eventname  = '\\\\core\\\\event\\\\course_viewed' order by id desc limit 1 ";
87
                "  and eventname  = '\\\\core\\\\event\\\\course_viewed' order by id desc limit 1 ";
89
            
88
 
90
            $timecreated = $DB->get_field_sql($sql,  array('courseid' => $course->id, 'userid' => $userid));
89
            $timecreated = $DB->get_field_sql($sql,  array('courseid' => $course->id, 'userid' => $userid));
91
            if($timecreated) {
90
            if ($timecreated) {
92
                
91
 
93
                $lastaccess = date('d/m/Y h:i a', $timecreated);
-
 
94
            }
-
 
95
            
-
 
96
            
-
 
Línea -... Línea 92...
-
 
92
                $lastaccess = date('d/m/Y h:i a', $timecreated);
97
            
93
            }
-
 
94
 
-
 
95
 
-
 
96
 
98
            $miProgreso = number_format(progress::get_course_progress_percentage($course),2); // Progreso por curso
97
            $miProgreso = number_format(progress::get_course_progress_percentage($course), 2); // Progreso por curso
99
 
98
 
100
            
99
 
101
            $first_section = 0;
100
            $first_section = 0;
102
            $sections = $DB->get_records('course_sections', ['course' => $course->id], 'section ASC', 'id,name,section,sequence,visible');
-
 
103
            
101
            $sections = $DB->get_records('course_sections', ['course' => $course->id], 'section ASC', 'id,name,section,sequence,visible');
104
            foreach($sections as $section)
102
 
105
            {
103
            foreach ($sections as $section) {
106
                if(!empty($section->section)) {
104
                if (!empty($section->section)) {
107
                    $first_section = $section->id;
105
                    $first_section = $section->id;
108
                    break;
106
                    break;
109
                }
107
                }
110
            }
108
            }
111
            $course_context = context_course::instance($course->id);
109
            $course_context = context_course::instance($course->id);
112
            $roles = get_user_roles($course_context, $USER->id, true);
110
            $roles = get_user_roles($course_context, $USER->id, true);
113
            
111
 
114
            $completion_edit_curso = false;
112
            $completion_edit_curso = false;
115
            foreach ($roles as $role) {
113
            foreach ($roles as $role) {
116
                if ($role->shortname == 'companydepartmentmanager' || $role->shortname == 'companycoursenoneditor') {
114
                if ($role->shortname == 'companydepartmentmanager' || $role->shortname == 'companycoursenoneditor') {
117
                    $completion_edit_curso  = true;
115
                    $completion_edit_curso  = true;
118
                    break;
116
                    break;
119
                }
117
                }
120
            }
118
            }
121
            
119
 
122
            if (has_capability('moodle/course:manageactivities', $course_context, $USER->id) || has_capability('moodle/course:viewhiddenactivities', $course_context, $USER->id) || $completion_edit_curso) {
120
            if (has_capability('moodle/course:manageactivities', $course_context, $USER->id) || has_capability('moodle/course:viewhiddenactivities', $course_context, $USER->id) || $completion_edit_curso) {
123
                $editurl = $CFG->wwwroot . '/course/view.php?id='.$course->id.'&notifyeditingon=1';
121
                $editurl = $CFG->wwwroot . '/course/view.php?id=' . $course->id . '&notifyeditingon=1';
124
                
122
 
125
                //$editurl = $CFG->wwwroot . '/course/edit.php?id=' . $course->id;
123
                //$editurl = $CFG->wwwroot . '/course/edit.php?id=' . $course->id;
126
            } else {
124
            } else {
127
                $editurl = '';
125
                $editurl = '';
128
            }
126
            }
129
            
127
 
130
            
128
 
131
            
129
 
132
            $modules = get_fast_modinfo($course->id)->get_cms();
130
            $modules = get_fast_modinfo($course->id)->get_cms();
133
            
131
 
134
            
132
 
135
            
-
 
136
            $linkurl = '';
133
 
137
            foreach ($modules as $module)
134
            $linkurl = '';
138
            {
135
            foreach ($modules as $module) {
139
                
136
 
140
                
137
 
141
                
138
 
142
                
139
 
143
                //print "!".$module->uservisible ."||". $module->is_stealth() ."||". $module->url ."||". $module->section."<br>";
140
                //print "!".$module->uservisible ."||". $module->is_stealth() ."||". $module->url ."||". $module->section."<br>";
144
                if (!$module->uservisible || $module->is_stealth() || empty($module->url) || empty($module->section)) {
141
                if (!$module->uservisible || $module->is_stealth() || empty($module->url) || empty($module->section)) {
145
                    continue;
142
                    continue;
146
                }
143
                }
147
                
144
 
148
                if($module->section == $first_section || $completion_edit_curso) {
145
                if ($module->section == $first_section || $completion_edit_curso) {
149
                    
146
 
150
                    
147
 
151
                    
148
 
152
                    
149
 
153
                    
150
 
154
                    $linkurl =  new moodle_url($module->url, array('forceview' => 1));
151
                    $linkurl =  new moodle_url($module->url, array('forceview' => 1));
155
                    //print_r($linkurl);
152
                    //print_r($linkurl);
156
                    //var_dump($linkurl);
153
                    //var_dump($linkurl);
157
                    break;
154
                    break;
158
                }
155
                }
159
            }
156
            }
160
            /*
157
            /*
161
            if( $completion_edit_curso){
158
            if( $completion_edit_curso){
162
                $linkurl = $CFG->wwwroot . '/course/view.php?id=' . $course->id;
159
                $linkurl = $CFG->wwwroot . '/course/view.php?id=' . $course->id;
163
            }*/
160
            }*/
164
            
161
 
165
            $summary = trim(strip_tags($course->summary));
162
            $summary = trim(strip_tags($course->summary));
166
            
163
 
167
            if(empty($summary)) {
164
            if (empty($summary)) {
168
                $summary = `<p></p>`;
165
                $summary = `<p></p>`;
169
            } else if(strlen($summary) > 80) {
166
            } else if (strlen($summary) > 80) {
170
                
167
 
171
                $summary =  substr($summary, 0, 80) . '...';
168
                $summary =  substr($summary, 0, 80) . '...';
172
            } 
169
            }
173
            
170
 
174
            $courses[] = [
171
            $courses[] = [
175
                
172
 
176
                'coursecategory' => $category->name,
173
                'coursecategory' => $category->name,
177
                'courseimage' => $image,
174
                'courseimage' => $image,
Línea 191... Línea 188...
191
                'summaryformat' => $course->summaryformat,
188
                'summaryformat' => $course->summaryformat,
192
                'timeaccess' => $lastaccess,
189
                'timeaccess' => $lastaccess,
193
                'viewurl' => $linkurl,
190
                'viewurl' => $linkurl,
194
                'editurl' => $editurl,
191
                'editurl' => $editurl,
195
                'visible' => true,
192
                'visible' => true,
196
                
193
 
197
            ];
194
            ];
198
            
-
 
199
            
-
 
200
        }
195
        }
201
        
196
 
202
        $data = [
197
        $data = [
203
            'courses' => $courses 
198
            'courses' => $courses
204
        ]; 
199
        ];
205
        
200
 
206
        $cards = $OUTPUT->render_from_template('block_cursos_recientes_ajax/cards', $data);
201
        $cards = $OUTPUT->render_from_template('block_cursos_recientes_ajax/cards', $data);
207
        
202
 
Línea 208... Línea 203...
208
 
203
 
209
        return json_encode(['success' => true, 'search_text' => $search_text, 'category_id' => $category_id,  'cards' => $cards]);
204
        return json_encode(['success' => true, 'search_text' => $search_text, 'category_id' => $category_id,  'cards' => $cards]);
210
    }
205
    }
Línea 211... Línea 206...
211
    
206
 
212
 
207
 
213
    public static function get_listado_de_cursos_recientes_returns()
208
    public static function get_listado_de_cursos_recientes_returns()
214
    {
-
 
215
        return new \external_value(PARAM_RAW, 'The updated JSON output');
209
    {
216
 
-
 
217
    }
-
 
218
 
-
 
219
    
-
 
220
    
-
 
221
    
-
 
222
    
-
 
223
    
-
 
224
    
-
 
225
    
210
        return new \external_value(PARAM_RAW, 'The updated JSON output');
-
 
211
    }