]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Removed experimental duplicate code from ElggPlugin.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 3 Jan 2011 03:18:41 +0000 (03:18 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 3 Jan 2011 03:18:41 +0000 (03:18 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@7822 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/classes/ElggPluginPackage.php

index 6301ad1f248215b8016842ae69844139611c6f8b..dcc6918d09bc6113ff8792152980ecae8127397d 100644 (file)
@@ -453,282 +453,6 @@ class ElggPluginPackage {
                return $r;
        }
 
-
-       /**************************************
-        * Detailed reports for requirements. *
-        **************************************/
-
-
-       /**
-        * Returns a report of the dependencies with human
-        * readable statuses.
-        *
-        * @return array
-        */
-       public function getDependenciesReport() {
-               $requires = $this->getManifest()->getRequires();
-               $conflicts = $this->getManifest()->getConflicts();
-               $enabled_plugins = get_installed_plugins('enabled');
-
-               $status = true;
-               $messages = array();
-
-               $return = array(
-                       array(
-                               'type' => 'requires',
-                               'dep' => $dep,
-                               'status' => 'bool',
-                               'comment' => ''
-                       )
-               );
-
-               foreach ($requires as $require) {
-                       switch ($require['type']) {
-                               case 'elgg_version':
-                                       $result = $this->checkRequiresElgg($require, get_version());
-                                       break;
-
-                               case 'elgg_release':
-                                       $result = $this->checkRequiresElgg($require, get_version(true));
-                                       break;
-
-                               case 'plugin':
-                                       $result = $this->checkDepsPlugin($require, $enabled_plugins);
-                                       break;
-
-                               case 'php_extension':
-                                       $result = $this->checkRequiresPhpExtension($require);
-                                       break;
-
-                               case 'php_ini':
-                                       $result = $this->checkRequiresPhpIni($require);
-                                       break;
-
-                               default:
-                                       $result = array(
-                                               'status' => false,
-                                               'message' => elgg_echo('ElggPluginPackage:UnknownDep',
-                                                                               array($require['type'], $this->getManifest()->getPluginID()))
-                                       );
-                                       break;
-                       }
-
-                       if (!$result['status']) {
-                               $status = false;
-                               $messages[] = $result['message'];
-                       }
-               }
-
-               foreach ($conflicts as $conflict) {
-
-               }
-
-               $return = array(
-                       'status' => $status,
-                       'messages' => $messages
-               );
-
-               return $return;
-       }
-
-       /**
-        * Checks if $plugins meets the requirement by $require.
-        *
-        * Returns an array in the form array('status' => bool, 'message' => 'Any messages')
-        *
-        * @param array $require An Elgg manifest.xml requires array
-        * @param array $plugins A list of plugins as returned by get_installed_plugins();
-        * @return array
-        */
-       private function checkRequiresPlugin(array $require, array $plugins = array()) {
-               $status = true;
-               $message = '';
-
-               $name = $require['name'];
-               $version = $require['version'];
-               $comparison = $require['comparison'];
-
-               // not enabled.
-               if (!array_key_exists($name, $plugins)) {
-                       $status = false;
-
-                       if ($version) {
-                               $message = elgg_echo("ElggPluginPackage:Requires:Plugin:NotEnabled:$comparison",
-                                                       array($this->getManifest()->getPluginID(), $name, $version));
-                       } else {
-                               $message = elgg_echo('ElggPluginPackage:Requires:Plugin:NotEnabled:NoVersion',
-                                                       array($this->getManifest()->getPluginID(), $name));
-                       }
-               }
-
-               // enabled. check version.
-               if ($status != false) {
-                       $requires_plugin_info = $plugins[$name];
-
-                       //@todo boot strapping until we can migrate everything over to ElggPluginPackage.
-                       $plugin_package = new ElggPluginPackage($name);
-                       $plugin_version = $plugin_package->getManifest()->getVersion();
-
-                       if ($version && !version_compare($plugin_version, $version, $comparison)) {
-                               $status = false;
-
-                               $message = elgg_echo("ElggPluginPackage:Requires:Plugin:$comparison",
-                                                               array($this->getManifest()->getPluginID(), $name, $version, $plugin_version));
-                       }
-               }
-
-               // if all else fails check with the provides
-               if ($status == false) {
-                       if (elgg_check_plugins_provides('plugin', $name)) {
-                               // it's provided. check version if asked.
-                               $status = true;
-                               $message = '';
-
-                               if ($version && !elgg_check_plugins_provides('plugin', $name, $version, $comparison)) {
-                                               // change the message to something more meaningful
-                                               $provide = elgg_get_plugins_provides('plugin', $name);
-                                               $plugin_version = "{$provide['provided_by']}:$name={$provide['version']}";
-
-                                               $status = false;
-                                               $message = elgg_echo("ElggPluginPackage:Requires:Plugin:$comparison",
-                                                               array($this->getManifest()->getPluginID(), $name, $version, $plugin_version));
-                               }
-                       }
-               }
-
-               return array(
-                       'status' => $status,
-                       'message' => $message
-               );
-       }
-
-       /**
-        * Checks if $elgg_version meets the requirement by $require.
-        *
-        * Returns an array in the form array('status' => bool, 'message' => 'Any messages')
-        *
-        * @param array $require      An Elgg manifest.xml requires array
-        * @param array $elgg_version An Elgg version (either YYYYMMDDXX or X.Y.Z)
-        * @return array
-        */
-       private function checkRequiresElgg(array $require, $elgg_version) {
-               $status = true;
-               $message = '';
-               $version = $require['version'];
-               $comparison = $require['comparison'];
-
-               if (!version_compare($elgg_version, $version, $comparison)) {
-                       $status = false;
-                       $message = elgg_echo("ElggPluginPackage:Requires:Elgg:$comparison",
-                                                       array($this->getManifest()->getPluginID(), $version));
-               }
-
-               return array(
-                       'status' => $status,
-                       'message' => $message
-               );
-       }
-
-       /**
-        * Checks if the PHP extension in $require is loaded.
-        *
-        * @todo Can this be merged with the plugin checker?
-        *
-        * @param array $require An Elgg manifest.xml deps array
-        * @return array
-        */
-       private function checkRequiresPhpExtension($require) {
-               $status = true;
-               $message = '';
-
-               $name = $require['name'];
-               $version = $require['version'];
-               $comparison = $require['comparison'];
-
-               // not enabled.
-               if (!extension_loaded($name)) {
-                       $status = false;
-                       if ($version) {
-                               $message = elgg_echo("ElggPluginPackage:Requires:PhpExtension:NotInstalled:$comparison",
-                                                       array($this->getManifest()->getPluginID(), $name, $version));
-                       } else {
-                               $message = elgg_echo('ElggPluginPackage:Requires:PhpExtension:NotInstalled:NoVersion',
-                                                       array($this->getManifest()->getPluginID(), $name));
-                       }
-               }
-
-               // enabled. check version.
-               if ($status != false) {
-                       $ext_version = phpversion($name);
-
-                       if ($version && !version_compare($ext_version, $version, $comparison)) {
-                               $status = false;
-                               $message = elgg_echo("ElggPluginPackage:Requires:PhpExtension:$comparison",
-                                                               array($this->getManifest()->getPluginID(), $name, $version));
-                       }
-               }
-
-               // some php extensions can be emulated, so check provides.
-               if ($status == false) {
-                       if (elgg_check_plugins_provides('php_extension', $name)) {
-                               // it's provided. check version if asked.
-                               $status = true;
-                               $message = '';
-
-                               if ($version && !elgg_check_plugins_provides('php_extension', $name, $version, $comparison)) {
-                                               // change the message to something more meaningful
-                                               $provide = elgg_get_plugins_provides('php_extension', $name);
-                                               $plugin_version = "{$provide['provided_by']}:$name={$provide['version']}";
-
-                                               $status = false;
-                                               $message = elgg_echo("ElggPluginPackage:Requires:PhpExtension:$comparison",
-                                                               array($this->getManifest()->getPluginID(), $name, $version, $plugin_version));
-                               }
-                       }
-               }
-
-               return array(
-                       'status' => $status,
-                       'message' => $message
-               );
-       }
-
-
-       /**
-        * Check if the PHP ini setting satisfies $require.
-        *
-        * @param array $require An Elgg manifest.xml requires array
-        * @return array
-        */
-       private function checkRequiresPhpIni($require) {
-               $status = true;
-               $message = '';
-
-               $name = $require['name'];
-               $value = $require['value'];
-               $comparison = $require['comparison'];
-
-               // ini_get() normalizes truthy values to 1 but falsey values to 0 or ''.
-               // version_compare() considers '' < 0, so normalize '' to 0.
-               // ElggPluginManifest normalizes all bool values and '' to 1 or 0.
-               $setting = ini_get($name);
-
-               if ($setting === '') {
-                       $setting = 0;
-               }
-
-               if (!version_compare($setting, $value, $comparison)) {
-                       $status = false;
-                       $message = elgg_echo("ElggPluginPackage:Requires:PhpIni:$comparison",
-                                       array($this->getManifest()->getPluginID(), $name, $value, $setting));
-               }
-
-               return array(
-                       'status' => $status,
-                       'message' => $message
-               );
-       }
-
        /**
         * Activate the plugin.
         *