diff options
author | Kevin Chabowski <kevin@kch42.de> | 2011-08-14 21:47:03 +0200 |
---|---|---|
committer | Kevin Chabowski <kevin@kch42.de> | 2011-08-14 21:47:03 +0200 |
commit | bd745354de0247ff4d1903cb9d96fd50dfb4bfce (patch) | |
tree | d68b880b02c2eb14ad6783bac109d5352278a59a /ratatoeskr/sys/plugin_api.php | |
parent | 252d0d9d422b0ab6dd583022141f4874c98abc5f (diff) | |
download | ratatoeskr-cms-bd745354de0247ff4d1903cb9d96fd50dfb4bfce.tar.gz ratatoeskr-cms-bd745354de0247ff4d1903cb9d96fd50dfb4bfce.tar.bz2 ratatoeskr-cms-bd745354de0247ff4d1903cb9d96fd50dfb4bfce.zip |
Continued work on the plugin API and added some documentation.
Diffstat (limited to 'ratatoeskr/sys/plugin_api.php')
-rw-r--r-- | ratatoeskr/sys/plugin_api.php | 72 |
1 files changed, 69 insertions, 3 deletions
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 <urlprocess.php> for more details. + * + * Parameters: + * $name - The name of the new URL + * $callback - The Function to be called (see <url_process>). + */ +function register_url_handler($name, $callback) +{ + global $url_handlers; + $url_handlers[$name] = $callback; +} + ?> |