diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2007-08-06 00:39:54 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2007-08-06 00:39:54 +0000 |
commit | bf6e9f88d8fbd520cf7373fa58ad3c45c76904dd (patch) | |
tree | 29618126b20adc850be5f94d3014d9be78bb7f37 /lib/class/plugin.class.php | |
parent | 00bcfdca5f523093770321c22f8c429f3d318af8 (diff) | |
download | ampache-bf6e9f88d8fbd520cf7373fa58ad3c45c76904dd.tar.gz ampache-bf6e9f88d8fbd520cf7373fa58ad3c45c76904dd.tar.bz2 ampache-bf6e9f88d8fbd520cf7373fa58ad3c45c76904dd.zip |
- Added modules section to sidebar, conforming to new layout from r1127
- Re-enabled plugins, added openstrands plugin
Diffstat (limited to 'lib/class/plugin.class.php')
-rw-r--r-- | lib/class/plugin.class.php | 76 |
1 files changed, 55 insertions, 21 deletions
diff --git a/lib/class/plugin.class.php b/lib/class/plugin.class.php index 5a058ac5..e5b9c485 100644 --- a/lib/class/plugin.class.php +++ b/lib/class/plugin.class.php @@ -22,17 +22,17 @@ class Plugin { /* Base Variables */ - var $name; + public $name; /* constructed objects */ - var $_plugin; + public $_plugin; /** * Constructor * This constructor loads the Plugin config file which defines how to * install/uninstall the plugin from Ampache's database */ - function Plugin($name) { + public function __construct($name) { /* Load the plugin */ if (!$this->_get_info($name)) { @@ -41,7 +41,7 @@ class Plugin { return true; - } // Plugin + } // Constructor /** @@ -52,7 +52,7 @@ class Plugin { function _get_info($name) { /* Require the file we want */ - require_once(conf('prefix') . '/modules/plugins/' . $name . '.plugin.php'); + require_once Config::get('prefix') . '/modules/plugins/' . $name . '.plugin.php'; $plugin_name = "Ampache$name"; @@ -67,6 +67,40 @@ class Plugin { } // _get_info /** + * get_plugins + * This returns an array of plugin names + */ + public static function get_plugins() { + + $results = array(); + + // Open up the plugin dir + $handle = opendir(Config::get('prefix') . '/modules/plugins'); + + if (!is_resource($handle)) { + debug_event('Plugins','Unable to read plugins directory','1'); + } + + // Recurse the directory + while ($file = readdir($handle)) { + // Ignore non-plugin files + if (substr($file,-10,10) != 'plugin.php') { continue; } + if (is_dir($file)) { continue; } + + // It's a plugin record it + $plugin_name = basename($file,'.plugin.php'); + $results[$plugin_name] = $plugin_name; + + } // end while + + // Little stupid but hey + ksort($results); + + return $results; + + } // get_plugins + + /** * is_valid * This checks to make sure the plugin has the required functions and * settings, Ampache requires Name/Description/Version (Int) and a @@ -157,12 +191,12 @@ class Plugin { */ function get_plugin_version() { - $name = sql_escape('Plugin_' . $this->_plugin->name); + $name = Dba::escape('Plugin_' . $this->_plugin->name); - $sql = "SELECT * FROM update_info WHERE `key`='$name'"; - $db_results = mysql_query($sql,dbh()); + $sql = "SELECT * FROM `update_info` WHERE `key`='$name'"; + $db_results = Dba::query($sql); - $results = mysql_fetch_assoc($db_results); + $results = Dba::fetch_assoc($db_results); return $results['value']; @@ -174,10 +208,10 @@ class Plugin { */ function get_ampache_db_version() { - $sql = "SELECT * FROM update_info WHERE `key`='db_version'"; - $db_results = mysql_query($sql,dbh()); + $sql = "SELECT * FROM `update_info` WHERE `key`='db_version'"; + $db_results = Dba::query($sql); - $results = mysql_fetch_assoc($db_results); + $results = Dba::fetch_assoc($db_results); return $results['value']; @@ -187,13 +221,13 @@ class Plugin { * set_plugin_version * This sets the plugin version in the update_info table */ - function set_plugin_version($version) { + public function set_plugin_version($version) { - $name = sql_escape('Plugin_' . $this->_plugin->name); - $version = sql_escape($version); + $name = Dba::escape('Plugin_' . $this->_plugin->name); + $version = Dba::escape($version); - $sql = "INSERT INTO update_info SET `key`='$name', value='$version'"; - $db_results = mysql_query($sql,dbh()); + $sql = "INSERT INTO `update_info` SET `key`='$name', `value`='$version'"; + $db_results = Dba::query($sql); return true; @@ -203,12 +237,12 @@ class Plugin { * remove_plugin_version * This removes the version row from the db done on uninstall */ - function remove_plugin_version() { + public function remove_plugin_version() { - $name = sql_escape('Plugin_' . $this->_plugin->name); + $name = Dba::escape('Plugin_' . $this->_plugin->name); - $sql = "DELETE FROM update_info WHERE `key`='$name'"; - $db_results = mysql_query($sql,dbh()); + $sql = "DELETE FROM `update_info` WHERE `key`='$name'"; + $db_results = Dba::query($sql); return true; |