MDL-32329 new plugininfo_base::is_core_dependency_satisfied() method
authorDavid Mudrak <david@moodle.com>
Fri, 25 May 2012 08:38:48 +0000 (10:38 +0200)
committerDavid Mudrak <david@moodle.com>
Wed, 30 May 2012 08:35:28 +0000 (10:35 +0200)
The method's logic was previously implemented in all_plugins_ok() but we
will need to call it separately. Also make the code cleaner.

lib/pluginlib.php

index 0887535..20f8a34 100644 (file)
@@ -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
      *