Files
moodle/admin/settings/plugins.php
T
jerome c5d2d0dd7c MDL-15402 implementation of repositories administration. Administrator can hide/show/sort/setup repositories. This code has been commited in order to be used by FilePicker.
Because it's doing the same thing than the filter manager, the code is similar. Some generic code need to be done (filter and repository code should use the same function, and the current generic filter lib should be refactor, at least their name). Optimization of original code should also be done if necessary.
2008-07-31 06:01:12 +00:00

231 lines
14 KiB
PHP

<?php //$Id$
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('modsettings', get_string('activities')));
$ADMIN->add('modsettings', new admin_page_managemods());
if ($modules = $DB->get_records('modules')) {
$modulebyname = array();
foreach ($modules as $module) {
$strmodulename = get_string('modulename', $module->name);
// Deal with modules which are lacking the language string
if ($strmodulename == '[[modulename]]') {
$textlib = textlib_get_instance();
$strmodulename = $textlib->strtotitle($module->name);
}
$modulebyname[$strmodulename] = $module;
}
ksort($modulebyname);
foreach ($modulebyname as $strmodulename=>$module) {
$modulename = $module->name;
if (file_exists($CFG->dirroot.'/mod/'.$modulename.'/settingstree.php')) {
include($CFG->dirroot.'/mod/'.$modulename.'/settingstree.php');
} else if (file_exists($CFG->dirroot.'/mod/'.$modulename.'/settings.php')) {
// do not show disabled modules in tree, keep only settings link on manage page
$settings = new admin_settingpage('modsetting'.$modulename, $strmodulename, 'moodle/site:config', !$module->visible);
if ($ADMIN->fulltree) {
include($CFG->dirroot.'/mod/'.$modulename.'/settings.php');
}
$ADMIN->add('modsettings', $settings);
} else if (file_exists($CFG->dirroot.'/mod/'.$modulename.'/config.html')) {
//TODO this branch should be deleted as soon as quiz/config.html has been
//migrated to settings.php
$ADMIN->add('modsettings', new admin_externalpage('modsetting'.$modulename, $strmodulename, "$CFG->wwwroot/$CFG->admin/module.php?module=$modulename", 'moodle/site:config', !$module->visible));
}
}
}
$ADMIN->add('modules', new admin_category('blocksettings', get_string('blocks')));
$ADMIN->add('blocksettings', new admin_page_manageblocks());
$ADMIN->add('blocksettings', new admin_externalpage('stickyblocks', get_string('stickyblocks', 'admin'), "$CFG->wwwroot/$CFG->admin/stickyblocks.php"));
if (!empty($CFG->blocks_version) and $blocks = $DB->get_records('block')) {
$blockbyname = array();
foreach ($blocks as $block) {
if(($blockobject = block_instance($block->name)) === false) {
// Failed to load
continue;
}
$blockbyname[$blockobject->get_title()] = $block;
}
ksort($blockbyname);
foreach ($blockbyname as $strblockname=>$block) {
$blockname = $block->name;
if (file_exists($CFG->dirroot.'/blocks/'.$blockname.'/settings.php')) {
$settings = new admin_settingpage('blocksetting'.$blockname, $strblockname, 'moodle/site:config', !$block->visible);
if ($ADMIN->fulltree) {
include($CFG->dirroot.'/blocks/'.$blockname.'/settings.php');
}
$ADMIN->add('blocksettings', $settings);
} else if (file_exists($CFG->dirroot.'/blocks/'.$blockname.'/config_global.html')) {
$ADMIN->add('blocksettings', new admin_externalpage('blocksetting'.$blockname, $strblockname, "$CFG->wwwroot/$CFG->admin/block.php?block=$block->id", 'moodle/site:config', !$block->visible));
}
}
}
//"Repositories" menu (inside "Site Administration block" > "Modules menu")
$ADMIN->add('modules', new admin_category('repsettings', get_string('repositories')));
$temp = new admin_settingpage('managereps', get_string('repsettings', 'admin'));
if ($ADMIN->fulltree) {
$items = array();
$items[] = new admin_setting_managerepositories();
foreach ($items as $item) {
$temp->add($item);
}
}
$ADMIN->add('repsettings', $temp);
if (empty($CFG->textfilters)) {
$activerepositories = array();
} else {
$activerepositories = explode(',', $CFG->textfilters);
}
$replocations = array('repository');
foreach ($replocations as $replocation) {
$repositories = get_list_of_plugins($replocation);
$repbyname = array();
foreach ($repositories as $repository) {
$strrepname = get_string('repositoryname', "repository_$repository",null,"$CFG->dirroot/$replocation/$plugin/lang/");
if ($strrepname == '[[repositoryname]]') {
$textlib = textlib_get_instance();
$strrepname = $textlib->strtotitle($repository);
}
$repbyname[$strrepname] = "$replocation/$repository";
}
ksort($repbyname);
foreach ($repbyname as $strrepname=>$repositoryfull) {
if (file_exists("$CFG->dirroot/$repositoryfull/pluginsettings.php")) {
$settings = new admin_settingpage('version'.str_replace('/', '', $repositoryfull), $strrepname, 'moodle/site:config', !in_array($repositoryfull, $activerepositories));
if ($ADMIN->fulltree) {
include("$CFG->dirroot/$repositoryfull/pluginsettings.php");
}
$ADMIN->add('repsettings', $settings);
}
}
}
//end of admin repositories menu
$ADMIN->add('modules', new admin_category('filtersettings', get_string('managefilters')));
// "filtersettings" settingpage
$temp = new admin_settingpage('managefilters', get_string('filtersettings', 'admin'));
if ($ADMIN->fulltree) {
$items = array();
$items[] = new admin_setting_managefilters();
$items[] = new admin_setting_heading('managefilterscommonheading', get_string('commonsettings', 'admin'), '');
$items[] = new admin_setting_configselect('cachetext', get_string('cachetext', 'admin'), get_string('configcachetext', 'admin'), 60, array(604800 => get_string('numdays','',7),
86400 => get_string('numdays','',1),
43200 => get_string('numhours','',12),
10800 => get_string('numhours','',3),
7200 => get_string('numhours','',2),
3600 => get_string('numhours','',1),
2700 => get_string('numminutes','',45),
1800 => get_string('numminutes','',30),
900 => get_string('numminutes','',15),
600 => get_string('numminutes','',10),
540 => get_string('numminutes','',9),
480 => get_string('numminutes','',8),
420 => get_string('numminutes','',7),
360 => get_string('numminutes','',6),
300 => get_string('numminutes','',5),
240 => get_string('numminutes','',4),
180 => get_string('numminutes','',3),
120 => get_string('numminutes','',2),
60 => get_string('numminutes','',1),
30 => get_string('numseconds','',30),
0 => get_string('no')));
$items[] = new admin_setting_configselect('filteruploadedfiles', get_string('filteruploadedfiles', 'admin'), get_string('configfilteruploadedfiles', 'admin'), 0, array('0' => get_string('none'),
'1' => get_string('allfiles'),
'2' => get_string('htmlfilesonly')));
$items[] = new admin_setting_configcheckbox('filtermatchoneperpage', get_string('filtermatchoneperpage', 'admin'), get_string('configfiltermatchoneperpage', 'admin'), 0);
$items[] = new admin_setting_configcheckbox('filtermatchonepertext', get_string('filtermatchonepertext', 'admin'), get_string('configfiltermatchonepertext', 'admin'), 0);
$items[] = new admin_setting_configcheckbox('filterall', get_string('filterall', 'admin'), get_string('configfilterall', 'admin'), 0);
foreach ($items as $item) {
$item->set_updatedcallback('reset_text_filters_cache');
$temp->add($item);
}
}
$ADMIN->add('filtersettings', $temp);
if (empty($CFG->textfilters)) {
$activefilters = array();
} else {
$activefilters = explode(',', $CFG->textfilters);
}
$filterlocations = array('mod','filter');
foreach ($filterlocations as $filterlocation) {
$filters = get_list_of_plugins($filterlocation);
$filterbyname = array();
foreach ($filters as $filter) {
$strfiltername = get_string('filtername', $filter);
// Deal with filters which are lacking the language string
if ($strfiltername == '[[filtername]]') {
$textlib = textlib_get_instance();
$strfiltername = $textlib->strtotitle($filter);
}
$filterbyname[$strfiltername] = "$filterlocation/$filter";
}
ksort($filterbyname);
foreach ($filterbyname as $strfiltername=>$filterfull) {
if (file_exists("$CFG->dirroot/$filterfull/filtersettings.php")) {
$settings = new admin_settingpage('filtersetting'.str_replace('/', '', $filterfull), $strfiltername, 'moodle/site:config', !in_array($filterfull, $activefilters));
if ($ADMIN->fulltree) {
include("$CFG->dirroot/$filterfull/filtersettings.php");
}
$ADMIN->add('filtersettings', $settings);
} else if (file_exists("$CFG->dirroot/$filterfull/filterconfig.html")) {
$ADMIN->add('filtersettings', new admin_externalpage('filtersetting'.str_replace('/', '', $filterfull), $strfiltername, "$CFG->wwwroot/$CFG->admin/filter.php?filter=$filterfull", !in_array($filterfull, $activefilters)));
}
}
}
require_once($CFG->libdir. '/portfoliolib.php');
$catname =get_string('portfolios', 'portfolio');
$manage = get_string('manageportfolios', 'portfolio');
$url = "$CFG->wwwroot/$CFG->admin/portfolio.php";
$ADMIN->add('modules', new admin_category('portfoliosettings', $catname));
// jump through hoops to do what we want
$temp = new admin_settingpage('manageportfolios', get_string('manageportfolios', 'portfolio'));
$temp->add(new admin_setting_configcheckbox('portfolioenabled', get_string('enabled', 'portfolio'), get_string('enableddesc', 'portfolio'), true));
$temp->add(new admin_setting_manageportfolio());
$ADMIN->add('portfoliosettings', $temp);
$ADMIN->add('portfoliosettings', new admin_externalpage('portfolionew', get_string('addnewportfolio', 'portfolio'), $url, 'moodle/site:config', true), '', $url);
$ADMIN->add('portfoliosettings', new admin_externalpage('portfoliodelete', get_string('deleteportfolio', 'portfolio'), $url, 'moodle/site:config', true), '', $url);
$ADMIN->add('portfoliosettings', new admin_externalpage('portfoliocontroller', get_string('manageportfolios', 'portfolio'), $url, 'moodle/site:config', true), '', $url);
foreach (portfolio_instances() as $portfolio) {
require_once($CFG->dirroot . '/portfolio/type/' . $portfolio->get('plugin') . '/lib.php');
$classname = 'portfolio_plugin_' . $portfolio->get('plugin');
$ADMIN->add(
'portfoliosettings',
new admin_externalpage('portfoliosettings' . $portfolio->get('id'), get_string('configure', 'portfolio') . ' ' . $portfolio->get('name'), $url . '?edit=' . $portfolio->get('id')),
$portfolio->get('name'),
$url . ' ?edit=' . $portfolio->get('id')
);
}
}
?>