Proyectos de Subversion Moodle

Rev

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

Rev 1 Rev 1441
Línea 501... Línea 501...
501
    public function export_for_zero_state_template(renderer_base $output) {
501
    public function export_for_zero_state_template(renderer_base $output) {
502
        global $CFG, $DB;
502
        global $CFG, $DB;
Línea 503... Línea 503...
503
 
503
 
Línea -... Línea 504...
-
 
504
        $nocoursesimg = $output->image_url('courses', 'block_myoverview');
504
        $nocoursesimg = $output->image_url('courses', 'block_myoverview');
505
 
505
 
506
        $buttons = [];
-
 
507
        $coursecat = \core_course_category::user_top();
506
        $coursecat = \core_course_category::user_top();
508
        if ($coursecat) {
507
        if ($coursecat) {
509
            // Request a course button.
508
            $category = \core_course_category::get_nearest_editable_subcategory($coursecat, ['moodle/course:request']);
-
 
509
            if ($category && $category->can_request_course()) {
510
            $category = \core_course_category::get_nearest_editable_subcategory($coursecat, ['moodle/course:request']);
510
                // Add Request a course button.
511
            if ($category && $category->can_request_course()) {
511
                $button = new \single_button(
512
                $requestbutton = new \single_button(
512
                    new \moodle_url('/course/request.php', ['category' => $category->id]),
513
                    new \moodle_url('/course/request.php', ['category' => $category->id]),
513
                    get_string('requestcourse'),
514
                    get_string('requestcourse'),
514
                    'post',
515
                    'post',
-
 
516
                    \single_button::BUTTON_PRIMARY
515
                    \single_button::BUTTON_PRIMARY
517
                );
516
                );
518
                $buttons[] = $requestbutton->export_for_template($output);
-
 
519
                return $this->generate_zero_state_data(
-
 
520
                    $nocoursesimg,
517
                return $this->generate_zero_state_data(
521
                    $buttons,
518
                    $nocoursesimg,
522
                    [
-
 
523
                        'title' => 'zero_request_title',
519
                    [$button->export_for_template($output)],
524
                        'intro' => ($CFG->coursecreationguide ? 'zero_request_intro' : 'zero_nocourses_intro'),
520
                    ['title' => 'zero_request_title', 'intro' => 'zero_request_intro']
525
                    ],
Línea 521... Línea 526...
521
                );
526
                );
522
            }
527
            }
523
 
528
 
524
            $totalcourses = $DB->count_records_select('course', 'category > 0');
529
            $totalcourses = $DB->count_records_select('course', 'category > 0');
525
            if (!$totalcourses && ($category = \core_course_category::get_nearest_editable_subcategory($coursecat, ['create']))) {
530
            if ($coursecat) {
526
                // Add Quickstart guide and Create course buttons.
531
                // Manage courses or categories button.
-
 
532
                $managebuttonname = get_string('managecategories');
527
                $quickstarturl = $CFG->coursecreationguide;
533
                if ($totalcourses) {
528
                if ($quickstarturl) {
534
                    $managebuttonname = get_string('managecourses');
-
 
535
                }
529
                    $quickstartbutton = new \single_button(
536
                if ($categorytomanage = \core_course_category::get_nearest_editable_subcategory($coursecat, ['manage'])) {
530
                        new \moodle_url($quickstarturl, ['lang' => current_language()]),
537
                    $managebutton = new \single_button(
531
                        get_string('viewquickstart', 'block_myoverview'),
538
                        new \moodle_url('/course/management.php', ['category' => $categorytomanage->id]),
532
                        'get',
539
                        $managebuttonname,
-
 
540
                    );
Línea -... Línea 541...
-
 
541
                    $buttons[] = $managebutton->export_for_template($output);
-
 
542
                }
533
                    );
543
            }
534
                    $buttons = [$quickstartbutton->export_for_template($output)];
544
 
535
                }
545
            // Create course button.
536
 
546
            if ($category = \core_course_category::get_nearest_editable_subcategory($coursecat, ['create'])) {
537
                $createbutton = new \single_button(
547
                $createbutton = new \single_button(
538
                    new \moodle_url('/course/edit.php', ['category' => $category->id]),
548
                    new \moodle_url('/course/edit.php', ['category' => $category->id]),
539
                    get_string('createcourse', 'block_myoverview'),
549
                    get_string('createcourse', 'block_myoverview'),
540
                    'post',
-
 
541
                    \single_button::BUTTON_PRIMARY
-
 
542
                );
-
 
543
                $buttons[] = $createbutton->export_for_template($output);
-
 
544
                return $this->generate_zero_state_data(
-
 
545
                    $nocoursesimg,
-
 
Línea 546... Línea -...
546
                    $buttons,
-
 
547
                    ['title' => 'zero_nocourses_title', 'intro' => 'zero_nocourses_intro']
-
 
548
                );
-
 
549
            }
-
 
550
 
-
 
551
            if ($categorytocreate = \core_course_category::get_nearest_editable_subcategory($coursecat, ['create'])) {
-
 
552
                $createbutton = new \single_button(
-
 
553
                    new \moodle_url('/course/edit.php', ['category' => $categorytocreate->id]),
-
 
554
                    get_string('createcourse', 'block_myoverview'),
-
 
555
                    'post',
-
 
556
                    \single_button::BUTTON_PRIMARY
-
 
557
                );
-
 
558
                $buttons = [$createbutton->export_for_template($output)];
-
 
559
                if ($categorytomanage = \core_course_category::get_nearest_editable_subcategory($coursecat, ['manage'])) {
-
 
560
                    // Add a Manage course button.
550
                    'post',
561
                    $managebutton = new \single_button(
551
                    \single_button::BUTTON_PRIMARY,
562
                        new \moodle_url('/course/management.php', ['category' => $categorytomanage->id]),
-
 
563
                        get_string('managecourses')
-
 
564
                    );
552
                );
565
                    $buttons[] = $managebutton->export_for_template($output);
-
 
566
                    return $this->generate_zero_state_data(
-
 
567
                        $nocoursesimg,
553
                $buttons[] = $createbutton->export_for_template($output);
568
                        array_reverse($buttons),
554
 
569
                        ['title' => 'zero_default_title', 'intro' => 'zero_default_intro']
555
                $title = $totalcourses ? 'zero_default_title' : 'zero_nocourses_title';
570
                    );
556
                $intro = $totalcourses ? 'zero_default_intro' :
571
                }
557
                        ($CFG->coursecreationguide ? 'zero_request_intro' : 'zero_nocourses_intro');
572
                return $this->generate_zero_state_data(
558
                return $this->generate_zero_state_data(
-
 
559
                    $nocoursesimg,
573
                    $nocoursesimg,
560
                    $buttons,
Línea 574... Línea 561...
574
                    $buttons,
561
                    ['title' => $title, 'intro' => $intro],
575
                    ['title' => 'zero_default_title', 'intro' => 'zero_default_intro']
562
                );
576
                );
563
            }
577
            }
564
 
578
        }
565
        }
579
 
566
 
Línea 580... Línea 567...
580
        return $this->generate_zero_state_data(
567
        return $this->generate_zero_state_data(
Línea 594... Línea 581...
594
     */
581
     */
595
    private function generate_zero_state_data(\moodle_url $imageurl, array $buttons, array $strings) {
582
    private function generate_zero_state_data(\moodle_url $imageurl, array $buttons, array $strings) {
596
        global $CFG;
583
        global $CFG;
597
        // Documentation data.
584
        // Documentation data.
598
        $dochref = new \moodle_url($CFG->docroot, ['lang' => current_language()]);
585
        $dochref = new \moodle_url($CFG->docroot, ['lang' => current_language()]);
599
        $quickstart = new \moodle_url($CFG->coursecreationguide, ['lang' => current_language()]);
-
 
600
        $docparams = [
586
        $docparams = [
601
            'quickhref' => $quickstart->out(),
-
 
602
            'quicktitle' => get_string('viewquickstart', 'block_myoverview'),
-
 
603
            'quicktarget' => '_blank',
-
 
604
            'dochref' => $dochref->out(),
587
            'dochref' => $dochref->out(),
605
            'doctitle' => get_string('documentation'),
588
            'doctitle' => get_string('documentation'),
606
            'doctarget' => $CFG->doctonewwindow ? '_blank' : '_self',
589
            'doctarget' => $CFG->doctonewwindow ? '_blank' : '_self',
607
        ];
590
        ];
-
 
591
        if ($CFG->coursecreationguide) {
-
 
592
            // Add quickstart guide link.
-
 
593
            $quickstart = new \moodle_url($CFG->coursecreationguide, ['lang' => current_language()]);
-
 
594
            $docparams += [
-
 
595
                'quickhref' => $quickstart->out(),
-
 
596
                'quicktitle' => get_string('viewquickstart', 'block_myoverview'),
-
 
597
                'quicktarget' => '_blank',
-
 
598
            ];
-
 
599
        }
608
        return [
600
        return [
609
            'nocoursesimg' => $imageurl->out(),
601
            'nocoursesimg' => $imageurl->out(),
610
            'title' => ($strings['title']) ? get_string($strings['title'], 'block_myoverview') : '',
602
            'title' => ($strings['title']) ? get_string($strings['title'], 'block_myoverview') : '',
611
            'intro' => ($strings['intro']) ? get_string($strings['intro'], 'block_myoverview', $docparams) : '',
603
            'intro' => ($strings['intro']) ? get_string($strings['intro'], 'block_myoverview', $docparams) : '',
612
            'buttons' => $buttons,
604
            'buttons' => $buttons,