[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Load all plugins into the admin tree. 19 * 20 * Please note that is file is always loaded last - it means that you can inject entries into other categories too. 21 * 22 * @package core 23 * @copyright 2007 Petr Skoda {@link http://skodak.org} 24 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 */ 26 27 if ($hassiteconfig) { 28 /* @var admin_root $ADMIN */ 29 $ADMIN->locate('modules')->set_sorting(true); 30 31 $ADMIN->add('modules', new admin_page_pluginsoverview()); 32 33 // activity modules 34 $ADMIN->add('modules', new admin_category('modsettings', new lang_string('activitymodules'))); 35 36 $ADMIN->add('modsettings', new admin_page_managemods()); 37 38 $temp = new admin_settingpage('managemodulescommon', new lang_string('commonactivitysettings', 'admin')); 39 $temp->add(new admin_setting_configcheckbox('requiremodintro', 40 get_string('requiremodintro', 'admin'), get_string('requiremodintro_desc', 'admin'), 0)); 41 $ADMIN->add('modsettings', $temp); 42 43 $plugins = core_plugin_manager::instance()->get_plugins_of_type('mod'); 44 core_collator::asort_objects_by_property($plugins, 'displayname'); 45 foreach ($plugins as $plugin) { 46 /** @var \core\plugininfo\mod $plugin */ 47 $plugin->load_settings($ADMIN, 'modsettings', $hassiteconfig); 48 } 49 50 // course formats 51 $ADMIN->add('modules', new admin_category('formatsettings', new lang_string('courseformats'))); 52 $temp = new admin_settingpage('manageformats', new lang_string('manageformats', 'core_admin')); 53 $temp->add(new admin_setting_manageformats()); 54 $ADMIN->add('formatsettings', $temp); 55 $plugins = core_plugin_manager::instance()->get_plugins_of_type('format'); 56 core_collator::asort_objects_by_property($plugins, 'displayname'); 57 foreach ($plugins as $plugin) { 58 /** @var \core\plugininfo\format $plugin */ 59 $plugin->load_settings($ADMIN, 'formatsettings', $hassiteconfig); 60 } 61 62 // blocks 63 $ADMIN->add('modules', new admin_category('blocksettings', new lang_string('blocks'))); 64 $ADMIN->add('blocksettings', new admin_page_manageblocks()); 65 $plugins = core_plugin_manager::instance()->get_plugins_of_type('block'); 66 core_collator::asort_objects_by_property($plugins, 'displayname'); 67 foreach ($plugins as $plugin) { 68 /** @var \core\plugininfo\block $plugin */ 69 $plugin->load_settings($ADMIN, 'blocksettings', $hassiteconfig); 70 } 71 72 // message outputs 73 $ADMIN->add('modules', new admin_category('messageoutputs', new lang_string('messageoutputs', 'message'))); 74 $ADMIN->add('messageoutputs', new admin_page_managemessageoutputs()); 75 $ADMIN->add('messageoutputs', new admin_page_defaultmessageoutputs()); 76 $plugins = core_plugin_manager::instance()->get_plugins_of_type('message'); 77 core_collator::asort_objects_by_property($plugins, 'displayname'); 78 foreach ($plugins as $plugin) { 79 /** @var \core\plugininfo\message $plugin */ 80 $plugin->load_settings($ADMIN, 'messageoutputs', $hassiteconfig); 81 } 82 83 // authentication plugins 84 $ADMIN->add('modules', new admin_category('authsettings', new lang_string('authentication', 'admin'))); 85 86 $temp = new admin_settingpage('manageauths', new lang_string('authsettings', 'admin')); 87 $temp->add(new admin_setting_manageauths()); 88 $temp->add(new admin_setting_heading('manageauthscommonheading', new lang_string('commonsettings', 'admin'), '')); 89 $temp->add(new admin_setting_special_registerauth()); 90 $temp->add(new admin_setting_configcheckbox('authloginviaemail', new lang_string('authloginviaemail', 'core_auth'), new lang_string('authloginviaemail_desc', 'core_auth'), 0)); 91 $temp->add(new admin_setting_configcheckbox('allowaccountssameemail', 92 new lang_string('allowaccountssameemail', 'core_auth'), 93 new lang_string('allowaccountssameemail_desc', 'core_auth'), 0)); 94 $temp->add(new admin_setting_configcheckbox('authpreventaccountcreation', new lang_string('authpreventaccountcreation', 'admin'), new lang_string('authpreventaccountcreation_help', 'admin'), 0)); 95 $temp->add(new admin_setting_configcheckbox('loginpageautofocus', new lang_string('loginpageautofocus', 'admin'), new lang_string('loginpageautofocus_help', 'admin'), 0)); 96 $temp->add(new admin_setting_configselect('guestloginbutton', new lang_string('guestloginbutton', 'auth'), 97 new lang_string('showguestlogin', 'auth'), '1', array('0'=>new lang_string('hide'), '1'=>new lang_string('show')))); 98 $options = array(0 => get_string('no'), 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 10 => 10, 20 => 20, 50 => 50); 99 $temp->add(new admin_setting_configselect('limitconcurrentlogins', 100 new lang_string('limitconcurrentlogins', 'core_auth'), 101 new lang_string('limitconcurrentlogins_desc', 'core_auth'), 0, $options)); 102 $temp->add(new admin_setting_configtext('alternateloginurl', new lang_string('alternateloginurl', 'auth'), 103 new lang_string('alternatelogin', 'auth', htmlspecialchars(get_login_url())), '')); 104 $temp->add(new admin_setting_configtext('forgottenpasswordurl', new lang_string('forgottenpasswordurl', 'auth'), 105 new lang_string('forgottenpassword', 'auth'), '')); 106 $temp->add(new admin_setting_confightmleditor('auth_instructions', new lang_string('instructions', 'auth'), 107 new lang_string('authinstructions', 'auth'), '')); 108 $temp->add(new admin_setting_configtext('allowemailaddresses', new lang_string('allowemailaddresses', 'admin'), new lang_string('configallowemailaddresses', 'admin'), '', PARAM_NOTAGS)); 109 $temp->add(new admin_setting_configtext('denyemailaddresses', new lang_string('denyemailaddresses', 'admin'), new lang_string('configdenyemailaddresses', 'admin'), '', PARAM_NOTAGS)); 110 $temp->add(new admin_setting_configcheckbox('verifychangedemail', new lang_string('verifychangedemail', 'admin'), new lang_string('configverifychangedemail', 'admin'), 1)); 111 112 $temp->add(new admin_setting_configtext('recaptchapublickey', new lang_string('recaptchapublickey', 'admin'), new lang_string('configrecaptchapublickey', 'admin'), '', PARAM_NOTAGS)); 113 $temp->add(new admin_setting_configtext('recaptchaprivatekey', new lang_string('recaptchaprivatekey', 'admin'), new lang_string('configrecaptchaprivatekey', 'admin'), '', PARAM_NOTAGS)); 114 $ADMIN->add('authsettings', $temp); 115 116 $temp = new admin_externalpage('authtestsettings', get_string('testsettings', 'core_auth'), new moodle_url("/auth/test_settings.php"), 'moodle/site:config', true); 117 $ADMIN->add('authsettings', $temp); 118 119 $plugins = core_plugin_manager::instance()->get_plugins_of_type('auth'); 120 core_collator::asort_objects_by_property($plugins, 'displayname'); 121 foreach ($plugins as $plugin) { 122 /** @var \core\plugininfo\auth $plugin */ 123 $plugin->load_settings($ADMIN, 'authsettings', $hassiteconfig); 124 } 125 126 // Enrolment plugins 127 $ADMIN->add('modules', new admin_category('enrolments', new lang_string('enrolments', 'enrol'))); 128 $temp = new admin_settingpage('manageenrols', new lang_string('manageenrols', 'enrol')); 129 $temp->add(new admin_setting_manageenrols()); 130 $ADMIN->add('enrolments', $temp); 131 132 $temp = new admin_externalpage('enroltestsettings', get_string('testsettings', 'core_enrol'), new moodle_url("/enrol/test_settings.php"), 'moodle/site:config', true); 133 $ADMIN->add('enrolments', $temp); 134 135 $plugins = core_plugin_manager::instance()->get_plugins_of_type('enrol'); 136 core_collator::asort_objects_by_property($plugins, 'displayname'); 137 foreach ($plugins as $plugin) { 138 /** @var \core\plugininfo\enrol $plugin */ 139 $plugin->load_settings($ADMIN, 'enrolments', $hassiteconfig); 140 } 141 142 143 /// Editor plugins 144 $ADMIN->add('modules', new admin_category('editorsettings', new lang_string('editors', 'editor'))); 145 $temp = new admin_settingpage('manageeditors', new lang_string('editorsettings', 'editor')); 146 $temp->add(new admin_setting_manageeditors()); 147 $ADMIN->add('editorsettings', $temp); 148 $plugins = core_plugin_manager::instance()->get_plugins_of_type('editor'); 149 core_collator::asort_objects_by_property($plugins, 'displayname'); 150 foreach ($plugins as $plugin) { 151 /** @var \core\plugininfo\editor $plugin */ 152 $plugin->load_settings($ADMIN, 'editorsettings', $hassiteconfig); 153 } 154 155 // Antivirus plugins. 156 $ADMIN->add('modules', new admin_category('antivirussettings', new lang_string('antiviruses', 'antivirus'))); 157 $temp = new admin_settingpage('manageantiviruses', new lang_string('antivirussettings', 'antivirus')); 158 $temp->add(new admin_setting_manageantiviruses()); 159 $ADMIN->add('antivirussettings', $temp); 160 $plugins = core_plugin_manager::instance()->get_plugins_of_type('antivirus'); 161 core_collator::asort_objects_by_property($plugins, 'displayname'); 162 foreach ($plugins as $plugin) { 163 /* @var \core\plugininfo\antivirus $plugin */ 164 $plugin->load_settings($ADMIN, 'antivirussettings', $hassiteconfig); 165 } 166 167 /// License types 168 $ADMIN->add('modules', new admin_category('licensesettings', new lang_string('licenses'))); 169 $temp = new admin_settingpage('managelicenses', new lang_string('managelicenses', 'admin')); 170 171 require_once($CFG->libdir . '/licenselib.php'); 172 $licenses = array(); 173 $array = explode(',', $CFG->licenses); 174 foreach ($array as $value) { 175 $licenses[$value] = new lang_string($value, 'license'); 176 } 177 $temp->add(new admin_setting_configselect('sitedefaultlicense', new lang_string('configsitedefaultlicense','admin'), new lang_string('configsitedefaultlicensehelp','admin'), 'allrightsreserved', $licenses)); 178 $temp->add(new admin_setting_managelicenses()); 179 $ADMIN->add('licensesettings', $temp); 180 181 /// Filter plugins 182 $ADMIN->add('modules', new admin_category('filtersettings', new lang_string('managefilters'))); 183 184 $ADMIN->add('filtersettings', new admin_page_managefilters()); 185 186 // "filtersettings" settingpage 187 $temp = new admin_settingpage('commonfiltersettings', new lang_string('commonfiltersettings', 'admin')); 188 if ($ADMIN->fulltree) { 189 $items = array(); 190 $items[] = new admin_setting_configselect('filteruploadedfiles', new lang_string('filteruploadedfiles', 'admin'), new lang_string('configfilteruploadedfiles', 'admin'), 0, 191 array('0' => new lang_string('none'), '1' => new lang_string('allfiles'), '2' => new lang_string('htmlfilesonly'))); 192 $items[] = new admin_setting_configcheckbox('filtermatchoneperpage', new lang_string('filtermatchoneperpage', 'admin'), new lang_string('configfiltermatchoneperpage', 'admin'), 0); 193 $items[] = new admin_setting_configcheckbox('filtermatchonepertext', new lang_string('filtermatchonepertext', 'admin'), new lang_string('configfiltermatchonepertext', 'admin'), 0); 194 foreach ($items as $item) { 195 $item->set_updatedcallback('reset_text_filters_cache'); 196 $temp->add($item); 197 } 198 } 199 $ADMIN->add('filtersettings', $temp); 200 201 $plugins = core_plugin_manager::instance()->get_plugins_of_type('filter'); 202 core_collator::asort_objects_by_property($plugins, 'displayname'); 203 foreach ($plugins as $plugin) { 204 /** @var \core\plugininfo\filter $plugin */ 205 $plugin->load_settings($ADMIN, 'filtersettings', $hassiteconfig); 206 } 207 208 // Data format settings. 209 $ADMIN->add('modules', new admin_category('dataformatsettings', new lang_string('dataformats'))); 210 $temp = new admin_settingpage('managedataformats', new lang_string('managedataformats')); 211 $temp->add(new admin_setting_managedataformats()); 212 $ADMIN->add('dataformatsettings', $temp); 213 214 //== Portfolio settings == 215 require_once($CFG->libdir. '/portfoliolib.php'); 216 $catname = new lang_string('portfolios', 'portfolio'); 217 $manage = new lang_string('manageportfolios', 'portfolio'); 218 $url = "$CFG->wwwroot/$CFG->admin/portfolio.php"; 219 220 $ADMIN->add('modules', new admin_category('portfoliosettings', $catname, empty($CFG->enableportfolios))); 221 222 // Add manage page (with table) 223 $temp = new admin_page_manageportfolios(); 224 $ADMIN->add('portfoliosettings', $temp); 225 226 // Add common settings page 227 $temp = new admin_settingpage('manageportfolioscommon', new lang_string('commonportfoliosettings', 'portfolio')); 228 $temp->add(new admin_setting_heading('manageportfolioscommon', '', new lang_string('commonsettingsdesc', 'portfolio'))); 229 $fileinfo = portfolio_filesize_info(); // make sure this is defined in one place since its used inside portfolio too to detect insane settings 230 $fileoptions = $fileinfo['options']; 231 $temp->add(new admin_setting_configselect( 232 'portfolio_moderate_filesize_threshold', 233 new lang_string('moderatefilesizethreshold', 'portfolio'), 234 new lang_string('moderatefilesizethresholddesc', 'portfolio'), 235 $fileinfo['moderate'], $fileoptions)); 236 $temp->add(new admin_setting_configselect( 237 'portfolio_high_filesize_threshold', 238 new lang_string('highfilesizethreshold', 'portfolio'), 239 new lang_string('highfilesizethresholddesc', 'portfolio'), 240 $fileinfo['high'], $fileoptions)); 241 242 $temp->add(new admin_setting_configtext( 243 'portfolio_moderate_db_threshold', 244 new lang_string('moderatedbsizethreshold', 'portfolio'), 245 new lang_string('moderatedbsizethresholddesc', 'portfolio'), 246 20, PARAM_INT, 3)); 247 248 $temp->add(new admin_setting_configtext( 249 'portfolio_high_db_threshold', 250 new lang_string('highdbsizethreshold', 'portfolio'), 251 new lang_string('highdbsizethresholddesc', 'portfolio'), 252 50, PARAM_INT, 3)); 253 254 $ADMIN->add('portfoliosettings', $temp); 255 $ADMIN->add('portfoliosettings', new admin_externalpage('portfolionew', new lang_string('addnewportfolio', 'portfolio'), $url, 'moodle/site:config', true)); 256 $ADMIN->add('portfoliosettings', new admin_externalpage('portfoliodelete', new lang_string('deleteportfolio', 'portfolio'), $url, 'moodle/site:config', true)); 257 $ADMIN->add('portfoliosettings', new admin_externalpage('portfoliocontroller', new lang_string('manageportfolios', 'portfolio'), $url, 'moodle/site:config', true)); 258 259 foreach (portfolio_instances(false, false) as $portfolio) { 260 require_once($CFG->dirroot . '/portfolio/' . $portfolio->get('plugin') . '/lib.php'); 261 $classname = 'portfolio_plugin_' . $portfolio->get('plugin'); 262 $ADMIN->add( 263 'portfoliosettings', 264 new admin_externalpage( 265 'portfoliosettings' . $portfolio->get('id'), 266 $portfolio->get('name'), 267 $url . '?action=edit&pf=' . $portfolio->get('id'), 268 'moodle/site:config' 269 ) 270 ); 271 } 272 273 // repository setting 274 require_once("$CFG->dirroot/repository/lib.php"); 275 $catname =new lang_string('repositories', 'repository'); 276 $managerepo = new lang_string('manage', 'repository'); 277 $url = $CFG->wwwroot.'/'.$CFG->admin.'/repository.php'; 278 $ADMIN->add('modules', new admin_category('repositorysettings', $catname)); 279 280 // Add main page (with table) 281 $temp = new admin_page_managerepositories(); 282 $ADMIN->add('repositorysettings', $temp); 283 284 // Add common settings page 285 $temp = new admin_settingpage('managerepositoriescommon', new lang_string('commonrepositorysettings', 'repository')); 286 $temp->add(new admin_setting_configtext('repositorycacheexpire', new lang_string('cacheexpire', 'repository'), new lang_string('configcacheexpire', 'repository'), 120, PARAM_INT)); 287 $temp->add(new admin_setting_configtext('repositorygetfiletimeout', new lang_string('getfiletimeout', 'repository'), new lang_string('configgetfiletimeout', 'repository'), 30, PARAM_INT)); 288 $temp->add(new admin_setting_configtext('repositorysyncfiletimeout', new lang_string('syncfiletimeout', 'repository'), new lang_string('configsyncfiletimeout', 'repository'), 1, PARAM_INT)); 289 $temp->add(new admin_setting_configtext('repositorysyncimagetimeout', new lang_string('syncimagetimeout', 'repository'), new lang_string('configsyncimagetimeout', 'repository'), 3, PARAM_INT)); 290 $temp->add(new admin_setting_configcheckbox('repositoryallowexternallinks', new lang_string('allowexternallinks', 'repository'), new lang_string('configallowexternallinks', 'repository'), 1)); 291 $temp->add(new admin_setting_configcheckbox('legacyfilesinnewcourses', new lang_string('legacyfilesinnewcourses', 'admin'), new lang_string('legacyfilesinnewcourses_help', 'admin'), 0)); 292 $temp->add(new admin_setting_configcheckbox('legacyfilesaddallowed', new lang_string('legacyfilesaddallowed', 'admin'), new lang_string('legacyfilesaddallowed_help', 'admin'), 1)); 293 $ADMIN->add('repositorysettings', $temp); 294 $ADMIN->add('repositorysettings', new admin_externalpage('repositorynew', 295 new lang_string('addplugin', 'repository'), $url, 'moodle/site:config', true)); 296 $ADMIN->add('repositorysettings', new admin_externalpage('repositorydelete', 297 new lang_string('deleterepository', 'repository'), $url, 'moodle/site:config', true)); 298 $ADMIN->add('repositorysettings', new admin_externalpage('repositorycontroller', 299 new lang_string('manage', 'repository'), $url, 'moodle/site:config', true)); 300 $ADMIN->add('repositorysettings', new admin_externalpage('repositoryinstancenew', 301 new lang_string('createrepository', 'repository'), $url, 'moodle/site:config', true)); 302 $ADMIN->add('repositorysettings', new admin_externalpage('repositoryinstanceedit', 303 new lang_string('editrepositoryinstance', 'repository'), $url, 'moodle/site:config', true)); 304 $plugins = core_plugin_manager::instance()->get_plugins_of_type('repository'); 305 core_collator::asort_objects_by_property($plugins, 'displayname'); 306 foreach ($plugins as $plugin) { 307 /** @var \core\plugininfo\repository $plugin */ 308 $plugin->load_settings($ADMIN, 'repositorysettings', $hassiteconfig); 309 } 310 311 /// Web services 312 $ADMIN->add('modules', new admin_category('webservicesettings', new lang_string('webservices', 'webservice'))); 313 // Mobile 314 $temp = new admin_settingpage('mobile', new lang_string('mobile','admin'), 'moodle/site:config', false); 315 316 // We should wait to the installation to finish since we depend on some configuration values that are set once 317 // the admin user profile is configured. 318 if (!during_initial_install()) { 319 $enablemobiledocurl = new moodle_url(get_docs_url('Enable_mobile_web_services')); 320 $enablemobiledoclink = html_writer::link($enablemobiledocurl, new lang_string('documentation')); 321 $default = is_https() ? 1 : 0; 322 $temp->add(new admin_setting_enablemobileservice('enablemobilewebservice', 323 new lang_string('enablemobilewebservice', 'admin'), 324 new lang_string('configenablemobilewebservice', 'admin', $enablemobiledoclink), $default)); 325 } 326 327 $temp->add(new admin_setting_configtext('mobilecssurl', new lang_string('mobilecssurl', 'admin'), new lang_string('configmobilecssurl','admin'), '', PARAM_URL)); 328 $ADMIN->add('webservicesettings', $temp); 329 /// overview page 330 $temp = new admin_settingpage('webservicesoverview', new lang_string('webservicesoverview', 'webservice')); 331 $temp->add(new admin_setting_webservicesoverview()); 332 $ADMIN->add('webservicesettings', $temp); 333 //API documentation 334 $ADMIN->add('webservicesettings', new admin_externalpage('webservicedocumentation', new lang_string('wsdocapi', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/documentation.php", 'moodle/site:config', false)); 335 /// manage service 336 $temp = new admin_settingpage('externalservices', new lang_string('externalservices', 'webservice')); 337 $temp->add(new admin_setting_heading('manageserviceshelpexplaination', new lang_string('information', 'webservice'), new lang_string('servicehelpexplanation', 'webservice'))); 338 $temp->add(new admin_setting_manageexternalservices()); 339 $ADMIN->add('webservicesettings', $temp); 340 $ADMIN->add('webservicesettings', new admin_externalpage('externalservice', new lang_string('editaservice', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/service.php", 'moodle/site:config', true)); 341 $ADMIN->add('webservicesettings', new admin_externalpage('externalservicefunctions', new lang_string('externalservicefunctions', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/service_functions.php", 'moodle/site:config', true)); 342 $ADMIN->add('webservicesettings', new admin_externalpage('externalserviceusers', new lang_string('externalserviceusers', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/service_users.php", 'moodle/site:config', true)); 343 $ADMIN->add('webservicesettings', new admin_externalpage('externalserviceusersettings', new lang_string('serviceusersettings', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/service_user_settings.php", 'moodle/site:config', true)); 344 /// manage protocol page link 345 $temp = new admin_settingpage('webserviceprotocols', new lang_string('manageprotocols', 'webservice')); 346 $temp->add(new admin_setting_managewebserviceprotocols()); 347 if (empty($CFG->enablewebservices)) { 348 $temp->add(new admin_setting_heading('webservicesaredisabled', '', new lang_string('disabledwarning', 'webservice'))); 349 } 350 351 // We cannot use $OUTPUT this early, doing so means that we lose the ability 352 // to set the page layout on all admin pages. 353 // $wsdoclink = $OUTPUT->doc_link('How_to_get_a_security_key'); 354 $url = new moodle_url(get_docs_url('How_to_get_a_security_key')); 355 $wsdoclink = html_writer::tag('a', new lang_string('supplyinfo', 'webservice'), array('href'=>$url)); 356 $temp->add(new admin_setting_configcheckbox('enablewsdocumentation', new lang_string('enablewsdocumentation', 357 'admin'), new lang_string('configenablewsdocumentation', 'admin', $wsdoclink), false)); 358 $ADMIN->add('webservicesettings', $temp); 359 /// links to protocol pages 360 $plugins = core_plugin_manager::instance()->get_plugins_of_type('webservice'); 361 core_collator::asort_objects_by_property($plugins, 'displayname'); 362 foreach ($plugins as $plugin) { 363 /** @var \core\plugininfo\webservice $plugin */ 364 $plugin->load_settings($ADMIN, 'webservicesettings', $hassiteconfig); 365 } 366 /// manage token page link 367 $ADMIN->add('webservicesettings', new admin_externalpage('addwebservicetoken', new lang_string('managetokens', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/tokens.php", 'moodle/site:config', true)); 368 $temp = new admin_settingpage('webservicetokens', new lang_string('managetokens', 'webservice')); 369 $temp->add(new admin_setting_managewebservicetokens()); 370 if (empty($CFG->enablewebservices)) { 371 $temp->add(new admin_setting_heading('webservicesaredisabled', '', new lang_string('disabledwarning', 'webservice'))); 372 } 373 $ADMIN->add('webservicesettings', $temp); 374 } 375 376 // Question type settings 377 if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext)) { 378 379 // Question behaviour settings. 380 $ADMIN->add('modules', new admin_category('qbehavioursettings', new lang_string('questionbehaviours', 'admin'))); 381 $ADMIN->add('qbehavioursettings', new admin_page_manageqbehaviours()); 382 383 // Question type settings. 384 $ADMIN->add('modules', new admin_category('qtypesettings', new lang_string('questiontypes', 'admin'))); 385 $ADMIN->add('qtypesettings', new admin_page_manageqtypes()); 386 387 // Question preview defaults. 388 $settings = new admin_settingpage('qdefaultsetting', 389 get_string('questionpreviewdefaults', 'question'), 390 'moodle/question:config'); 391 $ADMIN->add('qtypesettings', $settings); 392 393 $settings->add(new admin_setting_heading('qdefaultsetting_preview_options', 394 '', get_string('questionpreviewdefaults_desc', 'question'))); 395 396 // These keys are question_display_options::HIDDEN and VISIBLE. 397 $hiddenofvisible = array( 398 0 => get_string('notshown', 'question'), 399 1 => get_string('shown', 'question'), 400 ); 401 402 $settings->add(new admin_setting_question_behaviour('question_preview/behaviour', 403 get_string('howquestionsbehave', 'question'), '', 404 'deferredfeedback')); 405 406 $settings->add(new admin_setting_configselect('question_preview/correctness', 407 get_string('whethercorrect', 'question'), '', 1, $hiddenofvisible)); 408 409 // These keys are question_display_options::HIDDEN, MARK_ONLY and MARK_AND_MAX. 410 $marksoptions = array( 411 0 => get_string('notshown', 'question'), 412 1 => get_string('showmaxmarkonly', 'question'), 413 2 => get_string('showmarkandmax', 'question'), 414 ); 415 $settings->add(new admin_setting_configselect('question_preview/marks', 416 get_string('marks', 'question'), '', 2, $marksoptions)); 417 418 $settings->add(new admin_setting_configselect('question_preview/markdp', 419 get_string('decimalplacesingrades', 'question'), '', 2, array(0, 1, 2, 3, 4, 5, 6, 7))); 420 421 $settings->add(new admin_setting_configselect('question_preview/feedback', 422 get_string('specificfeedback', 'question'), '', 1, $hiddenofvisible)); 423 424 $settings->add(new admin_setting_configselect('question_preview/generalfeedback', 425 get_string('generalfeedback', 'question'), '', 1, $hiddenofvisible)); 426 427 $settings->add(new admin_setting_configselect('question_preview/rightanswer', 428 get_string('rightanswer', 'question'), '', 1, $hiddenofvisible)); 429 430 $settings->add(new admin_setting_configselect('question_preview/history', 431 get_string('responsehistory', 'question'), '', 0, $hiddenofvisible)); 432 433 // Settings for particular question types. 434 $plugins = core_plugin_manager::instance()->get_plugins_of_type('qtype'); 435 core_collator::asort_objects_by_property($plugins, 'displayname'); 436 foreach ($plugins as $plugin) { 437 /** @var \core\plugininfo\qtype $plugin */ 438 $plugin->load_settings($ADMIN, 'qtypesettings', $hassiteconfig); 439 } 440 } 441 442 // Plagiarism plugin settings 443 if ($hassiteconfig && !empty($CFG->enableplagiarism)) { 444 $ADMIN->add('modules', new admin_category('plagiarism', new lang_string('plagiarism', 'plagiarism'))); 445 $ADMIN->add('plagiarism', new admin_externalpage('manageplagiarismplugins', new lang_string('manageplagiarism', 'plagiarism'), 446 $CFG->wwwroot . '/' . $CFG->admin . '/plagiarism.php')); 447 448 $plugins = core_plugin_manager::instance()->get_plugins_of_type('plagiarism'); 449 core_collator::asort_objects_by_property($plugins, 'displayname'); 450 foreach ($plugins as $plugin) { 451 /** @var \core\plugininfo\plagiarism $plugin */ 452 $plugin->load_settings($ADMIN, 'plagiarism', $hassiteconfig); 453 } 454 } 455 $ADMIN->add('reports', new admin_externalpage('comments', new lang_string('comments'), $CFG->wwwroot.'/comment/', 'moodle/site:viewreports')); 456 457 // Course reports settings 458 if ($hassiteconfig) { 459 $pages = array(); 460 foreach (core_component::get_plugin_list('coursereport') as $report => $path) { 461 $file = $CFG->dirroot . '/course/report/' . $report . '/settings.php'; 462 if (file_exists($file)) { 463 $settings = new admin_settingpage('coursereport' . $report, 464 new lang_string('pluginname', 'coursereport_' . $report), 'moodle/site:config'); 465 // settings.php may create a subcategory or unset the settings completely 466 include($file); 467 if ($settings) { 468 $pages[] = $settings; 469 } 470 } 471 } 472 if (!empty($pages)) { 473 $ADMIN->add('modules', new admin_category('coursereports', new lang_string('coursereports'))); 474 core_collator::asort_objects_by_property($pages, 'visiblename'); 475 foreach ($pages as $page) { 476 $ADMIN->add('coursereports', $page); 477 } 478 } 479 unset($pages); 480 } 481 482 // Now add reports 483 $pages = array(); 484 foreach (core_component::get_plugin_list('report') as $report => $plugindir) { 485 $settings_path = "$plugindir/settings.php"; 486 if (file_exists($settings_path)) { 487 $settings = new admin_settingpage('report' . $report, 488 new lang_string('pluginname', 'report_' . $report), 'moodle/site:config'); 489 include($settings_path); 490 if ($settings) { 491 $pages[] = $settings; 492 } 493 } 494 } 495 $ADMIN->add('modules', new admin_category('reportplugins', new lang_string('reports'))); 496 $ADMIN->add('reportplugins', new admin_externalpage('managereports', new lang_string('reportsmanage', 'admin'), 497 $CFG->wwwroot . '/' . $CFG->admin . '/reports.php')); 498 core_collator::asort_objects_by_property($pages, 'visiblename'); 499 foreach ($pages as $page) { 500 $ADMIN->add('reportplugins', $page); 501 } 502 503 if ($hassiteconfig) { 504 // Global Search engine plugins. 505 $ADMIN->add('modules', new admin_category('searchplugins', new lang_string('search', 'admin'))); 506 $temp = new admin_settingpage('manageglobalsearch', new lang_string('globalsearchmanage', 'admin')); 507 508 $pages = array(); 509 $engines = array(); 510 foreach (core_component::get_plugin_list('search') as $engine => $plugindir) { 511 $engines[$engine] = new lang_string('pluginname', 'search_' . $engine); 512 $settingspath = "$plugindir/settings.php"; 513 if (file_exists($settingspath)) { 514 $settings = new admin_settingpage('search' . $engine, 515 new lang_string('pluginname', 'search_' . $engine), 'moodle/site:config'); 516 include($settingspath); 517 if ($settings) { 518 $pages[] = $settings; 519 } 520 } 521 } 522 523 // Setup status. 524 $temp->add(new admin_setting_searchsetupinfo()); 525 526 // Search engine selection. 527 $temp->add(new admin_setting_heading('searchengineheading', new lang_string('searchengine', 'admin'), '')); 528 $temp->add(new admin_setting_configselect('searchengine', 529 new lang_string('selectsearchengine', 'admin'), '', 'solr', $engines)); 530 531 $ADMIN->add('searchplugins', $temp); 532 $ADMIN->add('searchplugins', new admin_externalpage('searchareas', new lang_string('searchareas', 'admin'), 533 new moodle_url('/admin/searchareas.php'))); 534 535 core_collator::asort_objects_by_property($pages, 'visiblename'); 536 foreach ($pages as $page) { 537 $ADMIN->add('searchplugins', $page); 538 } 539 } 540 541 /// Add all admin tools 542 if ($hassiteconfig) { 543 $ADMIN->add('modules', new admin_category('tools', new lang_string('tools', 'admin'))); 544 $ADMIN->add('tools', new admin_externalpage('managetools', new lang_string('toolsmanage', 'admin'), 545 $CFG->wwwroot . '/' . $CFG->admin . '/tools.php')); 546 } 547 548 // Now add various admin tools. 549 $plugins = core_plugin_manager::instance()->get_plugins_of_type('tool'); 550 core_collator::asort_objects_by_property($plugins, 'displayname'); 551 foreach ($plugins as $plugin) { 552 /** @var \core\plugininfo\tool $plugin */ 553 $plugin->load_settings($ADMIN, null, $hassiteconfig); 554 } 555 556 // Now add the Cache plugins 557 if ($hassiteconfig) { 558 $ADMIN->add('modules', new admin_category('cache', new lang_string('caching', 'cache'))); 559 $ADMIN->add('cache', new admin_externalpage('cacheconfig', new lang_string('cacheconfig', 'cache'), $CFG->wwwroot .'/cache/admin.php')); 560 $ADMIN->add('cache', new admin_externalpage('cachetestperformance', new lang_string('testperformance', 'cache'), $CFG->wwwroot . '/cache/testperformance.php')); 561 $ADMIN->add('cache', new admin_category('cachestores', new lang_string('cachestores', 'cache'))); 562 $ADMIN->locate('cachestores')->set_sorting(true); 563 foreach (core_component::get_plugin_list('cachestore') as $plugin => $path) { 564 $settingspath = $path.'/settings.php'; 565 if (file_exists($settingspath)) { 566 $settings = new admin_settingpage('cachestore_'.$plugin.'_settings', new lang_string('pluginname', 'cachestore_'.$plugin), 'moodle/site:config'); 567 include($settingspath); 568 $ADMIN->add('cachestores', $settings); 569 } 570 } 571 } 572 573 // Add Calendar type settings. 574 if ($hassiteconfig) { 575 $ADMIN->add('modules', new admin_category('calendartype', new lang_string('calendartypes', 'calendar'))); 576 $plugins = core_plugin_manager::instance()->get_plugins_of_type('calendartype'); 577 core_collator::asort_objects_by_property($plugins, 'displayname'); 578 foreach ($plugins as $plugin) { 579 /** @var \core\plugininfo\calendartype $plugin */ 580 $plugin->load_settings($ADMIN, 'calendartype', $hassiteconfig); 581 } 582 } 583 584 /// Add all local plugins - must be always last! 585 if ($hassiteconfig) { 586 $ADMIN->add('modules', new admin_category('localplugins', new lang_string('localplugins'))); 587 $ADMIN->add('localplugins', new admin_externalpage('managelocalplugins', new lang_string('localpluginsmanage'), 588 $CFG->wwwroot . '/' . $CFG->admin . '/localplugins.php')); 589 } 590 591 // Extend settings for each local plugin. Note that their settings may be in any part of the 592 // settings tree and may be visible not only for administrators. 593 $plugins = core_plugin_manager::instance()->get_plugins_of_type('local'); 594 core_collator::asort_objects_by_property($plugins, 'displayname'); 595 foreach ($plugins as $plugin) { 596 /** @var \core\plugininfo\local $plugin */ 597 $plugin->load_settings($ADMIN, null, $hassiteconfig); 598 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |