diff options
-rw-r--r-- | engine/lib/elgglib.php | 46 | ||||
-rw-r--r-- | mod/blog/lib/blog.php (renamed from mod/blog/blog_lib.php) | 0 | ||||
-rw-r--r-- | mod/blog/start.php | 16 |
3 files changed, 54 insertions, 8 deletions
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; @@ -62,6 +64,50 @@ function elgg_register_class($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. * * Sends a 'Location: $location' header and exists. If headers have diff --git a/mod/blog/blog_lib.php b/mod/blog/lib/blog.php index 4db3effde..4db3effde 100644 --- a/mod/blog/blog_lib.php +++ b/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'); |