From: cash Date: Sat, 4 Dec 2010 22:51:37 +0000 (+0000) Subject: Fixes #2519 we can now register and load php libraries - blog plugin is using this X-Git-Url: https://gitweb.fluxo.info/?a=commitdiff_plain;h=8761800b92a6eb4bf3df361091cb85bb8459e959;p=lorea%2Felgg.git Fixes #2519 we can now register and load php libraries - blog plugin is using this git-svn-id: http://code.elgg.org/elgg/trunk@7532 36083f99-b078-4883-b0ff-0f9b5a30f544 --- diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index f41e5fd6a..2184fee41 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -34,6 +34,7 @@ function _elgg_autoload($class) { * @param string $dir The dir to look in * * @return void + * @since 1.8.0 */ function elgg_register_classes($dir) { $classes = elgg_get_file_list($dir, array(), array(), array('.php')); @@ -50,6 +51,7 @@ function elgg_register_classes($dir) { * @param string $location The location of the file * * @return void + * @since 1.8.0 */ function elgg_register_class($class, $location) { global $CONFIG; @@ -61,6 +63,50 @@ function elgg_register_class($class, $location) { $CONFIG->classes[$class] = $location; } +/** + * Register a php library. + * + * @param string $name The name of the library + * @param string $location The location of the file + * + * @return void + * @since 1.8.0 + */ +function elgg_register_library($name, $location) { + global $CONFIG; + + if (!isset($CONFIG->libraries)) { + $CONFIG->libraries = array(); + } + + $CONFIG->libraries[$name] = $location; +} + +/** + * Load a php library. + * + * @param string $name The name of the library + * + * @return void + * @throws Exception + * @since 1.8.0 + */ +function elgg_load_library($name) { + global $CONFIG; + + if (!isset($CONFIG->libraries)) { + $CONFIG->libraries = array(); + } + + if (!isset($CONFIG->libraries[$name])) { + throw new Exception("Failed to load the $name library"); + } + + if (!include_once($CONFIG->libraries[$name])) { + throw new Exception("Failed to load the $name library"); + } +} + /** * Forward to $location. * diff --git a/mod/blog/blog_lib.php b/mod/blog/lib/blog.php similarity index 100% rename from mod/blog/blog_lib.php rename to mod/blog/lib/blog.php diff --git a/mod/blog/start.php b/mod/blog/start.php index 0d0c58ac8..9e3b8f300 100644 --- a/mod/blog/start.php +++ b/mod/blog/start.php @@ -14,14 +14,14 @@ * Notifications */ +elgg_register_event_handler('init', 'system', 'blog_init'); + /** * Init blog plugin. - * - * @return TRUE */ function blog_init() { - global $CONFIG; - require_once dirname(__FILE__) . '/blog_lib.php'; + + elgg_register_library('elgg:blog', elgg_get_plugin_path() . 'blog/lib/blog.php'); add_menu(elgg_echo('blog:blogs'), "pg/blog/", array()); @@ -47,8 +47,8 @@ function blog_init() { //add_widget_type('blog', elgg_echo('blog'), elgg_echo('blog:widget:description'), 'profile, dashboard'); - $action_path = dirname(__FILE__) . '/actions/blog'; - + // register actions + $action_path = elgg_get_plugin_path() . 'blog/actions/blog'; elgg_register_action('blog/save', "$action_path/save.php"); elgg_register_action('blog/auto_save_revision', "$action_path/auto_save_revision.php"); elgg_register_action('blog/delete', "$action_path/delete.php"); @@ -92,6 +92,8 @@ function blog_runonce() { function blog_page_handler($page) { global $CONFIG; + elgg_load_library('elgg:blog'); + // push breadcrumb elgg_push_breadcrumb(elgg_echo('blog:blogs'), "pg/blog"); @@ -201,5 +203,3 @@ function blog_profile_menu($hook, $entity_type, $return_value, $params) { return $return_value; } - -elgg_register_event_handler('init', 'system', 'blog_init');