summaryrefslogtreecommitdiffstats
path: root/lib/class/plugin.class.php
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2007-08-06 00:39:54 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2007-08-06 00:39:54 +0000
commitbf6e9f88d8fbd520cf7373fa58ad3c45c76904dd (patch)
tree29618126b20adc850be5f94d3014d9be78bb7f37 /lib/class/plugin.class.php
parent00bcfdca5f523093770321c22f8c429f3d318af8 (diff)
downloadampache-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.php76
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;