+++ /dev/null
-<?php // $Id$\r
-\r
- require_once('../config.php');\r
-\r
- $action = optional_param('action', '', PARAM_ACTION);\r
- $repositorypath = optional_param('filterpath', '', PARAM_PATH);\r
-\r
- require_login();\r
- require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));\r
-\r
- $returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=managereps";\r
-\r
- if (!confirm_sesskey()) {\r
- redirect($returnurl);\r
- }\r
-\r
- // get a list of installed repositories\r
- $installedrepositories = array();\r
- $repositorylocations = array('repository');\r
- foreach ($repositorylocations as $repositorylocation) {\r
- $plugins = get_list_of_plugins($repositorylocation);\r
- foreach ($plugins as $plugin) {\r
- $pluginpath = "$CFG->dirroot/$repositorylocation/$plugin/version.php";\r
- if (is_readable($pluginpath)) {\r
- $installedrepositories["$repositorylocation/$plugin"] = "$repositorylocation/$plugin";\r
- }\r
- }\r
- }\r
-\r
- // get all the currently selected repositories\r
- if (!empty($CFG->textfilters)) {\r
- $activerepositories = explode(',', $CFG->textfilters);\r
- } else {\r
- $activerepositories = array();\r
- }\r
-\r
- //======================\r
- // Process Actions\r
- //======================\r
-\r
- switch ($action) {\r
-\r
- case 'hide':\r
- $key=array_search($repositorypath, $activerepositories);\r
- // check repositorypath is valid\r
- if ($key===false) {\r
- break;\r
- }\r
- // just delete it\r
- unset($activerepositories[$key]);\r
- break;\r
-\r
- case 'show':\r
- // check repositorypath is valid\r
- if (!array_key_exists($repositorypath, $installedrepositories)) {\r
- print_error('filternotinstalled', 'error', $url, $repositorypath);\r
- } elseif (array_search($repositorypath,$activerepositories)) {\r
- // repositorypath is already active - doubleclick??\r
- } else {\r
- // add it to installed filters\r
- $activerepositories[] = $repositorypath;\r
- $activerepositories = array_unique($activerepositories);\r
- }\r
- break;\r
-\r
- case 'down':\r
- $key=array_search($repositorypath, $activerepositories);\r
- // check repositorypath is valid\r
- if ($key===false) {\r
- print_error("filternotactive", 'error', $url, $repositorypath );\r
- } elseif ($key>=(count($activerepositories)-1)) {\r
- // cannot be moved any further down - doubleclick??\r
- } else {\r
- // swap with $key+1\r
- $fsave = $activerepositories[$key];\r
- $activerepositories[$key] = $activerepositories[$key+1];\r
- $activerepositories[$key+1] = $fsave;\r
- }\r
- break;\r
-\r
- case 'up':\r
- $key=array_search($repositorypath, $activerepositories);\r
- // check repositorypath is valid\r
- if ($key===false) {\r
- print_error("filternotactive", 'error', $url, $repositorypath );\r
- } elseif ($key<1) {\r
- //cannot be moved any further up - doubleclick??\r
- } else {\r
- // swap with $key-1\r
- $fsave = $activerepositories[$key];\r
- $activerepositories[$key] = $activerepositories[$key-1];\r
- $activerepositories[$key-1] = $fsave;\r
- }\r
- break;\r
- }\r
-\r
- // save, reset cache and return\r
- set_config('textfilters', implode(',', $activerepositories));\r
- reset_text_filters_cache();\r
- redirect($returnurl);\r
-\r
-?>\r
}
}
- //"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
$string['releasenoteslink'] = 'For information about this version of Moodle, please see the online <a target=\"_blank\" href=\"$a\">Release Notes</a>';
$string['remotelangnotavailable'] = 'Because Moodle can not connect to download.moodle.org, we are unable to do language pack installation automatically. Please download the appropriate zip file(s) from the list below, copy them to your $a directory and unzip them manually.';
$string['renameerrors'] = 'Rename errors';
-$string['repsettings'] = 'Manage Repositories';
-$string['repsettingsgeneral'] = 'General repositories settings';
$string['requiredtemplate'] = 'Required. You may use template syntax here (%%l = lastname, %%f = firstname, %%u = username). See help for details and examples.';
$string['restrictbydefault'] = 'Restrict modules by default';
$string['restrictmodulesfor'] = 'Restrict modules for';
$string['renamefileto'] = 'Rename <b>$a</b> to';
$string['report'] = 'Report';
$string['reports'] = 'Reports';
-$string['repositories'] = 'Repositories';
-$string['repositoriesmanage'] = 'Manage Repositories';
$string['requestcourse'] = 'Request a course';
$string['requestedby'] = 'Requested by';
$string['requestreason'] = 'Reason for course request';
}
-/**
- * Special class for repositories administration.
- */
-class admin_setting_managerepositories extends admin_setting {
- function admin_setting_managerepositories() {
- parent::admin_setting('repositoriessui', get_string('repsettings', 'admin'), '', '');
- }
-
- function get_setting() {
- return true;
- }
-
- function get_defaultsetting() {
- return true;
- }
-
- function write_setting($data) {
- // do not write any setting
- return '';
- }
-
- function output_html($data, $query='') {
- global $CFG;
-
- $strname = get_string('name');
- $strhide = get_string('disable');
- $strshow = get_string('enable');
- $strhideshow = "$strhide/$strshow";
- $strsettings = get_string('settings');
- $strup = get_string('up');
- $strdown = get_string('down');
- $strupdown = "$strup/$strdown";
-
- // get a list of possible repositories (and translate name if possible)
- // note repositories are in the dedicated repositories area
- $installedrepositories = array();
- $repsettings = array();
- $replocations = array('repository');
- foreach ($replocations as $replocation) {
- $plugins = get_list_of_plugins($replocation);
- foreach ($plugins as $plugin) {
- $pluginpath = "$CFG->dirroot/$replocation/$plugin/repository.class.php";
- $settingspath_new = "$CFG->dirroot/$replocation/$plugin/pluginsettings.php";
- if (is_readable($pluginpath)) {
- $name = trim(get_string("repositoryname", "repository_$plugin",null,"$CFG->dirroot/$replocation/$plugin/lang/"));
- if (empty($name) or ($name == '[[repositoryname]]')) {
- $textlib = textlib_get_instance();
- $name = $textlib->strtotitle($plugin);
- }
- $installedrepositories["$replocation/$plugin"] = $name;
- if (is_readable($settingspath_new)) {
- $repsettings[] = "$replocation/$plugin";
- }
- }
- }
- }
-
- // get all the currently selected repositories
- if (!empty($CFG->textfilters)) {
- $oldactiverepositories = explode(',', $CFG->textfilters);
- $oldactiverepositories = array_unique($oldactiverepositories);
- } else {
- $oldactiverepositories = array();
- }
-
- // take this opportunity to clean up repositories
- $activerepositories = array();
- foreach ($oldactiverepositories as $oldactiverepository) {
- if (!empty($oldactiverepository) and array_key_exists($oldactiverepository, $installedrepositories)) {
- $activerepositories[] = $oldactiverepository;
- }
- }
-
-
- // construct the display array with installed repositories
- // at the top in the right order
- $displayrepositories = array();
- foreach ($activerepositories as $activerepository) {
- $name = $installedrepositories[$activerepository];
- $displayrepositories[$activerepository] = $name;
- }
- foreach ($installedrepositories as $key => $repository) {
- if (!array_key_exists($key, $displayrepositories)) {
- $displayrepositories[$key] = $repository;
- }
- }
-
- $return = print_heading(get_string('activaterep', 'repository'), '', 3, 'main', true);
- $return .= print_box_start('generalbox repositoriesui', '', true);
-
- $table = new object();
- $table->head = array($strname, $strhideshow, $strupdown, $strsettings);
- $table->align = array('left', 'center', 'center', 'center');
- $table->width = '90%';
- $table->data = array();
-
- $repsurl = "$CFG->wwwroot/$CFG->admin/repositories.php?sesskey=".sesskey();
- $imgurl = "$CFG->pixpath/t";
-
- // iterate through repositories adding to display table
- $updowncount = 1;
- $activerepositoriescount = count($activerepositories);
- foreach ($displayrepositories as $path => $name) {
- $upath = urlencode($path);
- // get hide/show link
- if (in_array($path, $activerepositories)) {
- $hideshow = "<a href=\"$repsurl&action=hide&filterpath=$upath\">";
- $hideshow .= "<img src=\"{$CFG->pixpath}/i/hide.gif\" class=\"icon\" alt=\"$strhide\" /></a>";
- $hidden = false;
- $displayname = "<span>$name</span>";
- }
- else {
- $hideshow = "<a href=\"$repsurl&action=show&filterpath=$upath\">";
- $hideshow .= "<img src=\"{$CFG->pixpath}/i/show.gif\" class=\"icon\" alt=\"$strshow\" /></a>";
- $hidden = true;
- $displayname = "<span class=\"dimmed_text\">$name</span>";
- }
-
- // get up/down link (only if not hidden)
- $updown = '';
- if (!$hidden) {
- if ($updowncount>1) {
- $updown .= "<a href=\"$repsurl&action=up&filterpath=$upath\">";
- $updown .= "<img src=\"$imgurl/up.gif\" alt=\"$strup\" /></a> ";
- }
- else {
- $updown .= "<img src=\"$CFG->pixpath/spacer.gif\" class=\"icon\" alt=\"\" /> ";
- }
- if ($updowncount<$activerepositoriescount) {
- $updown .= "<a href=\"$repsurl&action=down&filterpath=$upath\">";
- $updown .= "<img src=\"$imgurl/down.gif\" alt=\"$strdown\" /></a>";
- }
- else {
- $updown .= "<img src=\"$CFG->pixpath/spacer.gif\" class=\"icon\" alt=\"\" />";
- }
- ++$updowncount;
- }
-
- // settings link (if defined)
- $settings = '';
- if (in_array($path, $repsettings)) {
- $settings = "<a href=\"settings.php?section=version".str_replace('/', '',$path)."\">$strsettings</a>";
- }
-
- // write data into the table object
- $table->data[] = array($displayname, $hideshow, $updown, $settings);
- }
- $return .= print_table($table, true);
- $return .= get_string('tablenosave', 'filters');
- $return .= print_box_end(true);
- return highlight($query, $return);
- }
-}
/**
* Initialise admin page - this function does require login and permission
+++ /dev/null
-<?php //$Id$
-
-$settings->add(new admin_setting_configtext('repository_boxnet', "Mock setting example",
- '<br />', ''));
-
-
-?>