Proyectos de Subversion Moodle

Rev

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

Rev 1060 Rev 1061
Línea 92... Línea 92...
92
    public static function get_cursos_catalogo_parameters()
92
    public static function get_cursos_catalogo_parameters()
93
    {
93
    {
94
        return new \external_function_parameters([
94
        return new \external_function_parameters([
95
            'category_id' => new \external_value(PARAM_INT, 'Categoría de los Cursos', VALUE_DEFAULT, 0),
95
            'category_id' => new \external_value(PARAM_INT, 'Categoría de los Cursos', VALUE_DEFAULT, 0),
96
            'search_text' => new \external_value(PARAM_ALPHANUM, 'Palabra de busqueda', VALUE_DEFAULT, ' '),
96
            'search_text' => new \external_value(PARAM_ALPHANUM, 'Palabra de busqueda', VALUE_DEFAULT, ' '),
-
 
97
            'page' => new \external_value(PARAM_INT, 'Número de página', VALUE_DEFAULT, 1),
-
 
98
            'perpage' => new \external_value(PARAM_INT, 'Cursos por página', VALUE_DEFAULT, 10),
97
        ]);
99
        ]);
98
    }
100
    }
Línea 99... Línea 101...
99
 
101
 
100
    public static function get_cursos_catalogo($category_id, $search_text)
102
    public static function get_cursos_catalogo($category_id, $search_text, $page, $perpage)
Línea 101... Línea -...
101
    {
-
 
102
 
103
    {
Línea -... Línea 104...
-
 
104
 
-
 
105
        global $USER, $DB, $CFG, $OUTPUT, $PAGE;
-
 
106
 
-
 
107
        $params = self::validate_parameters(
Línea -... Línea 108...
-
 
108
            self::get_cursos_catalogo_parameters(),
-
 
109
            compact('category_id', 'search_text', 'page', 'perpage')
Línea 103... Línea 110...
103
 
110
        );
104
        global $USER, $DB, $CFG, $OUTPUT, $PAGE;
111
 
Línea 105... Línea 112...
105
 
112
        $page = max(1, $params['page']);
Línea 121... Línea 128...
121
        $records = $DB->get_records('course_categories', ['visible' => 1], 'sortorder, name');
128
        $records = $DB->get_records('course_categories', ['visible' => 1], 'sortorder, name');
122
        foreach ($records as $record) {
129
        foreach ($records as $record) {
123
            $all_categories[$record->id] = $record;
130
            $all_categories[$record->id] = $record;
124
        }
131
        }
Línea 125... Línea -...
125
 
-
 
126
 
132
 
127
        $categories_ids = [];
133
        $categories_ids = [];
128
        $category_filter_active = false;
134
        $category_filter_active = false;
129
        if ($category_id) {
135
        if ($category_id) {
Línea 130... Línea 136...
130
            $category_filter_active = true;
136
            $category_filter_active = true;
Línea 131... Línea -...
131
 
-
 
132
            $recordLevel0 = $DB->get_record('course_categories', ['id' => $category_id]);
137
 
133
 
138
            $recordLevel0 = $DB->get_record('course_categories', ['id' => $category_id]);
Línea 134... Línea -...
134
 
-
 
135
            if ($recordLevel0) {
-
 
136
                array_push($categories_ids, $recordLevel0->id);
139
 
Línea 137... Línea 140...
137
 
140
            if ($recordLevel0) {
Línea 138... Línea 141...
138
 
141
                array_push($categories_ids, $recordLevel0->id);
Línea 154... Línea 157...
154
                    }
157
                    }
155
                }
158
                }
156
            }
159
            }
157
        }
160
        }
Línea 158... Línea -...
158
 
-
 
159
 
-
 
160
 
161
 
161
        $course_ids                 = [];
162
        $course_ids                 = [];
162
        $course_category_ids        = [];
163
        $course_category_ids        = [];
Línea 163... Línea -...
163
        $courseAvailableForAutoRol  = [];
-
 
164
 
164
        $courseAvailableForAutoRol  = [];
165
 
165
 
166
        if ($is_admin) {
166
        if ($is_admin) {
167
            $mycourses = get_courses();
167
            $mycourses = get_courses();
168
        } else {
168
        } else {
Línea 169... Línea -...
169
            $mycourses  = enrol_get_users_courses($USER->id);
-
 
170
        }
-
 
171
 
169
            $mycourses  = enrol_get_users_courses($USER->id);
172
 
170
        }
173
 
171
 
174
        foreach ($mycourses as $course) {
172
        foreach ($mycourses as $course) {
Línea 180... Línea 178...
180
                if (stripos($course->fullname, $search_text) === false) {
178
                if (stripos($course->fullname, $search_text) === false) {
181
                    continue;
179
                    continue;
182
                }
180
                }
183
            }
181
            }
Línea 184... Línea -...
184
 
-
 
185
 
182
 
186
            if ($category_filter_active) {
183
            if ($category_filter_active) {
187
                if (!in_array($course->category, $categories_ids)) {
184
                if (!in_array($course->category, $categories_ids)) {
188
                    continue;
185
                    continue;
189
                }
186
                }
Línea 190... Línea -...
190
            }
-
 
191
 
187
            }
192
 
188
 
Línea 193... Línea 189...
193
            array_push($course_ids, $course->id);
189
            array_push($course_ids, $course->id);
194
        }
190
        }
Línea 214... Línea 210...
214
 
210
 
215
            array_push($course_ids, $course->id);
211
            array_push($course_ids, $course->id);
216
            array_push($courseAvailableForAutoRol, $course->id);
212
            array_push($courseAvailableForAutoRol, $course->id);
Línea 217... Línea -...
217
        }
-
 
218
 
-
 
219
 
-
 
220
 
-
 
221
 
-
 
222
 
213
        }
223
 
214
 
224
        $courses = [];
215
        $courses = [];
Línea 225... Línea 216...
225
        foreach ($course_ids as $course_id) {
216
        foreach ($course_ids as $course_id) {
Línea 233... Línea 224...
233
 
224
 
234
 
225
 
Línea 235... Línea -...
235
                array_push($course_category_ids, $course->category);
-
 
236
            }
226
                array_push($course_category_ids, $course->category);
237
 
227
            }
238
 
228
 
239
            $image = $url_noimage;
229
            $image = $url_noimage;
240
            foreach ($coreCourseList->get_course_overviewfiles() as $file) {
230
            foreach ($coreCourseList->get_course_overviewfiles() as $file) {
Línea 245... Línea 235...
245
                }
235
                }
246
            }
236
            }
Línea 247... Línea 237...
247
 
237
 
248
            $lastaccess = null;
238
            $lastaccess = null;
249
            $sql = "select timecreated  from {logstore_standard_log} where courseid  = :courseid and userid  = :userid " .
239
            $sql = "select timecreated  from {logstore_standard_log} where courseid  = :courseid and userid  = :userid " .
Línea 250... Línea 240...
250
                "order by id desc limit 1 ";
240
                "order by id desc limit {$perpage} ";
251
 
241
 
Línea 252... Línea 242...
252
            $timecreated = $DB->get_field_sql($sql,  array('courseid' => $course->id, 'userid' => $userid));
242
            $timecreated = $DB->get_field_sql($sql,  array('courseid' => $course->id, 'userid' => $userid));
253
            if ($timecreated) {
243
            if ($timecreated) {
Línea 254... Línea 244...
254
 
244
 
255
                $lastaccess = date('d/m/Y h:i a', $timecreated);
245
                $lastaccess = date('d/m/Y h:i a', $timecreated);
Línea 256... Línea 246...
256
            }
246
            }
257
 
247
 
258
            $first_section = 0;
248
            $first_section = 0;
259
            $sections = $DB->get_records('course_sections', ['course' => $course->id], 'section ASC', 'id,name,section,sequence,visible');
249
            $sections = $DB->get_records('course_sections', ['course' => $course->id], 'section DESC', 'id,name,section,sequence,visible');
Línea 280... Línea 270...
280
                $editurl = $CFG->wwwroot . '/course/view.php?id=' . $course->id . '&notifyeditingon=1';
270
                $editurl = $CFG->wwwroot . '/course/view.php?id=' . $course->id . '&notifyeditingon=1';
281
            } else {
271
            } else {
282
                $editurl = '';
272
                $editurl = '';
283
            }
273
            }
Línea 284... Línea -...
284
 
-
 
285
 
274
 
Línea 286... Línea 275...
286
            $modules = get_fast_modinfo($course->id)->get_cms();
275
            $modules = get_fast_modinfo($course->id)->get_cms();
287
 
276
 
288
            $linkurl = '';
277
            $linkurl = '';
Línea 310... Línea 299...
310
                $autoenrol = 'yes';
299
                $autoenrol = 'yes';
311
            } else {
300
            } else {
312
                $autoenrol = '';
301
                $autoenrol = '';
313
            }
302
            }
Línea 314... Línea -...
314
 
-
 
315
 
303
 
316
            $category = $all_categories[$course->category];
304
            $category = $all_categories[$course->category];
317
            if ($category->parent) {
305
            if ($category->parent) {
318
                $categoryParent = $all_categories[$category->parent];
306
                $categoryParent = $all_categories[$category->parent];
319
                if ($categoryParent) {
307
                if ($categoryParent) {
Línea 327... Línea 315...
327
            if (strlen($categoryName) > 40) {
315
            if (strlen($categoryName) > 40) {
Línea 328... Línea 316...
328
 
316
 
329
                $categoryName =  substr($categoryName, 0, 40) . '...';
317
                $categoryName =  substr($categoryName, 0, 40) . '...';
Línea 330... Línea -...
330
            }
-
 
331
 
318
            }
332
 
319
 
333
            // echo '<pre>';
320
            // echo '<pre>';
Línea 334... Línea -...
334
            // echo '$categoryName = ' . $categoryName . ' $course->category = ' . $course->category;
-
 
335
            // echo '</pre>';
321
            // echo '$categoryName = ' . $categoryName . ' $course->category = ' . $course->category;
336
 
322
            // echo '</pre>';
337
 
323
 
338
            array_push($courses, [
324
            array_push($courses, [
339
                'courseid' => $course->id,
325
                'courseid' => $course->id,
Línea 357... Línea 343...
357
                'autoenrol' => $autoenrol,
343
                'autoenrol' => $autoenrol,
358
                'visible' => true,
344
                'visible' => true,
359
            ]);
345
            ]);
360
        }
346
        }
Línea -... Línea 347...
-
 
347
 
-
 
348
        $total_courses = count($courses);
-
 
349
        $total_pages = ceil($total_courses / $perpage);
361
 
350
 
362
        usort($courses, function ($a, $b) {
351
        usort($courses, function ($a, $b) {
363
            return $a['fullname'] <=> $b['fullname'];
352
            return $a['fullname'] <=> $b['fullname'];
Línea 364... Línea -...
364
        });
-
 
365
 
-
 
366
 
-
 
367
 
353
        });
368
 
354
 
369
        $categories = [];
355
        $categories = [];
370
        foreach ($course_category_ids as $course_category_id) {
356
        foreach ($course_category_ids as $course_category_id) {
371
            $category = $all_categories[$course_category_id];
357
            $category = $all_categories[$course_category_id];
372
            if ($category) {
358
            if ($category) {
373
                array_push($categories, ['id' => $category->id, 'name' => $category->name]);
359
                array_push($categories, ['id' => $category->id, 'name' => $category->name]);
Línea -... Línea 360...
-
 
360
            }
-
 
361
        }
-
 
362
 
-
 
363
        $pagination = [
-
 
364
            'current_page' => $page,
-
 
365
            'total_pages' => $total_pages,
374
            }
-
 
-
 
366
            'has_previous' => $page > 1,
375
        }
367
            'has_next' => $page < $total_pages,
376
 
-
 
Línea 377... Línea 368...
377
 
368
            'previous_page' => $page > 1 ? $page - 1 : null,
378
 
369
            'next_page' => $page < $total_pages ? $page + 1 : null
-
 
370
        ];
-
 
371
 
379
 
372
        $data = [
Línea 380... Línea 373...
380
 
373
            'courses' => $courses,
Línea 381... Línea 374...
381
        $data = [
374
            'pagination' => $pagination
Línea 389... Línea 382...
389
        ];
382
        ];
Línea 390... Línea 383...
390
 
383
 
Línea -... Línea 384...
-
 
384
        $badges = $OUTPUT->render_from_template('block_cursos_catalogo_ajax/badges', $data);
-
 
385
 
-
 
386
 
-
 
387
        return json_encode(
391
        $badges = $OUTPUT->render_from_template('block_cursos_catalogo_ajax/badges', $data);
388
            [
-
 
389
                'success' => true,
-
 
390
                'search_text' => $search_text,
-
 
391
                'category_id' => $category_id,
-
 
392
                'cards' => $cards,
392
 
393
                'badges' => $badges
Línea 393... Línea 394...
393
 
394
            ]
394
        return json_encode(['success' => true, 'search_text' => $search_text, 'category_id' => $category_id,  'cards' => $cards, 'badges' => $badges]);
395
        );