]>
jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - plugins.php
3 require_once "config.php";
5 require_once "common.php";
7 require_once "Classes/class-message.php";
10 /** Check for plugins and load them.
12 * This expects your plugin folder to be located in `plugins/` and that the directory name,
13 * constructor file name and class name are identical.
15 * You must have a file structure like this: plugins/myplugin/myplugin.php
16 * Which contains a class like this:
19 * $name = "My plugin";
20 * $author = "Joe Bloggs";
22 * $desc = "This is my plugin and it does stuff";
24 * // rest of code here...
27 * Your plugin class must be constructable and contain the following public variables:
28 * $name The name or title of your plugin.
29 * $author The name of the author
30 * $version The version of the plugin
31 * $description A short description of the plugin
37 static function load($modname)
39 $plugin = new Plugin($modname);
42 Message
::Fail("Warning: Plugin \"$modname\" failed to load: $plugin->error");
46 self
::$list[] = $plugin;
61 function __construct($handle)
63 if (!is_dir(UPATH
."/plugins/$handle"))
64 $this->error = "Plugin directory \"
".UPATH."/plugins
/$handle\" doesn
't exist";
66 else if (!is_file(UPATH."/plugins/$handle/$handle.php"))
67 $this->error = "Plugin file \"".UPATH."/plugins/$handle/$handle.php\" doesn't exist
";
71 require_once UPATH."/plugins
/$handle/$handle.php
";
73 if (!class_exists($handle))
74 $this->error = "Class \"$handle\" doesn
't exist";
78 $plugin = new $handle();
80 if (!isset($plugin->name))
81 $this->error = "Plugin name not defined";
82 elseif (!isset($plugin->author))
83 $this->error = "Plugin author not defined";
84 elseif (!isset($plugin->version))
85 $this->error = "Plugin version not defined";
86 elseif (!isset($plugin->description))
87 $this->error = "Plugin description not defined";
88 elseif (!isset($plugin->email))
89 $this->error = "Plugin email not defined";
92 $this->handle = $handle;
93 $this->name = $plugin->name;
94 $this->author = $plugin->author;
95 $this->version = $plugin->version;
96 $this->description = $plugin->description;
97 $this->email = $plugin->email;
104 if (defined('PLUGINS
'))
106 foreach(PLUGINS as $plugin)
107 Plugins::load($plugin);