diff --git a/lib/pluginlib.php b/lib/pluginlib.php index 08875353b71..20f8a340254 100644 --- a/lib/pluginlib.php +++ b/lib/pluginlib.php @@ -296,7 +296,7 @@ class plugin_manager { foreach ($this->get_plugins() as $type => $plugins) { foreach ($plugins as $plugin) { - if (!empty($plugin->versionrequires) && $plugin->versionrequires > $moodleversion) { + if (!$plugin->is_core_dependency_satisfied($moodleversion)) { $return = false; $failedplugins[] = $plugin->component; } @@ -1620,6 +1620,22 @@ abstract class plugininfo_base { return $this->source === plugin_manager::PLUGIN_SOURCE_STANDARD; } + /** + * Returns true if the the given Moodle version is enough to run this plugin + * + * @param string|int|double $moodleversion + * @return bool + */ + public function is_core_dependency_satisfied($moodleversion) { + + if (empty($this->versionrequires)) { + return true; + + } else { + return (double)$this->versionrequires <= (double)$moodleversion; + } + } + /** * Returns the status of the plugin *