Merge branch 'MDL-68912' of https://github.com/rlorenzo/moodle
[moodle.git] / admin / settings / badges.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19 * This file defines settingpages and externalpages under the "badges" section
20 *
21 * @package    core
22 * @subpackage badges
23 * @copyright  2012 onwards Totara Learning Solutions Ltd {@link http://www.totaralms.com/}
24 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25 * @author     Yuliya Bozhko <yuliya.bozhko@totaralms.com>
26 */
28 global $SITE;
30 if (($hassiteconfig || has_any_capability(array(
31             'moodle/badges:viewawarded',
32             'moodle/badges:createbadge',
33             'moodle/badges:manageglobalsettings',
34             'moodle/badges:awardbadge',
35             'moodle/badges:configurecriteria',
36             'moodle/badges:configuremessages',
37             'moodle/badges:configuredetails',
38             'moodle/badges:deletebadge'), $systemcontext))) {
40     require_once($CFG->libdir . '/badgeslib.php');
42     $globalsettings = new admin_settingpage('badgesettings', new lang_string('badgesettings', 'badges'),
43             array('moodle/badges:manageglobalsettings'), empty($CFG->enablebadges));
45     $globalsettings->add(new admin_setting_configtext('badges_defaultissuername',
46             new lang_string('defaultissuername', 'badges'),
47             new lang_string('defaultissuername_desc', 'badges'),
48             $SITE->fullname ? $SITE->fullname : $SITE->shortname, PARAM_TEXT));
50     $globalsettings->add(new admin_setting_configtext('badges_defaultissuercontact',
51             new lang_string('defaultissuercontact', 'badges'),
52             new lang_string('defaultissuercontact_desc', 'badges'),
53             get_config('moodle','supportemail'), PARAM_EMAIL));
55     $globalsettings->add(new admin_setting_configtext('badges_badgesalt',
56             new lang_string('badgesalt', 'badges'),
57             new lang_string('badgesalt_desc', 'badges'),
58             'badges' . $SITE->timecreated, PARAM_ALPHANUM));
60     $backpacks = badges_get_site_backpacks();
61     $choices = array();
62     foreach ($backpacks as $backpack) {
63         $choices[$backpack->id] = $backpack->backpackweburl;
64     }
66     $globalsettings->add(new admin_setting_configcheckbox('badges_allowcoursebadges',
67             new lang_string('allowcoursebadges', 'badges'),
68             new lang_string('allowcoursebadges_desc', 'badges'), 1));
70     $ADMIN->add('badges', $globalsettings);
72     $ADMIN->add('badges',
73         new admin_externalpage('managebadges',
74             new lang_string('managebadges', 'badges'),
75             new moodle_url('/badges/index.php', array('type' => BADGE_TYPE_SITE)),
76             array(
77                 'moodle/badges:viewawarded',
78                 'moodle/badges:createbadge',
79                 'moodle/badges:awardbadge',
80                 'moodle/badges:configurecriteria',
81                 'moodle/badges:configuremessages',
82                 'moodle/badges:configuredetails',
83                 'moodle/badges:deletebadge'
84             ),
85             empty($CFG->enablebadges)
86         )
87     );
89     $ADMIN->add('badges',
90         new admin_externalpage('newbadge',
91             new lang_string('newbadge', 'badges'),
92             new moodle_url('/badges/newbadge.php', array('type' => BADGE_TYPE_SITE)),
93             array('moodle/badges:createbadge'), empty($CFG->enablebadges)
94         )
95     );
96     $backpacksettings = new admin_settingpage('backpacksettings', new lang_string('backpacksettings', 'badges'),
97             array('moodle/badges:manageglobalsettings'), empty($CFG->enablebadges));
99     $backpacksettings->add(new admin_setting_configcheckbox('badges_allowexternalbackpack',
100             new lang_string('allowexternalbackpack', 'badges'),
101             new lang_string('allowexternalbackpack_desc', 'badges'), 1));
103     $bp = $DB->get_record('badge_external_backpack', ['backpackweburl' => BADGRIO_BACKPACKWEBURL]);
104     $backpacksettings->add(new admin_setting_configselect('badges_site_backpack',
105             new lang_string('sitebackpack', 'badges'),
106             new lang_string('sitebackpack_help', 'badges'),
107             $bp->id, $choices));
109     $warning = badges_verify_site_backpack();
110     if (!empty($warning)) {
111         $backpacksettings->add(new admin_setting_description('badges_site_backpack_verify',
112             new lang_string('sitebackpackverify', 'badges'),
113             $warning));
114     }
116     $ADMIN->add('badges', $backpacksettings);
118     $ADMIN->add('badges',
119         new admin_externalpage('managebackpacks',
120             new lang_string('managebackpacks', 'badges'),
121             new moodle_url('/badges/backpacks.php'),
122             array('moodle/badges:manageglobalsettings'), empty($CFG->enablebadges) || empty($CFG->badges_allowexternalbackpack)
123         )
124     );