Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.

Differences Between: [Versions 310 and 402] [Versions 39 and 402]

   1  <?php
   2  
   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/>.
  17  
  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  */
  27  
  28  global $SITE;
  29  
  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))) {
  39  
  40      require_once($CFG->libdir . '/badgeslib.php');
  41  
  42      $globalsettings = new admin_settingpage('badgesettings', new lang_string('badgesettings', 'badges'),
  43              array('moodle/badges:manageglobalsettings'), empty($CFG->enablebadges));
  44  
  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));
  49  
  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));
  54  
  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));
  59  
  60      $globalsettings->add(new admin_setting_configcheckbox('badges_allowcoursebadges',
  61              new lang_string('allowcoursebadges', 'badges'),
  62              new lang_string('allowcoursebadges_desc', 'badges'), 1));
  63  
  64      $globalsettings->add(new admin_setting_configcheckbox('badges_allowexternalbackpack',
  65              new lang_string('allowexternalbackpack', 'badges'),
  66              new lang_string('allowexternalbackpack_desc', 'badges'), 1));
  67  
  68      $ADMIN->add('badges', $globalsettings);
  69  
  70      $ADMIN->add('badges',
  71          new admin_externalpage('managebadges',
  72              new lang_string('managebadges', 'badges'),
  73              new moodle_url('/badges/index.php', array('type' => BADGE_TYPE_SITE)),
  74              array(
  75                  'moodle/badges:viewawarded',
  76                  'moodle/badges:createbadge',
  77                  'moodle/badges:awardbadge',
  78                  'moodle/badges:configurecriteria',
  79                  'moodle/badges:configuremessages',
  80                  'moodle/badges:configuredetails',
  81                  'moodle/badges:deletebadge'
  82              ),
  83              empty($CFG->enablebadges)
  84          )
  85      );
  86  
  87      $ADMIN->add('badges',
  88          new admin_externalpage('newbadge',
  89              new lang_string('newbadge', 'badges'),
  90              new moodle_url('/badges/newbadge.php', array('type' => BADGE_TYPE_SITE)),
  91              array('moodle/badges:createbadge'), empty($CFG->enablebadges)
  92          )
  93      );
  94  
  95      $ADMIN->add('badges',
  96          new admin_externalpage('managebackpacks',
  97              new lang_string('managebackpacks', 'badges'),
  98              new moodle_url('/badges/backpacks.php'),
  99              array('moodle/badges:manageglobalsettings'), empty($CFG->enablebadges) || empty($CFG->badges_allowexternalbackpack)
 100          )
 101      );
 102  }