4 * Please note that is file is always loaded last - it means that you can inject entries into other categories too.
8 require_once("$CFG->libdir/pluginlib.php");
9 $allplugins = plugin_manager
::instance()->get_plugins();
11 $ADMIN->add('modules', new admin_page_pluginsoverview());
14 $ADMIN->add('modules', new admin_category('modsettings', new lang_string('activitymodules')));
15 $ADMIN->add('modsettings', new admin_page_managemods());
16 foreach ($allplugins['mod'] as $module) {
17 $module->load_settings($ADMIN, 'modsettings', $hassiteconfig);
20 // hidden script for converting journals to online assignments (or something like that) linked from elsewhere
21 $ADMIN->add('modsettings', new admin_externalpage('oacleanup', 'Online Assignment Cleanup', $CFG->wwwroot
.'/'.$CFG->admin
.'/oacleanup.php', 'moodle/site:config', true));
24 $ADMIN->add('modules', new admin_category('formatsettings', new lang_string('courseformats')));
25 $temp = new admin_settingpage('manageformats', new lang_string('manageformats', 'core_admin'));
26 $temp->add(new admin_setting_manageformats());
27 $ADMIN->add('formatsettings', $temp);
28 foreach ($allplugins['format'] as $format) {
29 $format->load_settings($ADMIN, 'formatsettings', $hassiteconfig);
33 $ADMIN->add('modules', new admin_category('blocksettings', new lang_string('blocks')));
34 $ADMIN->add('blocksettings', new admin_page_manageblocks());
35 foreach ($allplugins['block'] as $block) {
36 $block->load_settings($ADMIN, 'blocksettings', $hassiteconfig);
40 $ADMIN->add('modules', new admin_category('messageoutputs', new lang_string('messageoutputs', 'message')));
41 $ADMIN->add('messageoutputs', new admin_page_managemessageoutputs());
42 $ADMIN->add('messageoutputs', new admin_page_defaultmessageoutputs());
43 foreach ($allplugins['message'] as $processor) {
44 $processor->load_settings($ADMIN, 'messageoutputs', $hassiteconfig);
47 // authentication plugins
48 $ADMIN->add('modules', new admin_category('authsettings', new lang_string('authentication', 'admin')));
50 $temp = new admin_settingpage('manageauths', new lang_string('authsettings', 'admin'));
51 $temp->add(new admin_setting_manageauths());
52 $temp->add(new admin_setting_heading('manageauthscommonheading', new lang_string('commonsettings', 'admin'), ''));
53 $temp->add(new admin_setting_special_registerauth());
54 $temp->add(new admin_setting_configcheckbox('authpreventaccountcreation', new lang_string('authpreventaccountcreation', 'admin'), new lang_string('authpreventaccountcreation_help', 'admin'), 0));
55 $temp->add(new admin_setting_configcheckbox('loginpageautofocus', new lang_string('loginpageautofocus', 'admin'), new lang_string('loginpageautofocus_help', 'admin'), 0));
56 $temp->add(new admin_setting_configselect('guestloginbutton', new lang_string('guestloginbutton', 'auth'),
57 new lang_string('showguestlogin', 'auth'), '1', array('0'=>new lang_string('hide'), '1'=>new lang_string('show'))));
58 $temp->add(new admin_setting_configtext('alternateloginurl', new lang_string('alternateloginurl', 'auth'),
59 new lang_string('alternatelogin', 'auth', htmlspecialchars(get_login_url())), ''));
60 $temp->add(new admin_setting_configtext('forgottenpasswordurl', new lang_string('forgottenpasswordurl', 'auth'),
61 new lang_string('forgottenpassword', 'auth'), ''));
62 $temp->add(new admin_setting_confightmleditor('auth_instructions', new lang_string('instructions', 'auth'),
63 new lang_string('authinstructions', 'auth'), ''));
64 $temp->add(new admin_setting_configtext('allowemailaddresses', new lang_string('allowemailaddresses', 'admin'), new lang_string('configallowemailaddresses', 'admin'), '', PARAM_NOTAGS
));
65 $temp->add(new admin_setting_configtext('denyemailaddresses', new lang_string('denyemailaddresses', 'admin'), new lang_string('configdenyemailaddresses', 'admin'), '', PARAM_NOTAGS
));
66 $temp->add(new admin_setting_configcheckbox('verifychangedemail', new lang_string('verifychangedemail', 'admin'), new lang_string('configverifychangedemail', 'admin'), 1));
68 $temp->add(new admin_setting_configtext('recaptchapublickey', new lang_string('recaptchapublickey', 'admin'), new lang_string('configrecaptchapublickey', 'admin'), '', PARAM_NOTAGS
));
69 $temp->add(new admin_setting_configtext('recaptchaprivatekey', new lang_string('recaptchaprivatekey', 'admin'), new lang_string('configrecaptchaprivatekey', 'admin'), '', PARAM_NOTAGS
));
70 $ADMIN->add('authsettings', $temp);
72 foreach ($allplugins['auth'] as $auth) {
73 $auth->load_settings($ADMIN, 'authsettings', $hassiteconfig);
77 $ADMIN->add('modules', new admin_category('enrolments', new lang_string('enrolments', 'enrol')));
78 $temp = new admin_settingpage('manageenrols', new lang_string('manageenrols', 'enrol'));
79 $temp->add(new admin_setting_manageenrols());
80 $ADMIN->add('enrolments', $temp);
81 foreach($allplugins['enrol'] as $enrol) {
82 $enrol->load_settings($ADMIN, 'enrolments', $hassiteconfig);
87 $ADMIN->add('modules', new admin_category('editorsettings', new lang_string('editors', 'editor')));
88 $temp = new admin_settingpage('manageeditors', new lang_string('editorsettings', 'editor'));
89 $temp->add(new admin_setting_manageeditors());
90 $ADMIN->add('editorsettings', $temp);
91 foreach ($allplugins['editor'] as $editor) {
92 $editor->load_settings($ADMIN, 'editorsettings', $hassiteconfig);
96 $ADMIN->add('modules', new admin_category('licensesettings', new lang_string('licenses')));
97 $temp = new admin_settingpage('managelicenses', new lang_string('managelicenses', 'admin'));
99 require_once($CFG->libdir
. '/licenselib.php');
101 $array = explode(',', $CFG->licenses
);
102 foreach ($array as $value) {
103 $licenses[$value] = new lang_string($value, 'license');
105 $temp->add(new admin_setting_configselect('sitedefaultlicense', new lang_string('configsitedefaultlicense','admin'), new lang_string('configsitedefaultlicensehelp','admin'), 'allrightsreserved', $licenses));
106 $temp->add(new admin_setting_managelicenses());
107 $ADMIN->add('licensesettings', $temp);
110 $ADMIN->add('modules', new admin_category('filtersettings', new lang_string('managefilters')));
112 $ADMIN->add('filtersettings', new admin_page_managefilters());
114 // "filtersettings" settingpage
115 $temp = new admin_settingpage('commonfiltersettings', new lang_string('commonfiltersettings', 'admin'));
116 if ($ADMIN->fulltree
) {
118 604800 => new lang_string('numdays','',7),
119 86400 => new lang_string('numdays','',1),
120 43200 => new lang_string('numhours','',12),
121 10800 => new lang_string('numhours','',3),
122 7200 => new lang_string('numhours','',2),
123 3600 => new lang_string('numhours','',1),
124 2700 => new lang_string('numminutes','',45),
125 1800 => new lang_string('numminutes','',30),
126 900 => new lang_string('numminutes','',15),
127 600 => new lang_string('numminutes','',10),
128 540 => new lang_string('numminutes','',9),
129 480 => new lang_string('numminutes','',8),
130 420 => new lang_string('numminutes','',7),
131 360 => new lang_string('numminutes','',6),
132 300 => new lang_string('numminutes','',5),
133 240 => new lang_string('numminutes','',4),
134 180 => new lang_string('numminutes','',3),
135 120 => new lang_string('numminutes','',2),
136 60 => new lang_string('numminutes','',1),
137 30 => new lang_string('numseconds','',30),
138 0 => new lang_string('no')
141 $items[] = new admin_setting_configselect('cachetext', new lang_string('cachetext', 'admin'), new lang_string('configcachetext', 'admin'), 60, $cachetimes);
142 $items[] = new admin_setting_configselect('filteruploadedfiles', new lang_string('filteruploadedfiles', 'admin'), new lang_string('configfilteruploadedfiles', 'admin'), 0,
143 array('0' => new lang_string('none'), '1' => new lang_string('allfiles'), '2' => new lang_string('htmlfilesonly')));
144 $items[] = new admin_setting_configcheckbox('filtermatchoneperpage', new lang_string('filtermatchoneperpage', 'admin'), new lang_string('configfiltermatchoneperpage', 'admin'), 0);
145 $items[] = new admin_setting_configcheckbox('filtermatchonepertext', new lang_string('filtermatchonepertext', 'admin'), new lang_string('configfiltermatchonepertext', 'admin'), 0);
146 foreach ($items as $item) {
147 $item->set_updatedcallback('reset_text_filters_cache');
151 $ADMIN->add('filtersettings', $temp);
153 foreach ($allplugins['filter'] as $filter) {
154 $filter->load_settings($ADMIN, 'filtersettings', $hassiteconfig);
158 //== Portfolio settings ==
159 require_once($CFG->libdir
. '/portfoliolib.php');
160 $catname = new lang_string('portfolios', 'portfolio');
161 $manage = new lang_string('manageportfolios', 'portfolio');
162 $url = "$CFG->wwwroot/$CFG->admin/portfolio.php";
164 $ADMIN->add('modules', new admin_category('portfoliosettings', $catname, empty($CFG->enableportfolios
)));
166 // Add manage page (with table)
167 $temp = new admin_page_manageportfolios();
168 $ADMIN->add('portfoliosettings', $temp);
170 // Add common settings page
171 $temp = new admin_settingpage('manageportfolioscommon', new lang_string('commonportfoliosettings', 'portfolio'));
172 $temp->add(new admin_setting_heading('manageportfolioscommon', '', new lang_string('commonsettingsdesc', 'portfolio')));
173 $fileinfo = portfolio_filesize_info(); // make sure this is defined in one place since its used inside portfolio too to detect insane settings
174 $fileoptions = $fileinfo['options'];
175 $temp->add(new admin_setting_configselect(
176 'portfolio_moderate_filesize_threshold',
177 new lang_string('moderatefilesizethreshold', 'portfolio'),
178 new lang_string('moderatefilesizethresholddesc', 'portfolio'),
179 $fileinfo['moderate'], $fileoptions));
180 $temp->add(new admin_setting_configselect(
181 'portfolio_high_filesize_threshold',
182 new lang_string('highfilesizethreshold', 'portfolio'),
183 new lang_string('highfilesizethresholddesc', 'portfolio'),
184 $fileinfo['high'], $fileoptions));
186 $temp->add(new admin_setting_configtext(
187 'portfolio_moderate_db_threshold',
188 new lang_string('moderatedbsizethreshold', 'portfolio'),
189 new lang_string('moderatedbsizethresholddesc', 'portfolio'),
192 $temp->add(new admin_setting_configtext(
193 'portfolio_high_db_threshold',
194 new lang_string('highdbsizethreshold', 'portfolio'),
195 new lang_string('highdbsizethresholddesc', 'portfolio'),
198 $ADMIN->add('portfoliosettings', $temp);
199 $ADMIN->add('portfoliosettings', new admin_externalpage('portfolionew', new lang_string('addnewportfolio', 'portfolio'), $url, 'moodle/site:config', true), '', $url);
200 $ADMIN->add('portfoliosettings', new admin_externalpage('portfoliodelete', new lang_string('deleteportfolio', 'portfolio'), $url, 'moodle/site:config', true), '', $url);
201 $ADMIN->add('portfoliosettings', new admin_externalpage('portfoliocontroller', new lang_string('manageportfolios', 'portfolio'), $url, 'moodle/site:config', true), '', $url);
203 foreach (portfolio_instances(false, false) as $portfolio) {
204 require_once($CFG->dirroot
. '/portfolio/' . $portfolio->get('plugin') . '/lib.php');
205 $classname = 'portfolio_plugin_' . $portfolio->get('plugin');
208 new admin_externalpage(
209 'portfoliosettings' . $portfolio->get('id'),
210 $portfolio->get('name'),
211 $url . '?action=edit&pf=' . $portfolio->get('id'),
214 $portfolio->get('name'),
215 $url . '?action=edit&pf=' . $portfolio->get('id')
219 // repository setting
220 require_once("$CFG->dirroot/repository/lib.php");
221 $catname =new lang_string('repositories', 'repository');
222 $managerepo = new lang_string('manage', 'repository');
223 $url = $CFG->wwwroot
.'/'.$CFG->admin
.'/repository.php';
224 $ADMIN->add('modules', new admin_category('repositorysettings', $catname));
226 // Add main page (with table)
227 $temp = new admin_page_managerepositories();
228 $ADMIN->add('repositorysettings', $temp);
230 // Add common settings page
231 $temp = new admin_settingpage('managerepositoriescommon', new lang_string('commonrepositorysettings', 'repository'));
232 $temp->add(new admin_setting_configtext('repositorycacheexpire', new lang_string('cacheexpire', 'repository'), new lang_string('configcacheexpire', 'repository'), 120));
233 $temp->add(new admin_setting_configcheckbox('repositoryallowexternallinks', new lang_string('allowexternallinks', 'repository'), new lang_string('configallowexternallinks', 'repository'), 1));
234 $temp->add(new admin_setting_configcheckbox('legacyfilesinnewcourses', new lang_string('legacyfilesinnewcourses', 'admin'), new lang_string('legacyfilesinnewcourses_help', 'admin'), 0));
235 $ADMIN->add('repositorysettings', $temp);
236 $ADMIN->add('repositorysettings', new admin_externalpage('repositorynew',
237 new lang_string('addplugin', 'repository'), $url, 'moodle/site:config', true),
239 $ADMIN->add('repositorysettings', new admin_externalpage('repositorydelete',
240 new lang_string('deleterepository', 'repository'), $url, 'moodle/site:config', true),
242 $ADMIN->add('repositorysettings', new admin_externalpage('repositorycontroller',
243 new lang_string('manage', 'repository'), $url, 'moodle/site:config', true),
245 $ADMIN->add('repositorysettings', new admin_externalpage('repositoryinstancenew',
246 new lang_string('createrepository', 'repository'), $url, 'moodle/site:config', true),
248 $ADMIN->add('repositorysettings', new admin_externalpage('repositoryinstanceedit',
249 new lang_string('editrepositoryinstance', 'repository'), $url, 'moodle/site:config', true),
251 foreach ($allplugins['repository'] as $repositorytype) {
252 $repositorytype->load_settings($ADMIN, 'repositorysettings', $hassiteconfig);
256 $ADMIN->add('modules', new admin_category('webservicesettings', new lang_string('webservices', 'webservice')));
258 $temp = new admin_settingpage('mobile', new lang_string('mobile','admin'), 'moodle/site:config', false);
259 $enablemobiledocurl = new moodle_url(get_docs_url('Enable_mobile_web_services'));
260 $enablemobiledoclink = html_writer
::link($enablemobiledocurl, new lang_string('documentation'));
261 $temp->add(new admin_setting_enablemobileservice('enablemobilewebservice',
262 new lang_string('enablemobilewebservice', 'admin'),
263 new lang_string('configenablemobilewebservice', 'admin', $enablemobiledoclink), 0));
264 $temp->add(new admin_setting_configtext('mobilecssurl', new lang_string('mobilecssurl', 'admin'), new lang_string('configmobilecssurl','admin'), '', PARAM_URL
));
265 $ADMIN->add('webservicesettings', $temp);
267 $temp = new admin_settingpage('webservicesoverview', new lang_string('webservicesoverview', 'webservice'));
268 $temp->add(new admin_setting_webservicesoverview());
269 $ADMIN->add('webservicesettings', $temp);
271 $ADMIN->add('webservicesettings', new admin_externalpage('webservicedocumentation', new lang_string('wsdocapi', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/documentation.php", 'moodle/site:config', false));
273 $temp = new admin_settingpage('externalservices', new lang_string('externalservices', 'webservice'));
274 $temp->add(new admin_setting_enablemobileservice('enablemobilewebservice',
275 new lang_string('enablemobilewebservice', 'admin'),
276 new lang_string('configenablemobilewebservice', 'admin', $enablemobiledoclink), 0));
277 $temp->add(new admin_setting_heading('manageserviceshelpexplaination', new lang_string('information', 'webservice'), new lang_string('servicehelpexplanation', 'webservice')));
278 $temp->add(new admin_setting_manageexternalservices());
279 $ADMIN->add('webservicesettings', $temp);
280 $ADMIN->add('webservicesettings', new admin_externalpage('externalservice', new lang_string('editaservice', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/service.php", 'moodle/site:config', true));
281 $ADMIN->add('webservicesettings', new admin_externalpage('externalservicefunctions', new lang_string('externalservicefunctions', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/service_functions.php", 'moodle/site:config', true));
282 $ADMIN->add('webservicesettings', new admin_externalpage('externalserviceusers', new lang_string('externalserviceusers', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/service_users.php", 'moodle/site:config', true));
283 $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));
284 /// manage protocol page link
285 $temp = new admin_settingpage('webserviceprotocols', new lang_string('manageprotocols', 'webservice'));
286 $temp->add(new admin_setting_managewebserviceprotocols());
287 if (empty($CFG->enablewebservices
)) {
288 $temp->add(new admin_setting_heading('webservicesaredisabled', '', new lang_string('disabledwarning', 'webservice')));
291 // We cannot use $OUTPUT this early, doing so means that we lose the ability
292 // to set the page layout on all admin pages.
293 // $wsdoclink = $OUTPUT->doc_link('How_to_get_a_security_key');
294 $url = new moodle_url(get_docs_url('How_to_get_a_security_key'));
295 $wsdoclink = html_writer
::tag('a', new lang_string('supplyinfo', 'webservice'), array('href'=>$url));
296 $temp->add(new admin_setting_configcheckbox('enablewsdocumentation', new lang_string('enablewsdocumentation',
297 'admin'), new lang_string('configenablewsdocumentation', 'admin', $wsdoclink), false));
298 $ADMIN->add('webservicesettings', $temp);
299 /// links to protocol pages
300 foreach ($allplugins['webservice'] as $webservice) {
301 $webservice->load_settings($ADMIN, 'webservicesettings', $hassiteconfig);
303 /// manage token page link
304 $ADMIN->add('webservicesettings', new admin_externalpage('addwebservicetoken', new lang_string('managetokens', 'webservice'), "$CFG->wwwroot/$CFG->admin/webservice/tokens.php", 'moodle/site:config', true));
305 $temp = new admin_settingpage('webservicetokens', new lang_string('managetokens', 'webservice'));
306 $temp->add(new admin_setting_managewebservicetokens());
307 if (empty($CFG->enablewebservices
)) {
308 $temp->add(new admin_setting_heading('webservicesaredisabled', '', new lang_string('disabledwarning', 'webservice')));
310 $ADMIN->add('webservicesettings', $temp);
313 // Question type settings
314 if ($hassiteconfig ||
has_capability('moodle/question:config', $systemcontext)) {
315 if (!$hassiteconfig) {
316 require_once("$CFG->libdir/pluginlib.php");
317 $allplugins = plugin_manager
::instance()->get_plugins();
319 // Question behaviour settings.
320 $ADMIN->add('modules', new admin_category('qbehavioursettings', new lang_string('questionbehaviours', 'admin')));
321 $ADMIN->add('qbehavioursettings', new admin_page_manageqbehaviours());
323 // Question type settings.
324 $ADMIN->add('modules', new admin_category('qtypesettings', new lang_string('questiontypes', 'admin')));
325 $ADMIN->add('qtypesettings', new admin_page_manageqtypes());
326 foreach ($allplugins['qtype'] as $qtype) {
327 $qtype->load_settings($ADMIN, 'qtypesettings', $hassiteconfig);
331 // Plagiarism plugin settings
332 if ($hassiteconfig && !empty($CFG->enableplagiarism
)) {
333 $ADMIN->add('modules', new admin_category('plagiarism', new lang_string('plagiarism', 'plagiarism')));
334 $ADMIN->add('plagiarism', new admin_externalpage('manageplagiarismplugins', new lang_string('manageplagiarism', 'plagiarism'),
335 $CFG->wwwroot
. '/' . $CFG->admin
. '/plagiarism.php'));
337 foreach ($allplugins['plagiarism'] as $plugin) {
338 $plugin->load_settings($ADMIN, 'plagiarism', $hassiteconfig);
341 $ADMIN->add('reports', new admin_externalpage('comments', new lang_string('comments'), $CFG->wwwroot
.'/comment/', 'moodle/site:viewreports'));
343 // Course reports settings
344 if ($hassiteconfig) {
346 foreach (get_plugin_list('coursereport') as $report => $path) {
347 $file = $CFG->dirroot
. '/course/report/' . $report . '/settings.php';
348 if (file_exists($file)) {
349 $settings = new admin_settingpage('coursereport' . $report,
350 new lang_string('pluginname', 'coursereport_' . $report), 'moodle/site:config');
351 // settings.php may create a subcategory or unset the settings completely
354 $pages[] = $settings;
358 if (!empty($pages)) {
359 $ADMIN->add('modules', new admin_category('coursereports', new lang_string('coursereports')));
360 foreach ($pages as $page) {
361 $ADMIN->add('coursereports', $page);
369 foreach (get_plugin_list('report') as $report => $plugindir) {
370 $settings_path = "$plugindir/settings.php";
371 if (file_exists($settings_path)) {
372 $settings = new admin_settingpage('report' . $report,
373 new lang_string('pluginname', 'report_' . $report), 'moodle/site:config');
374 include($settings_path);
376 $pages[] = $settings;
380 $ADMIN->add('modules', new admin_category('reportplugins', new lang_string('reports')));
381 $ADMIN->add('reportplugins', new admin_externalpage('managereports', new lang_string('reportsmanage', 'admin'),
382 $CFG->wwwroot
. '/' . $CFG->admin
. '/reports.php'));
383 foreach ($pages as $page) {
384 $ADMIN->add('reportplugins', $page);
387 /// Add all admin tools
388 if ($hassiteconfig) {
389 $ADMIN->add('modules', new admin_category('tools', new lang_string('tools', 'admin')));
390 $ADMIN->add('tools', new admin_externalpage('managetools', new lang_string('toolsmanage', 'admin'),
391 $CFG->wwwroot
. '/' . $CFG->admin
. '/tools.php'));
394 // Now add various admin tools
395 foreach (get_plugin_list('tool') as $plugin => $plugindir) {
396 $settings_path = "$plugindir/settings.php";
397 if (file_exists($settings_path)) {
398 include($settings_path);
402 // Now add the Cache plugins
403 if ($hassiteconfig) {
404 $ADMIN->add('modules', new admin_category('cache', new lang_string('caching', 'cache')));
405 $ADMIN->add('cache', new admin_externalpage('cacheconfig', new lang_string('cacheconfig', 'cache'), $CFG->wwwroot
.'/cache/admin.php'));
406 $ADMIN->add('cache', new admin_externalpage('cachetestperformance', new lang_string('testperformance', 'cache'), $CFG->wwwroot
. '/cache/testperformance.php'));
407 $ADMIN->add('cache', new admin_category('cachestores', new lang_string('cachestores', 'cache')));
408 foreach (get_plugin_list('cachestore') as $plugin => $path) {
409 $settingspath = $path.'/settings.php';
410 if (file_exists($settingspath)) {
411 $settings = new admin_settingpage('cachestore_'.$plugin.'_settings', new lang_string('pluginname', 'cachestore_'.$plugin), 'moodle/site:config');
412 include($settingspath);
413 $ADMIN->add('cachestores', $settings);
418 /// Add all local plugins - must be always last!
419 if ($hassiteconfig) {
420 $ADMIN->add('modules', new admin_category('localplugins', new lang_string('localplugins')));
421 $ADMIN->add('localplugins', new admin_externalpage('managelocalplugins', new lang_string('localpluginsmanage'),
422 $CFG->wwwroot
. '/' . $CFG->admin
. '/localplugins.php'));
425 // extend settings for each local plugin. Note that their settings may be in any part of the
426 // settings tree and may be visible not only for administrators. We can not use $allplugins here
427 foreach (get_plugin_list('local') as $plugin => $plugindir) {
428 $settings_path = "$plugindir/settings.php";
429 if (file_exists($settings_path)) {
430 include($settings_path);