mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
Merge branch 'MDL-30408-master' of git://github.com/sammarshallou/moodle
This commit is contained in:
commit
ec43e2267c
@ -270,7 +270,15 @@ class course_edit_form extends moodleform {
|
||||
}
|
||||
|
||||
$mods = array(0=>get_string('allownone'));
|
||||
$mods += $DB->get_records_menu('modules', array('visible'=>1), 'name', 'id, name');
|
||||
$allmods = $DB->get_records_menu('modules', array('visible' => 1),
|
||||
'name', 'id, name');
|
||||
foreach ($allmods as $key => $value) {
|
||||
// Add module to list unless it cannot be added by users anyway
|
||||
if (plugin_supports('mod', $value, FEATURE_MOD_ARCHETYPE, MOD_ARCHETYPE_OTHER) !==
|
||||
MOD_ARCHETYPE_SYSTEM) {
|
||||
$mods[$key] = get_string('pluginname', $value);
|
||||
}
|
||||
}
|
||||
$mform->addElement('select', 'allowedmods', get_string('to'), $mods, array('multiple'=>'multiple', 'size'=>'10'));
|
||||
$mform->disabledIf('allowedmods', 'restrictmodules', 'eq', 0);
|
||||
// defaults are already in $course
|
||||
|
@ -1858,6 +1858,8 @@ function print_section_add_menus($course, $section, $modnames, $vertical=false,
|
||||
$archetype = plugin_supports('mod', $modname, FEATURE_MOD_ARCHETYPE, MOD_ARCHETYPE_OTHER);
|
||||
if ($archetype == MOD_ARCHETYPE_RESOURCE) {
|
||||
$resources[$urlbase.$modname] = $modnamestr;
|
||||
} else if ($archetype === MOD_ARCHETYPE_SYSTEM) {
|
||||
// System modules cannot be added by user, do not add to dropdown
|
||||
} else {
|
||||
// all other archetypes are considered activity
|
||||
$activities[$urlbase.$modname] = $modnamestr;
|
||||
|
@ -7896,6 +7896,8 @@ class admin_setting_devicedetectregex extends admin_setting {
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class admin_setting_configmultiselect_modules extends admin_setting_configmultiselect {
|
||||
private $excludesystem;
|
||||
|
||||
/**
|
||||
* Calls parent::__construct - note array $choices is not required
|
||||
*
|
||||
@ -7903,9 +7905,12 @@ class admin_setting_configmultiselect_modules extends admin_setting_configmultis
|
||||
* @param string $visiblename localised setting name
|
||||
* @param string $description setting description
|
||||
* @param array $defaultsetting a plain array of default module ids
|
||||
* @param bool $excludesystem If true, excludes modules with 'system' archetype
|
||||
*/
|
||||
public function __construct($name, $visiblename, $description, $defaultsetting = array()) {
|
||||
public function __construct($name, $visiblename, $description, $defaultsetting = array(),
|
||||
$excludesystem = true) {
|
||||
parent::__construct($name, $visiblename, $description, $defaultsetting, null);
|
||||
$this->excludesystem = $excludesystem;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -7922,8 +7927,14 @@ class admin_setting_configmultiselect_modules extends admin_setting_configmultis
|
||||
global $CFG, $DB;
|
||||
$records = $DB->get_records('modules', array('visible'=>1), 'name');
|
||||
foreach ($records as $record) {
|
||||
// Exclude modules if the code doesn't exist
|
||||
if (file_exists("$CFG->dirroot/mod/$record->name/lib.php")) {
|
||||
$this->choices[$record->id] = $record->name;
|
||||
// Also exclude system modules (if specified)
|
||||
if (!($this->excludesystem &&
|
||||
plugin_supports('mod', $record->name, FEATURE_MOD_ARCHETYPE) ===
|
||||
MOD_ARCHETYPE_SYSTEM)) {
|
||||
$this->choices[$record->id] = $record->name;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -417,6 +417,8 @@ define('MOD_ARCHETYPE_OTHER', 0);
|
||||
define('MOD_ARCHETYPE_RESOURCE', 1);
|
||||
/** Assignment module archetype */
|
||||
define('MOD_ARCHETYPE_ASSIGNMENT', 2);
|
||||
/** System (not user-addable) module archetype */
|
||||
define('MOD_ARCHETYPE_SYSTEM', 3);
|
||||
|
||||
/**
|
||||
* Security token used for allowing access
|
||||
|
Loading…
x
Reference in New Issue
Block a user