From bd745354de0247ff4d1903cb9d96fd50dfb4bfce Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Sun, 14 Aug 2011 21:47:03 +0200 Subject: Continued work on the plugin API and added some documentation. --- ratatoeskr/sys/plugin_api.php | 72 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 3 deletions(-) (limited to 'ratatoeskr/sys/plugin_api.php') diff --git a/ratatoeskr/sys/plugin_api.php b/ratatoeskr/sys/plugin_api.php index e021e15..e5625f8 100644 --- a/ratatoeskr/sys/plugin_api.php +++ b/ratatoeskr/sys/plugin_api.php @@ -9,28 +9,94 @@ * See "ratatoeskr/licenses/ratatoeskr" for more information. */ -require_once(dirname(__FILE__) . "/db.php"); - +require_once(dirname(__FILE__) . "/models.php"); +/* + * Class: RatatoeskrPlugin + * An abstract class to be extended in order to write your own Plugin. + */ abstract class RatatoeskrPlugin { private $id; + + /* + * Variables: Protected variables + * + * $kvstorage - The Key-Value-Storage for the Plugin. + * $smarty - Access to the global smarty object. + */ protected $kvstorage; protected $smarty; + + /* + * Constructor: __construct + * Performing some neccessary initialisation stuff. + * If you are overwriting this function, you *really* should call parent::__construct! + * + * Parameters: + * $id - The ID of the plugin (not the name). + */ public function __construct($id) { global $smarty; $this->id = $id; + $this->kvstorage = new PluginKVStorage($id); $this->smarty = $smarty; } - public function get_id() { return $this->id; } + /* + * Functions: Some getters + * + * get_id - get the Plugin-ID + * get_additional_files_dir - Path to directory with the additional files + * get_template_dir - Path to template directory + */ + final public function get_id() { return $this->id; } + final protected function get_additional_files_dir() { return dirname(dirname(__FILE__)) . "/plugin_extradata/" . $this->id; } + final protected function get_template_dir() { return dirname(dirname(__FILE__)) . "/templates/plugintemplates/" . $this->id; } + + /* + * Function: register_url_handler + * Easy way for register a URL handler + * + * Parameters: + * $name - Name of URL + * $objfunction - Name of object function. + */ + final protected function register_url_handler($name, $objfunction) + { + register_url_handler($name, array($this, $objfunction)); + } + final protected function register_settings_page($get, $validate, $set, $structure) + + /* + * Functions: Functions that are called at special events + * + * init - Will be called after plugin is loaded. You should register your stuff here. + * install - Will be called after installation. If your plugin needs to initialize some database stuff or generate files, this is the right function. + * uninstall - Will be called during uninstallation. If you used the install function you should undo your custom installation stuff. + */ public function init() {} public function install() {} public function uninstall() {} } +$url_handlers = array(); +/* + * Function: register_url_handler + * Register an URL handler. See for more details. + * + * Parameters: + * $name - The name of the new URL + * $callback - The Function to be called (see ). + */ +function register_url_handler($name, $callback) +{ + global $url_handlers; + $url_handlers[$name] = $callback; +} + ?> -- cgit v1.2.3-70-g09d2