mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
Merge branch 'MDL-43896-master-modulesyntax' of git://github.com/mudrd8mz/moodle
This commit is contained in:
commit
7cc3cf6fc0
@ -300,29 +300,21 @@ class tool_installaddon_validator {
|
||||
$this->versionphp = array();
|
||||
$info = $this->parse_version_php($fullpath);
|
||||
|
||||
if ($this->assertions['plugintype'] === 'mod') {
|
||||
$type = 'module';
|
||||
} else {
|
||||
$type = 'plugin';
|
||||
if (isset($info['module->version'])) {
|
||||
$this->add_message(self::ERROR, 'versionphpsyntax', '$module');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!isset($info[$type.'->version'])) {
|
||||
if ($type === 'module' and isset($info['plugin->version'])) {
|
||||
// Expect the activity module using $plugin in version.php instead of $module.
|
||||
$type = 'plugin';
|
||||
$this->versionphp['version'] = $info[$type.'->version'];
|
||||
$this->add_message(self::INFO, 'pluginversion', $this->versionphp['version']);
|
||||
} else {
|
||||
$this->add_message(self::ERROR, 'missingversion');
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
$this->versionphp['version'] = $info[$type.'->version'];
|
||||
if (isset($info['plugin->version'])) {
|
||||
$this->versionphp['version'] = $info['plugin->version'];
|
||||
$this->add_message(self::INFO, 'pluginversion', $this->versionphp['version']);
|
||||
} else {
|
||||
$this->add_message(self::ERROR, 'missingversion');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isset($info[$type.'->requires'])) {
|
||||
$this->versionphp['requires'] = $info[$type.'->requires'];
|
||||
if (isset($info['plugin->requires'])) {
|
||||
$this->versionphp['requires'] = $info['plugin->requires'];
|
||||
if ($this->versionphp['requires'] > $this->assertions['moodleversion']) {
|
||||
$this->add_message(self::ERROR, 'requiresmoodle', $this->versionphp['requires']);
|
||||
return false;
|
||||
@ -330,8 +322,8 @@ class tool_installaddon_validator {
|
||||
$this->add_message(self::INFO, 'requiresmoodle', $this->versionphp['requires']);
|
||||
}
|
||||
|
||||
if (isset($info[$type.'->component'])) {
|
||||
$this->versionphp['component'] = $info[$type.'->component'];
|
||||
if (isset($info['plugin->component'])) {
|
||||
$this->versionphp['component'] = $info['plugin->component'];
|
||||
list($reqtype, $reqname) = core_component::normalize_component($this->versionphp['component']);
|
||||
if ($reqtype !== $this->assertions['plugintype']) {
|
||||
$this->add_message(self::ERROR, 'componentmismatchtype', array(
|
||||
@ -346,8 +338,8 @@ class tool_installaddon_validator {
|
||||
$this->add_message(self::INFO, 'componentmatch', $this->versionphp['component']);
|
||||
}
|
||||
|
||||
if (isset($info[$type.'->maturity'])) {
|
||||
$this->versionphp['maturity'] = $info[$type.'->maturity'];
|
||||
if (isset($info['plugin->maturity'])) {
|
||||
$this->versionphp['maturity'] = $info['plugin->maturity'];
|
||||
if ($this->versionphp['maturity'] === 'MATURITY_STABLE') {
|
||||
$this->add_message(self::INFO, 'maturity', $this->versionphp['maturity']);
|
||||
} else {
|
||||
@ -355,8 +347,8 @@ class tool_installaddon_validator {
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($info[$type.'->release'])) {
|
||||
$this->versionphp['release'] = $info[$type.'->release'];
|
||||
if (isset($info['plugin->release'])) {
|
||||
$this->versionphp['release'] = $info['plugin->release'];
|
||||
$this->add_message(self::INFO, 'release', $this->versionphp['release']);
|
||||
}
|
||||
|
||||
|
@ -91,6 +91,7 @@ $string['validationmsg_rootdirinvalid_help'] = 'The name of the root directory i
|
||||
$string['validationmsg_targetexists'] = 'Target location already exists';
|
||||
$string['validationmsg_targetexists_help'] = 'The directory that the plugin is to be installed to must not yet exist.';
|
||||
$string['validationmsg_unknowntype'] = 'Unknown plugin type';
|
||||
$string['validationmsg_versionphpsyntax'] = 'Unsupported syntax detected in version.php file';
|
||||
$string['validationmsglevel_debug'] = 'Debug';
|
||||
$string['validationmsglevel_error'] = 'Error';
|
||||
$string['validationmsglevel_info'] = 'OK';
|
||||
|
@ -1,4 +1,3 @@
|
||||
<?php
|
||||
|
||||
$module->version = 2014122455;
|
||||
$plugin->version = 2014122455;
|
||||
|
@ -1,9 +1,7 @@
|
||||
<?php
|
||||
|
||||
$module->version = 10; // Ignored, this should use $plugin
|
||||
$plugin->version = 2013031900;
|
||||
$plugin->component = 'local_foobar';
|
||||
$plugin->requires = 2013031200;
|
||||
$module->release = 'We are not an activity module!';
|
||||
$plugin->maturity = MATURITY_ALPHA;
|
||||
//$plugin->release = 'And this is commented';
|
||||
|
3
admin/tool/installaddon/tests/fixtures/plugindir/legacymod/lang/en/legacymod.php
vendored
Normal file
3
admin/tool/installaddon/tests/fixtures/plugindir/legacymod/lang/en/legacymod.php
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
|
||||
$string['modulename'] = 'Legacy activity module with $module in version.php';
|
4
admin/tool/installaddon/tests/fixtures/plugindir/legacymod/version.php
vendored
Normal file
4
admin/tool/installaddon/tests/fixtures/plugindir/legacymod/version.php
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
|
||||
// Support for the $module has been dropped in Moodle 3.0.
|
||||
$module->version = 2013031900;
|
@ -134,6 +134,17 @@ class tool_installaddon_validator_testcase extends basic_testcase {
|
||||
$this->assertFalse($validator->execute());
|
||||
$this->assertTrue($this->has_message($validator->get_messages(), $validator::ERROR, 'missingversionphp'));
|
||||
|
||||
$validator = testable_tool_installaddon_validator::instance($fixtures.'/plugindir', array(
|
||||
'legacymod/' => true,
|
||||
'legacymod/version.php' => true,
|
||||
'legacymod/lang/' => true,
|
||||
'legacymod/lang/en/' => true,
|
||||
'legacymod/lang/en/legacymod.php' => true));
|
||||
$validator->assert_plugin_type('mod');
|
||||
$validator->assert_moodle_version(0);
|
||||
$this->assertFalse($validator->execute());
|
||||
$this->assertTrue($this->has_message($validator->get_messages(), $validator::ERROR, 'versionphpsyntax', '$module'));
|
||||
|
||||
$validator = testable_tool_installaddon_validator::instance($fixtures.'/plugindir', array(
|
||||
'foobar/' => true,
|
||||
'foobar/version.php' => true,
|
||||
|
@ -288,15 +288,24 @@ class core_plugin_manager {
|
||||
foreach ($plugintypes as $type => $typedir) {
|
||||
$plugs = core_component::get_plugin_list($type);
|
||||
foreach ($plugs as $plug => $fullplug) {
|
||||
$module = new stdClass();
|
||||
$plugin = new stdClass();
|
||||
$plugin->version = null;
|
||||
$module = $plugin;
|
||||
include($fullplug.'/version.php');
|
||||
|
||||
// Check if the legacy $module syntax is still used.
|
||||
if (!is_object($module) or (!empty((array)$module))) {
|
||||
debugging('Unsupported $module syntax detected in version.php of the '.$type.'_'.$plug.' plugin.');
|
||||
$skipcache = true;
|
||||
}
|
||||
|
||||
$this->presentplugins[$type][$plug] = $plugin;
|
||||
}
|
||||
}
|
||||
|
||||
$cache->set('present', $this->presentplugins);
|
||||
if (empty($skipcache)) {
|
||||
$cache->set('present', $this->presentplugins);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -600,12 +600,18 @@ function upgrade_plugins_modules($startcallback, $endcallback, $verbose) {
|
||||
throw new plugin_defective_exception($component, 'Missing version.php');
|
||||
}
|
||||
|
||||
// TODO: Support for $module will end with Moodle 2.10 by MDL-43896. Was deprecated for Moodle 2.7 by MDL-43040.
|
||||
$module = new stdClass();
|
||||
$plugin = new stdClass();
|
||||
$plugin->version = null;
|
||||
$module = $plugin;
|
||||
require($fullmod .'/version.php'); // Defines $plugin with version etc.
|
||||
$plugin = clone($module);
|
||||
|
||||
// Check if the legacy $module syntax is still used.
|
||||
if (!is_object($module) or (!empty((array)$module))) {
|
||||
throw new plugin_defective_exception($component, 'Unsupported $module syntax detected in version.php');
|
||||
}
|
||||
|
||||
// Prepare the record for the {modules} table.
|
||||
$module = clone($plugin);
|
||||
unset($module->version);
|
||||
unset($module->component);
|
||||
unset($module->dependencies);
|
||||
|
@ -3,7 +3,11 @@ information provided here is intended especially for developers.
|
||||
|
||||
=== 3.0 ===
|
||||
|
||||
* Function scorm_view_display was renamed to scorm_print_launch to avoid confussion with new function scorm_view.
|
||||
* Dropped support for the $module in mod/xxx/version.php files (deprecated
|
||||
since 2.7). All activity modules must use the $plugin syntax now. See
|
||||
https://docs.moodle.org/dev/version.php for details (MDL-43896).
|
||||
* Function scorm_view_display was renamed to scorm_print_launch to avoid
|
||||
confussion with new function scorm_view.
|
||||
|
||||
=== 2.9 ===
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user