Proyectos de Subversion Moodle

Rev

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

Rev 1084 Rev 1113
Línea 161... Línea 161...
161
 
161
 
162
        $course_ids                 = [];
162
        $course_ids                 = [];
163
        $course_category_ids        = [];
163
        $course_category_ids        = [];
Línea -... Línea 164...
-
 
164
        $courseAvailableForAutoRol  = [];
-
 
165
 
-
 
166
 
-
 
167
        $total_courses = 0;
-
 
168
        $total_pages = ceil($total_courses / $perpage);
-
 
169
        $searchterms = array();
-
 
170
        array_push($searchterms, $search_text);
-
 
171
        $sort = "c.timeaccess DESC";
-
 
172
        $page = isset($page) ? max(1, min($page, $total_pages)) : 1;
-
 
173
 
-
 
174
        $max_links = 3;
-
 
175
        $start_page = max(1, $page - floor($max_links / 2));
-
 
176
        $end_page = min($total_pages, $start_page + $max_links - 1);
-
 
177
 
-
 
178
        if ($end_page - $start_page + 1 < $max_links) {
-
 
179
            $start_page = max(1, $end_page - $max_links + 1);
-
 
180
        }
-
 
181
 
164
        $courseAvailableForAutoRol  = [];
182
 
165
 
183
 
166
        if ($is_admin) {
184
        if ($is_admin) {
167
            $mycourses = get_courses();
185
            $mycourses = get_courses_search($searchterms, $sort, $page, $perpage, $total_courses);
168
        } else {
186
        } else {
Línea 169... Línea 187...
169
            $mycourses  = enrol_get_users_courses($USER->id);
187
            $mycourses  = enrol_get_users_courses($USER->id);
Línea 219... Línea 237...
219
            if ($course instanceof stdClass) {
237
            if ($course instanceof stdClass) {
220
                $coreCourseList = new core_course_list_element($course);
238
                $coreCourseList = new core_course_list_element($course);
221
            }
239
            }
Línea 222... Línea 240...
222
 
240
 
223
            if (!in_array($course->category, $course_category_ids)) {
-
 
224
 
-
 
225
 
241
            if (!in_array($course->category, $course_category_ids)) {
226
                array_push($course_category_ids, $course->category);
242
                array_push($course_category_ids, $course->category);
Línea 227... Línea 243...
227
            }
243
            }
228
 
244
 
Línea 342... Línea 358...
342
                'autoenrol' => $autoenrol,
358
                'autoenrol' => $autoenrol,
343
                'visible' => true,
359
                'visible' => true,
344
            ]);
360
            ]);
345
        }
361
        }
Línea 346... Línea -...
346
 
-
 
347
        $total_courses = count($courses);
-
 
348
        $total_pages = ceil($total_courses / $perpage);
-
 
349
 
-
 
350
        usort($courses, function ($a, $b) {
-
 
351
            if ($a['timeaccess'] == $b['timeaccess']) {
-
 
352
                return 0;
-
 
353
            }
-
 
354
            return ($a['timeaccess'] > $b['timeaccess']) ? -1 : 1;
-
 
355
        });
362
 
-
 
363
        $categories = [];
356
        $categories = [];
364
 
357
        foreach ($course_category_ids as $course_category_id) {
365
        foreach ($course_category_ids as $course_category_id) {
358
            $category = $all_categories[$course_category_id];
366
            $category = $all_categories[$course_category_id];
359
            if ($category) {
367
            if ($category) {
360
                array_push($categories, ['id' => $category->id, 'name' => $category->name]);
368
                array_push($categories, ['id' => $category->id, 'name' => $category->name]);
361
            }
369
            }
Línea 362... Línea -...
362
        }
-
 
363
 
-
 
364
        // Configuración inicial
-
 
365
        $total_courses = count($courses); // Total de cursos
-
 
366
        $total_pages = ceil($total_courses / $perpage); // Total de páginas
-
 
367
 
-
 
368
        // Validar y calcular la página actual
-
 
369
        $page = isset($page) ? max(1, min($page, $total_pages)) : 1;
-
 
370
 
-
 
371
        // Calcular el offset
-
 
372
        $offset = ($page - 1) * $perpage;
-
 
373
 
-
 
374
        // Extraer los cursos correspondientes a la página actual
-
 
375
        $courses_paginated = array_slice($courses, $offset, $perpage);
-
 
376
 
-
 
377
        // Determinar el rango dinámico de páginas para la navegación
-
 
378
        $max_links = 3; // Número máximo de enlaces visibles
-
 
379
        $start_page = max(1, $page - floor($max_links / 2));
-
 
380
        $end_page = min($total_pages, $start_page + $max_links - 1);
-
 
381
 
-
 
382
        // Ajustar el inicio si no hay suficientes páginas al final
-
 
383
        if ($end_page - $start_page + 1 < $max_links) {
-
 
384
            $start_page = max(1, $end_page - $max_links + 1);
-
 
385
        }
370
        }
386
 
371
 
387
        // Crear el array de navegación con el rango dinámico
372
        // Crear el array de navegación con el rango dinámico
388
        $pagination = [
373
        $pagination = [
389
            'current_page' => $page,
374
            'current_page' => $page,
Línea 400... Línea 385...
400
            }, range($start_page, $end_page))
385
            }, range($start_page, $end_page))
401
        ];
386
        ];
Línea 402... Línea 387...
402
 
387
 
403
        // Preparar los datos para la plantilla
388
        // Preparar los datos para la plantilla
404
        $data = [
389
        $data = [
405
            'courses' => $courses_paginated,
390
            'courses' => $courses,
406
            'pagination' => $pagination
391
            'pagination' => $pagination
Línea 407... Línea 392...
407
        ];
392
        ];