1<?php
2
3// This file defines everything related to frontpage
4
5if (!during_initial_install()) { //do not use during installation
6    $frontpagecontext = context_course::instance(SITEID);
7
8    if ($hassiteconfig or has_any_capability(array(
9            'moodle/course:update',
10            'moodle/role:assign',
11            'moodle/restore:restorecourse',
12            'moodle/backup:backupcourse',
13            'moodle/course:managefiles',
14            'moodle/question:add',
15            'moodle/question:editmine',
16            'moodle/question:editall',
17            'moodle/question:viewmine',
18            'moodle/question:viewall',
19            'moodle/question:movemine',
20            'moodle/question:moveall'), $frontpagecontext)) {
21
22        // "frontpage" settingpage
23        $temp = new admin_settingpage('frontpagesettings', new lang_string('frontpagesettings','admin'), 'moodle/course:update', false, $frontpagecontext);
24        $temp->add(new admin_setting_sitesettext('fullname', new lang_string('fullsitename'), '', NULL)); // no default
25        $temp->add(new admin_setting_sitesettext('shortname', new lang_string('shortsitename'), '', NULL)); // no default
26        $temp->add(new admin_setting_special_frontpagedesc());
27        $temp->add(new admin_setting_courselist_frontpage(false)); // non-loggedin version of the setting (that's what the parameter is for :) )
28        $temp->add(new admin_setting_courselist_frontpage(true)); // loggedin version of the setting
29
30        $options = array();
31        $options[] = new lang_string('unlimited');
32        for ($i=1; $i<100; $i++) {
33            $options[$i] = $i;
34        }
35        $temp->add(new admin_setting_configselect('maxcategorydepth', new lang_string('configsitemaxcategorydepth','admin'), new lang_string('configsitemaxcategorydepthhelp','admin'), 2, $options));
36
37        $temp->add(new admin_setting_configtext('frontpagecourselimit', new lang_string('configfrontpagecourselimit','admin'), new lang_string('configfrontpagecourselimithelp','admin'), 200, PARAM_INT));
38
39        $temp->add(new admin_setting_sitesetcheckbox('numsections', new lang_string('sitesection'), new lang_string('sitesectionhelp','admin'), 1));
40        $temp->add(new admin_setting_sitesetselect('newsitems', new lang_string('newsitemsnumber'), '', 3,
41             array('0' => '0',
42                   '1' => '1',
43                   '2' => '2',
44                   '3' => '3',
45                   '4' => '4',
46                   '5' => '5',
47                   '6' => '6',
48                   '7' => '7',
49                   '8' => '8',
50                   '9' => '9',
51                   '10' => '10')));
52        $temp->add(new admin_setting_configtext('commentsperpage', new lang_string('commentsperpage', 'admin'), '', 15, PARAM_INT));
53
54        // front page default role
55        $options = array(0=>new lang_string('none')); // roles to choose from
56        $defaultfrontpageroleid = 0;
57        $roles = role_fix_names(get_all_roles(), null, ROLENAME_ORIGINALANDSHORT);
58        foreach ($roles as $role) {
59            if (empty($role->archetype) or $role->archetype === 'guest' or $role->archetype === 'frontpage' or $role->archetype === 'student') {
60                $options[$role->id] = $role->localname;
61                if ($role->archetype === 'frontpage' && !$defaultfrontpageroleid) {
62                    $defaultfrontpageroleid = $role->id;
63                }
64            }
65        }
66        if ($defaultfrontpageroleid and (!isset($CFG->defaultfrontpageroleid) or $CFG->defaultfrontpageroleid)) {
67            //frotpage role may not exist in old upgraded sites
68            unset($options[0]);
69        }
70        $temp->add(new admin_setting_configselect('defaultfrontpageroleid', new lang_string('frontpagedefaultrole', 'admin'), '', $defaultfrontpageroleid, $options));
71
72        $ADMIN->add('frontpage', $temp);
73    }
74}
75