MDL-35661 Loading of plugin settings for plagiarism plugins (plugininfo_plagiarism)

This commit is contained in:
Marina Glancy 2012-09-19 12:34:47 +08:00
parent 66f3684a38
commit d98305bdda
2 changed files with 23 additions and 4 deletions

View File

@ -343,10 +343,8 @@ if ($hassiteconfig && !empty($CFG->enableplagiarism)) {
$ADMIN->add('plagiarism', new admin_externalpage('manageplagiarismplugins', new lang_string('manageplagiarism', 'plagiarism'),
$CFG->wwwroot . '/' . $CFG->admin . '/plagiarism.php'));
foreach (get_plugin_list('plagiarism') as $plugin => $plugindir) {
if (file_exists($plugindir.'/settings.php')) {
$ADMIN->add('plagiarism', new admin_externalpage('plagiarism'.$plugin, new lang_string($plugin, 'plagiarism_'.$plugin), "$CFG->wwwroot/plagiarism/$plugin/settings.php", 'moodle/site:config'));
}
foreach ($allplugins['plagiarism'] as $plugin) {
$plugin->load_settings($ADMIN, 'plagiarism', $hassiteconfig);
}
}
$ADMIN->add('reports', new admin_externalpage('comments', new lang_string('comments'), $CFG->wwwroot.'/comment/', 'moodle/site:viewreports'));

View File

@ -2750,3 +2750,24 @@ class plugininfo_editor extends plugininfo_base {
return false;
}
}
/**
* Class for plagiarism plugins
*/
class plugininfo_plagiarism extends plugininfo_base {
public function get_settings_section_name() {
return 'plagiarism'. $this->name;
}
public function load_settings(part_of_admin_tree $adminroot, $parentnodename, $hassiteconfig) {
// plagiarism plugin just redirect to settings.php in the plugins directory
if ($hassiteconfig && file_exists($this->full_path('settings.php'))) {
$section = $this->get_settings_section_name();
$settingsurl = new moodle_url($this->get_dir().'/settings.php');
$settings = new admin_externalpage($section, $this->displayname,
$settingsurl, 'moodle/site:config', $this->is_enabled() === false);
$adminroot->add($parentnodename, $settings);
}
}
}