Merge branch 'wip-MDL-26781' of git://github.com/sammarshallou/moodle
[moodle.git] / lib / adminlib.php
index 273867e..ffbd3d2 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -172,7 +171,7 @@ function uninstall_plugin($type, $name) {
     }
 
     if ($type === 'mod') {
-    // perform cleanup tasks specific for activity modules
+        // perform cleanup tasks specific for activity modules
 
         if (!$module = $DB->get_record('modules', array('name' => $name))) {
             print_error('moduledoesnotexist', 'error');
@@ -470,11 +469,11 @@ function set_cron_lock($name, $until, $ignorecurrent=false) {
     }
 
     if (!$ignorecurrent) {
-    // read value from db - other processes might have changed it
+        // read value from db - other processes might have changed it
         $value = $DB->get_field('config', 'value', array('name'=>$name));
 
         if ($value and $value > time()) {
-        //lock active
+            //lock active
             return false;
         }
     }
@@ -631,6 +630,7 @@ function is_dataroot_insecure($fetchtest=false) {
 
 /// CLASS DEFINITIONS /////////////////////////////////////////////////////////
 
+
 /**
  * Interface for anything appearing in the admin tree
  *
@@ -702,6 +702,7 @@ interface part_of_admin_tree {
     public function show_save();
 }
 
+
 /**
  * Interface implemented by any part_of_admin_tree that has children.
  *
@@ -730,6 +731,7 @@ interface parentable_part_of_admin_tree extends part_of_admin_tree {
 
 }
 
+
 /**
  * The object used to represent folders (a.k.a. categories) in the admin tree block.
  *
@@ -882,7 +884,7 @@ class admin_category implements parentable_part_of_admin_tree {
             $parent->children[] = $something;
             if (is_array($this->category_cache) and ($something instanceof admin_category)) {
                 if (isset($this->category_cache[$something->name])) {
-                    debugging('Duplicate admin catefory name: '.$something->name);
+                    debugging('Duplicate admin category name: '.$something->name);
                 } else {
                     $this->category_cache[$something->name] = $something;
                     $something->category_cache =& $this->category_cache;
@@ -890,7 +892,7 @@ class admin_category implements parentable_part_of_admin_tree {
                         // just in case somebody already added subcategories
                         if ($child instanceof admin_category) {
                             if (isset($this->category_cache[$child->name])) {
-                                debugging('Duplicate admin catefory name: '.$child->name);
+                                debugging('Duplicate admin category name: '.$child->name);
                             } else {
                                 $this->category_cache[$child->name] = $child;
                                 $child->category_cache =& $this->category_cache;
@@ -945,6 +947,7 @@ class admin_category implements parentable_part_of_admin_tree {
     }
 }
 
+
 /**
  * Root of admin settings tree, does not have any parent.
  *
@@ -1006,6 +1009,7 @@ class admin_root extends admin_category {
     }
 }
 
+
 /**
  * Links external PHP pages into the admin tree.
  *
@@ -1015,7 +1019,7 @@ class admin_root extends admin_category {
  */
 class admin_externalpage implements part_of_admin_tree {
 
-/** @var string An internal name for this external page. Must be unique amongst ALL part_of_admin_tree objects */
+    /** @var string An internal name for this external page. Must be unique amongst ALL part_of_admin_tree objects */
     public $name;
 
     /** @var string The displayed name for this external page. Usually obtained through get_string(). */
@@ -1035,6 +1039,8 @@ class admin_externalpage implements part_of_admin_tree {
 
     /** @var mixed either string or array of string */
     public $path;
+
+    /** @var array list of visible names of page parents */
     public $visiblepath;
 
     /**
@@ -1150,6 +1156,7 @@ class admin_externalpage implements part_of_admin_tree {
     }
 }
 
+
 /**
  * Used to group a number of admin_setting objects into a page and add them to the admin tree.
  *
@@ -1157,7 +1164,7 @@ class admin_externalpage implements part_of_admin_tree {
  */
 class admin_settingpage implements part_of_admin_tree {
 
-/** @var string An internal name for this external page. Must be unique amongst ALL part_of_admin_tree objects */
+    /** @var string An internal name for this external page. Must be unique amongst ALL part_of_admin_tree objects */
     public $name;
 
     /** @var string The displayed name for this external page. Usually obtained through get_string(). */
@@ -1177,6 +1184,8 @@ class admin_settingpage implements part_of_admin_tree {
 
     /** @var mixed string of paths or array of strings of paths */
     public $path;
+
+    /** @var array list of visible names of page parents */
     public $visiblepath;
 
     /**
@@ -1359,7 +1368,7 @@ class admin_settingpage implements part_of_admin_tree {
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 abstract class admin_setting {
-/** @var string unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins. */
+    /** @var string unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins. */
     public $name;
     /** @var string localised name */
     public $visiblename;
@@ -1447,7 +1456,7 @@ abstract class admin_setting {
     /**
      * Returns the config if possible
      *
-     * @return mixed returns config if successfull else null
+     * @return mixed returns config if successful else null
      */
     public function config_read($name) {
         global $CFG;
@@ -1556,6 +1565,7 @@ abstract class admin_setting {
     /**
      * Function called if setting updated - cleanup, cache reset, etc.
      * @param string $functionname Sets the function name
+     * @return void
      */
     public function set_updatedcallback($functionname) {
         $this->updatedcallback = $functionname;
@@ -1597,18 +1607,20 @@ abstract class admin_setting {
     }
 }
 
+
 /**
  * No setting - just heading and text.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_heading extends admin_setting {
-/**
- * not a setting, just text
- * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
- * @param string $heading heading
- * @param string $information text in box
- */
+
+    /**
+     * not a setting, just text
+     * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
+     * @param string $heading heading
+     * @param string $information text in box
+     */
     public function __construct($name, $heading, $information) {
         $this->nosave = true;
         parent::__construct($name, $heading, $information, '');
@@ -1656,6 +1668,7 @@ class admin_setting_heading extends admin_setting {
     }
 }
 
+
 /**
  * The most flexibly setting, user is typing text
  *
@@ -1663,7 +1676,7 @@ class admin_setting_heading extends admin_setting {
  */
 class admin_setting_configtext extends admin_setting {
 
-/** @var mixed int means PARAM_XXX type, string is a allowed format in regex */
+    /** @var mixed int means PARAM_XXX type, string is a allowed format in regex */
     public $paramtype;
     /** @var int default field size */
     public $size;
@@ -1750,6 +1763,7 @@ class admin_setting_configtext extends admin_setting {
     }
 }
 
+
 /**
  * General text area without html editor.
  *
@@ -1773,6 +1787,7 @@ class admin_setting_configtextarea extends admin_setting_configtext {
         $this->cols = $cols;
         parent::__construct($name, $visiblename, $description, $defaultsetting, $paramtype);
     }
+
     /**
      * Returns an XHTML string for the editor
      *
@@ -1794,6 +1809,7 @@ class admin_setting_configtextarea extends admin_setting_configtext {
     }
 }
 
+
 /**
  * General text area with html editor.
  */
@@ -1814,6 +1830,7 @@ class admin_setting_confightmleditor extends admin_setting_configtext {
         parent::__construct($name, $visiblename, $description, $defaultsetting, $paramtype);
         editors_head_setup();
     }
+
     /**
      * Returns an XHTML string for the editor
      *
@@ -1838,19 +1855,20 @@ class admin_setting_confightmleditor extends admin_setting_configtext {
     }
 }
 
+
 /**
  * Password field, allows unmasking of password
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configpasswordunmask extends admin_setting_configtext {
-/**
- * Constructor
- * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
- * @param string $visiblename localised
- * @param string $description long localised info
- * @param string $defaultsetting default password
- */
+    /**
    * Constructor
    * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
    * @param string $visiblename localised
    * @param string $description long localised info
    * @param string $defaultsetting default password
    */
     public function __construct($name, $visiblename, $description, $defaultsetting) {
         parent::__construct($name, $visiblename, $description, $defaultsetting, PARAM_RAW, 30);
     }
@@ -1903,19 +1921,20 @@ if (is_ie) {
     }
 }
 
+
 /**
  * Path to directory
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configfile extends admin_setting_configtext {
-/**
- * Constructor
- * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
- * @param string $visiblename localised
- * @param string $description long localised info
- * @param string $defaultdirectory default directory location
- */
+    /**
    * Constructor
    * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
    * @param string $visiblename localised
    * @param string $description long localised info
    * @param string $defaultdirectory default directory location
    */
     public function __construct($name, $visiblename, $description, $defaultdirectory) {
         parent::__construct($name, $visiblename, $description, $defaultdirectory, PARAM_RAW, 50);
     }
@@ -1949,6 +1968,7 @@ class admin_setting_configfile extends admin_setting_configtext {
     }
 }
 
+
 /**
  * Path to executable file
  *
@@ -1956,13 +1976,13 @@ class admin_setting_configfile extends admin_setting_configtext {
  */
 class admin_setting_configexecutable extends admin_setting_configfile {
 
-/**
- * Returns an XHTML field
- *
- * @param string $data This is the value for the field
- * @param string $query
- * @return string XHTML field
- */
+    /**
    * Returns an XHTML field
    *
    * @param string $data This is the value for the field
    * @param string $query
    * @return string XHTML field
    */
     public function output_html($data, $query='') {
         $default = $this->get_defaultsetting();
 
@@ -1982,6 +2002,7 @@ class admin_setting_configexecutable extends admin_setting_configfile {
     }
 }
 
+
 /**
  * Path to directory
  *
@@ -1989,13 +2010,13 @@ class admin_setting_configexecutable extends admin_setting_configfile {
  */
 class admin_setting_configdirectory extends admin_setting_configfile {
 
-/**
- * Returns an XHTML field
- *
- * @param string $data This is the value for the field
- * @param string $query
- * @return string XHTML
- */
+    /**
    * Returns an XHTML field
    *
    * @param string $data This is the value for the field
    * @param string $query
    * @return string XHTML
    */
     public function output_html($data, $query='') {
         $default = $this->get_defaultsetting();
 
@@ -2015,13 +2036,14 @@ class admin_setting_configdirectory extends admin_setting_configfile {
     }
 }
 
+
 /**
  * Checkbox
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configcheckbox extends admin_setting {
-/** @var string Value used when checked */
+    /** @var string Value used when checked */
     public $yes;
     /** @var string Value used when not checked */
     public $no;
@@ -2101,13 +2123,14 @@ class admin_setting_configcheckbox extends admin_setting {
     }
 }
 
+
 /**
  * Multiple checkboxes, each represents different value, stored in csv format
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configmulticheckbox extends admin_setting {
-/** @var array Array of choices value=>label */
+    /** @var array Array of choices value=>label */
     public $choices;
 
     /**
@@ -2272,6 +2295,7 @@ class admin_setting_configmulticheckbox extends admin_setting {
     }
 }
 
+
 /**
  * Multiple checkboxes 2, value stored as string 00101011
  *
@@ -2279,11 +2303,11 @@ class admin_setting_configmulticheckbox extends admin_setting {
  */
 class admin_setting_configmulticheckbox2 extends admin_setting_configmulticheckbox {
 
-/**
- * Returns the setting if set
- *
- * @return mixed null if not set, else an array of set settings
- */
+    /**
    * Returns the setting if set
    *
    * @return mixed null if not set, else an array of set settings
    */
     public function get_setting() {
         $result = $this->config_read($this->name);
         if (is_null($result)) {
@@ -2329,13 +2353,14 @@ class admin_setting_configmulticheckbox2 extends admin_setting_configmulticheckb
     }
 }
 
+
 /**
  * Select one value from list
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configselect extends admin_setting {
-/** @var array Array of choices value=>label */
+    /** @var array Array of choices value=>label */
     public $choices;
 
     /**
@@ -2488,20 +2513,21 @@ class admin_setting_configselect extends admin_setting {
     }
 }
 
+
 /**
  * Select multiple items from list
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configmultiselect extends admin_setting_configselect {
-/**
- * Constructor
- * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
- * @param string $visiblename localised
- * @param string $description long localised info
- * @param array $defaultsetting array of selected items
- * @param array $choices array of $value=>$label for each list item
- */
+    /**
    * Constructor
    * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
    * @param string $visiblename localised
    * @param string $description long localised info
    * @param array $defaultsetting array of selected items
    * @param array $choices array of $value=>$label for each list item
    */
     public function __construct($name, $visiblename, $description, $defaultsetting, $choices) {
         parent::__construct($name, $visiblename, $description, $defaultsetting, $choices);
     }
@@ -2528,7 +2554,6 @@ class admin_setting_configmultiselect extends admin_setting_configselect {
      * Potential bug in the works should anyone call with this function
      * using a vartype that is not an array
      *
-     * @todo Add vartype handling to ensure $data is an array
      * @param array $data
      */
     public function write_setting($data) {
@@ -2635,7 +2660,7 @@ class admin_setting_configmultiselect extends admin_setting_configselect {
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configtime extends admin_setting {
-/** @var string Used for setting second select (minutes) */
+    /** @var string Used for setting second select (minutes) */
     public $name2;
 
     /**
@@ -2712,6 +2737,7 @@ class admin_setting_configtime extends admin_setting {
 
 }
 
+
 /**
  * Used to validate a textarea used for ip addresses
  *
@@ -2719,15 +2745,15 @@ class admin_setting_configtime extends admin_setting {
  */
 class admin_setting_configiplist extends admin_setting_configtextarea {
 
-/**
- * Validate the contents of the textarea as IP addresses
- *
- * Used to validate a new line separated list of IP addresses collected from
- * a textarea control
- *
- * @param string $data A list of IP Addresses separated by new lines
- * @return mixed bool true for success or string:error on failure
- */
+    /**
    * Validate the contents of the textarea as IP addresses
    *
    * Used to validate a new line separated list of IP addresses collected from
    * a textarea control
    *
    * @param string $data A list of IP Addresses separated by new lines
    * @return mixed bool true for success or string:error on failure
    */
     public function validate($data) {
         if(!empty($data)) {
             $ips = explode("\n", $data);
@@ -2737,7 +2763,7 @@ class admin_setting_configiplist extends admin_setting_configtextarea {
         $result = true;
         foreach($ips as $ip) {
             $ip = trim($ip);
-            if(preg_match('#^(\d{1,3})(\.\d{1,3}){0,3}$#', $ip, $match) ||
+            if (preg_match('#^(\d{1,3})(\.\d{1,3}){0,3}$#', $ip, $match) ||
                 preg_match('#^(\d{1,3})(\.\d{1,3}){0,3}(\/\d{1,2})$#', $ip, $match) ||
                 preg_match('#^(\d{1,3})(\.\d{1,3}){3}(-\d{1,3})$#', $ip, $match)) {
                 $result = true;
@@ -2754,6 +2780,7 @@ class admin_setting_configiplist extends admin_setting_configtextarea {
     }
 }
 
+
 /**
  * An admin setting for selecting one or more users who have a capability
  * in the system context
@@ -2871,20 +2898,21 @@ class admin_setting_users_with_capability extends admin_setting_configmultiselec
     }
 }
 
+
 /**
  * Special checkbox for calendar - resets SESSION vars.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_adminseesall extends admin_setting_configcheckbox {
-/**
- * Calls the parent::__construct with default values
- *
- * name =>  calendar_adminseesall
- * visiblename => get_string('adminseesall', 'admin')
- * description => get_string('helpadminseesall', 'admin')
- * defaultsetting => 0
- */
+    /**
    * Calls the parent::__construct with default values
    *
    * name =>  calendar_adminseesall
    * visiblename => get_string('adminseesall', 'admin')
    * description => get_string('helpadminseesall', 'admin')
    * defaultsetting => 0
    */
     public function __construct() {
         parent::__construct('calendar_adminseesall', get_string('adminseesall', 'admin'),
             get_string('helpadminseesall', 'admin'), '0');
@@ -2909,11 +2937,11 @@ class admin_setting_special_adminseesall extends admin_setting_configcheckbox {
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_selectsetup extends admin_setting_configselect {
-/**
- * Reads the setting directly from the database
- *
- * @return mixed
- */
+    /**
    * Reads the setting directly from the database
    *
    * @return mixed
    */
     public function get_setting() {
     // read directly from db!
         return get_config(NULL, $this->name);
@@ -2935,22 +2963,24 @@ class admin_setting_special_selectsetup extends admin_setting_configselect {
     }
 }
 
+
 /**
  * Special select for frontpage - stores data in course table
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_sitesetselect extends admin_setting_configselect {
-/**
- * Returns the site name for the selected site
- *
- * @see get_site()
- * @return string The site name of the selected site
- */
+    /**
    * Returns the site name for the selected site
    *
    * @see get_site()
    * @return string The site name of the selected site
    */
     public function get_setting() {
         $site = get_site();
         return $site->{$this->name};
     }
+
     /**
      * Updates the database and save the setting
      *
@@ -2973,6 +3003,7 @@ class admin_setting_sitesetselect extends admin_setting_configselect {
     }
 }
 
+
 /**
  * Select for blog's bloglevel setting: if set to 0, will set blog_menu
  * block to hidden.
@@ -2987,23 +3018,33 @@ class admin_setting_bloglevel extends admin_setting_configselect {
      * @return string empty or error message
      */
     public function write_setting($data) {
-        global $DB;
+        global $DB, $CFG;
         if ($data['bloglevel'] == 0) {
-            $DB->set_field('block', 'visible', 0, array('name' => 'blog_menu'));
+            $blogblocks = $DB->get_records_select('block', "name LIKE 'blog_%' AND visible = 1");
+            foreach ($blogblocks as $block) {
+                $DB->set_field('block', 'visible', 0, array('id' => $block->id));
+            }
         } else {
-            $DB->set_field('block', 'visible', 1, array('name' => 'blog_menu'));
+            // reenable all blocks only when switching from disabled blogs
+            if (isset($CFG->bloglevel) and $CFG->bloglevel == 0) {
+                $blogblocks = $DB->get_records_select('block', "name LIKE 'blog_%' AND visible = 0");
+                foreach ($blogblocks as $block) {
+                    $DB->set_field('block', 'visible', 1, array('id' => $block->id));
+                }
+            }
         }
         return parent::write_setting($data);
     }
 }
 
+
 /**
  * Special select - lists on the frontpage - hacky
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_courselist_frontpage extends admin_setting {
-/** @var array Array of choices value=>label */
+    /** @var array Array of choices value=>label */
     public $choices;
 
     /**
@@ -3041,6 +3082,7 @@ class admin_setting_courselist_frontpage extends admin_setting {
         }
         return true;
     }
+
     /**
      * Returns the selected settings
      *
@@ -3114,17 +3156,18 @@ class admin_setting_courselist_frontpage extends admin_setting {
     }
 }
 
+
 /**
  * Special checkbox for frontpage - stores data in course table
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_sitesetcheckbox extends admin_setting_configcheckbox {
-/**
- * Returns the current sites name
- *
- * @return string
- */
+    /**
    * Returns the current sites name
    *
    * @return string
    */
     public function get_setting() {
         $site = get_site();
         return $site->{$this->name};
@@ -3155,11 +3198,11 @@ class admin_setting_sitesetcheckbox extends admin_setting_configcheckbox {
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_sitesettext extends admin_setting_configtext {
-/**
- * Return the current setting
- *
- * @return mixed string or null
- */
+    /**
    * Return the current setting
    *
    * @return mixed string or null
    */
     public function get_setting() {
         $site = get_site();
         return $site->{$this->name} != '' ? $site->{$this->name} : NULL;
@@ -3207,15 +3250,16 @@ class admin_setting_sitesettext extends admin_setting_configtext {
     }
 }
 
+
 /**
  * Special text editor for site description.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_frontpagedesc extends admin_setting {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('summary', get_string('frontpagedescription'), get_string('frontpagedescriptionhelp'), NULL);
         editors_head_setup();
@@ -3263,6 +3307,7 @@ class admin_setting_special_frontpagedesc extends admin_setting {
     }
 }
 
+
 /**
  * Administration interface for emoticon_manager settings.
  *
@@ -3270,9 +3315,9 @@ class admin_setting_special_frontpagedesc extends admin_setting {
  */
 class admin_setting_emoticons extends admin_setting {
 
-/**
- * Calls parent::__construct with specific args
- */
+    /**
    * Calls parent::__construct with specific args
    */
     public function __construct() {
         global $CFG;
 
@@ -3481,15 +3526,16 @@ class admin_setting_emoticons extends admin_setting {
     }
 }
 
+
 /**
  * Special setting for limiting of the list of available languages.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_langlist extends admin_setting_configtext {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('langlist', get_string('langlist', 'admin'), get_string('configlanglist', 'admin'), '', PARAM_NOTAGS);
     }
@@ -3507,6 +3553,7 @@ class admin_setting_langlist extends admin_setting_configtext {
     }
 }
 
+
 /**
  * Selection of one of the recognised countries using the list
  * returned by {@link get_list_of_countries()}.
@@ -3535,15 +3582,16 @@ class admin_settings_country_select extends admin_setting_configselect {
     }
 }
 
+
 /**
  * Course category selection
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_settings_coursecat_select extends admin_setting_configselect {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct($name, $visiblename, $description, $defaultsetting) {
         parent::__construct($name, $visiblename, $description, $defaultsetting, NULL);
     }
@@ -3564,19 +3612,21 @@ class admin_settings_coursecat_select extends admin_setting_configselect {
     }
 }
 
+
 /**
  * Special control for selecting days to backup
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_backupdays extends admin_setting_configmulticheckbox2 {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('backup_auto_weekdays', get_string('automatedbackupschedule','backup'), get_string('automatedbackupschedulehelp','backup'), array(), NULL);
         $this->plugin = 'backup';
     }
+
     /**
      * Load the available choices for the select box
      *
@@ -3595,15 +3645,16 @@ class admin_setting_special_backupdays extends admin_setting_configmulticheckbox
     }
 }
 
+
 /**
  * Special debug setting
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_debug extends admin_setting_configselect {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('debug', get_string('debug', 'admin'), get_string('configdebug', 'admin'), DEBUG_NONE, NULL);
     }
@@ -3626,15 +3677,16 @@ class admin_setting_special_debug extends admin_setting_configselect {
     }
 }
 
+
 /**
  * Special admin control
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_calendar_weekend extends admin_setting {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         $name = 'calendar_weekend';
         $visiblename = get_string('calendar_weekend', 'admin');
@@ -3642,6 +3694,7 @@ class admin_setting_special_calendar_weekend extends admin_setting {
         $default = array ('0', '6'); // Saturdays and Sundays
         parent::__construct($name, $visiblename, $description, $default);
     }
+
     /**
      * Gets the current settings as an array
      *
@@ -3715,7 +3768,7 @@ class admin_setting_special_calendar_weekend extends admin_setting {
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_pickroles extends admin_setting_configmulticheckbox {
-/** @var array Array of capabilities which identify roles */
+    /** @var array Array of capabilities which identify roles */
     private $types;
 
     /**
@@ -3753,6 +3806,7 @@ class admin_setting_pickroles extends admin_setting_configmulticheckbox {
             return false;
         }
     }
+
     /**
      * Return the default setting for this control
      *
@@ -3776,21 +3830,22 @@ class admin_setting_pickroles extends admin_setting_configmulticheckbox {
     }
 }
 
+
 /**
  * Text field with an advanced checkbox, that controls a additional $name.'_adv' setting.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configtext_with_advanced extends admin_setting_configtext {
-/**
- * Constructor
- * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
- * @param string $visiblename localised
- * @param string $description long localised info
- * @param array $defaultsetting ('value'=>string, '__construct'=>bool)
- * @param mixed $paramtype int means PARAM_XXX type, string is a allowed format in regex
- * @param int $size default field size
- */
+    /**
    * Constructor
    * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
    * @param string $visiblename localised
    * @param string $description long localised info
    * @param array $defaultsetting ('value'=>string, '__construct'=>bool)
    * @param mixed $paramtype int means PARAM_XXX type, string is a allowed format in regex
    * @param int $size default field size
    */
     public function __construct($name, $visiblename, $description, $defaultsetting, $paramtype=PARAM_RAW, $size=null) {
         parent::__construct($name, $visiblename, $description, $defaultsetting, $paramtype, $size);
     }
@@ -3862,6 +3917,7 @@ class admin_setting_configtext_with_advanced extends admin_setting_configtext {
     }
 }
 
+
 /**
  * Checkbox with an advanced checkbox that controls an additional $name.'_adv' config setting.
  *
@@ -3870,15 +3926,15 @@ class admin_setting_configtext_with_advanced extends admin_setting_configtext {
  */
 class admin_setting_configcheckbox_with_advanced extends admin_setting_configcheckbox {
 
-/**
- * Constructor
- * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
- * @param string $visiblename localised
- * @param string $description long localised info
- * @param array $defaultsetting ('value'=>string, 'adv'=>bool)
- * @param string $yes value used when checked
- * @param string $no value used when not checked
- */
+    /**
    * Constructor
    * @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting' for ones in config_plugins.
    * @param string $visiblename localised
    * @param string $description long localised info
    * @param array $defaultsetting ('value'=>string, 'adv'=>bool)
    * @param string $yes value used when checked
    * @param string $no value used when not checked
    */
     public function __construct($name, $visiblename, $description, $defaultsetting, $yes='1', $no='0') {
         parent::__construct($name, $visiblename, $description, $defaultsetting, $yes, $no);
     }
@@ -3966,6 +4022,7 @@ EOT;
     }
 }
 
+
 /**
  * Checkbox with an advanced checkbox that controls an additional $name.'_locked' config setting.
  *
@@ -4067,15 +4124,16 @@ class admin_setting_configcheckbox_with_lock extends admin_setting_configcheckbo
     }
 }
 
+
 /**
  * Dropdown menu with an advanced checkbox, that controls a additional $name.'_adv' setting.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_configselect_with_advanced extends admin_setting_configselect {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct($name, $visiblename, $description, $defaultsetting, $choices) {
         parent::__construct($name, $visiblename, $description, $defaultsetting, $choices);
     }
@@ -4152,15 +4210,16 @@ class admin_setting_configselect_with_advanced extends admin_setting_configselec
     }
 }
 
+
 /**
  * Graded roles in gradebook
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_gradebookroles extends admin_setting_pickroles {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('gradebookroles', get_string('gradebookroles', 'admin'),
             get_string('configgradebookroles', 'admin'),
@@ -4168,17 +4227,18 @@ class admin_setting_special_gradebookroles extends admin_setting_pickroles {
     }
 }
 
+
 /**
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_regradingcheckbox extends admin_setting_configcheckbox {
-/**
- * Saves the new settings passed in $data
- *
- * @param string $data
- * @return mixed string or Array
- */
+    /**
    * Saves the new settings passed in $data
    *
    * @param string $data
    * @return mixed string or Array
    */
     public function write_setting($data) {
         global $CFG, $DB;
 
@@ -4195,15 +4255,16 @@ class admin_setting_regradingcheckbox extends admin_setting_configcheckbox {
     }
 }
 
+
 /**
  * Which roles to show on course description page
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_coursecontact extends admin_setting_pickroles {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('coursecontact', get_string('coursecontact', 'admin'),
             get_string('coursecontact_desc', 'admin'),
@@ -4211,14 +4272,15 @@ class admin_setting_special_coursecontact extends admin_setting_pickroles {
     }
 }
 
+
 /**
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_gradelimiting extends admin_setting_configcheckbox {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     function admin_setting_special_gradelimiting() {
         parent::__construct('unlimitedgrades', get_string('unlimitedgrades', 'grades'),
             get_string('unlimitedgrades_help', 'grades'), '0', '1', '0');
@@ -4256,15 +4318,16 @@ class admin_setting_special_gradelimiting extends admin_setting_configcheckbox {
 
 }
 
+
 /**
  * Primary grade export plugin - has state tracking.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_gradeexport extends admin_setting_configmulticheckbox {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('gradeexport', get_string('gradeexport', 'admin'),
             get_string('configgradeexport', 'admin'), array(), NULL);
@@ -4290,13 +4353,14 @@ class admin_setting_special_gradeexport extends admin_setting_configmulticheckbo
     }
 }
 
+
 /**
  * Grade category settings
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_gradecat_combo extends admin_setting {
-/** @var array Array of choices */
+    /** @var array Array of choices */
     public $choices;
 
     /**
@@ -4429,9 +4493,9 @@ class admin_setting_gradecat_combo extends admin_setting {
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_grade_profilereport extends admin_setting_configselect {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('grade_profilereport', get_string('profilereport', 'grades'), get_string('profilereport_help', 'grades'), 'user', null);
     }
@@ -4463,15 +4527,16 @@ class admin_setting_grade_profilereport extends admin_setting_configselect {
     }
 }
 
+
 /**
  * Special class for register auth selection
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_special_registerauth extends admin_setting_configselect {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         parent::__construct('registerauth', get_string('selfregistration', 'auth'), get_string('selfregistration_help', 'auth'), '', null);
     }
@@ -4520,15 +4585,16 @@ class admin_setting_special_registerauth extends admin_setting_configselect {
     }
 }
 
+
 /**
  * Module manage page
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_page_managemods extends admin_externalpage {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         global $CFG;
         parent::__construct('managemodules', get_string('modsettings', 'admin'), "$CFG->wwwroot/$CFG->admin/modules.php");
@@ -4583,9 +4649,9 @@ class admin_page_managemods extends admin_externalpage {
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_manageenrols extends admin_setting {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         $this->nosave = true;
         parent::__construct('enrolsui', get_string('manageenrols', 'enrol'), '', '');
@@ -4779,9 +4845,9 @@ class admin_setting_manageenrols extends admin_setting {
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_page_manageblocks extends admin_externalpage {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         global $CFG;
         parent::__construct('manageblocks', get_string('blocksettings', 'admin'), "$CFG->wwwroot/$CFG->admin/blocks.php");
@@ -4828,15 +4894,16 @@ class admin_page_manageblocks extends admin_externalpage {
     }
 }
 
+
 /**
  * Question type manage page
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_page_manageqtypes extends admin_externalpage {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         global $CFG;
         parent::__construct('manageqtypes', get_string('manageqtypes', 'admin'), "$CFG->wwwroot/$CFG->admin/qtypes.php");
@@ -4875,6 +4942,7 @@ class admin_page_manageqtypes extends admin_externalpage {
     }
 }
 
+
 class admin_page_manageportfolios extends admin_externalpage {
     /**
      * Calls parent::__construct with specific arguments
@@ -4926,6 +4994,7 @@ class admin_page_manageportfolios extends admin_externalpage {
     }
 }
 
+
 class admin_page_managerepositories extends admin_externalpage {
     /**
      * Calls parent::__construct with specific arguments
@@ -4977,15 +5046,16 @@ class admin_page_managerepositories extends admin_externalpage {
     }
 }
 
+
 /**
  * Special class for authentication administration.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_manageauths extends admin_setting {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         $this->nosave = true;
         parent::__construct('authsui', get_string('authsettings', 'admin'), '', '');
@@ -5179,15 +5249,16 @@ class admin_setting_manageauths extends admin_setting {
     }
 }
 
+
 /**
  * Special class for authentication administration.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_manageeditors extends admin_setting {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         $this->nosave = true;
         parent::__construct('editorsui', get_string('editorsettings', 'editor'), '', '');
@@ -5345,6 +5416,7 @@ class admin_setting_manageeditors extends admin_setting {
     }
 }
 
+
 /**
  * Special class for license administration.
  *
@@ -5383,7 +5455,7 @@ class admin_setting_managelicenses extends admin_setting {
      * @return string Always returns ''
      */
     public function write_setting($data) {
-    // do not write any setting
+        // do not write any setting
         return '';
     }
 
@@ -5438,15 +5510,17 @@ class admin_setting_managelicenses extends admin_setting {
         return highlight($query, $return);
     }
 }
+
+
 /**
  * Special class for filter administration.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_page_managefilters extends admin_externalpage {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         global $CFG;
         parent::__construct('managefilters', get_string('filtersettings', 'admin'), "$CFG->wwwroot/$CFG->admin/filters.php");
@@ -5490,6 +5564,7 @@ class admin_page_managefilters extends admin_externalpage {
     }
 }
 
+
 /**
  * Initialise admin page - this function does require login and permission
  * checks specified in page definition.
@@ -5503,7 +5578,7 @@ class admin_page_managefilters extends admin_externalpage {
  * @param array $extraurlparams an array paramname => paramvalue, or parameters that need to be
  *      added to the turn blocks editing on/off form, so this page reloads correctly.
  * @param string $actualurl if the actual page being viewed is not the normal one for this
- *      page (e.g. admin/roles/allowassin.php, instead of admin/roles/manage.php, you can pass the alternate URL here.
+ *      page (e.g. admin/roles/allow.php, instead of admin/roles/manage.php, you can pass the alternate URL here.
  * @param array $options Additional options that can be specified for page setup.
  *      pagelayout - This option can be used to set a specific pagelyaout, admin is default.
  */
@@ -5599,7 +5674,7 @@ function admin_externalpage_setup($section, $extrabutton = '', array $extraurlpa
 /**
  * Returns the reference to admin tree root
  *
- * @return object admin_roow object
+ * @return object admin_root object
  */
 function admin_get_root($reload=false, $requirefulltree=true) {
     global $CFG, $DB, $OUTPUT;
@@ -5974,7 +6049,6 @@ function any_new_admin_settings($node) {
     return false;
 }
 
-
 /**
  * Moved from admin/replace.php so that we can use this in cron
  *
@@ -6229,6 +6303,7 @@ function print_plugin_tables() {
     echo $html;
 }
 
+
 /**
  * Manage repository settings
  *
@@ -6479,6 +6554,7 @@ class admin_setting_managerepository extends admin_setting {
     }
 }
 
+
 /**
  * Special class for management of external services
  *
@@ -6661,15 +6737,17 @@ class admin_setting_manageexternalservices extends admin_setting {
         return highlight($query, $return);
     }
 }
+
+
 /**
  * Special class for plagiarism administration.
  *
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class admin_setting_manageplagiarism extends admin_setting {
-/**
- * Calls parent::__construct with specific arguments
- */
+    /**
    * Calls parent::__construct with specific arguments
    */
     public function __construct() {
         $this->nosave = true;
         parent::__construct('plagiarismui', get_string('plagiarismsettings', 'plagiarism'), '', '');
@@ -6699,7 +6777,7 @@ class admin_setting_manageplagiarism extends admin_setting {
      * @return string Always returns ''
      */
     public function write_setting($data) {
-    // do not write any setting
+        // do not write any setting
         return '';
     }
 
@@ -6748,6 +6826,7 @@ class admin_setting_manageplagiarism extends admin_setting {
     }
 }
 
+
 /**
  * Special class for overview of external services
  *
@@ -7019,6 +7098,7 @@ class admin_setting_webservicesoverview extends admin_setting {
 
 }
 
+
 /**
  * Special class for web service protocol administration.
  *
@@ -7307,6 +7387,7 @@ class admin_setting_managewebservicetokens extends admin_setting {
     }
 }
 
+
 /**
  * Colour picker
  *