diff options
Diffstat (limited to 'mod/notifications/start.php')
-rw-r--r-- | mod/notifications/start.php | 112 |
1 files changed, 70 insertions, 42 deletions
diff --git a/mod/notifications/start.php b/mod/notifications/start.php index a08fe68f5..838a123fb 100644 --- a/mod/notifications/start.php +++ b/mod/notifications/start.php @@ -1,47 +1,75 @@ <?php - /** - * Elgg notifications plugin - * - * @package ElggNotifications - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - - /** - * Notification settings page setup function - * - */ - function notifications_plugin_pagesetup() { - global $CONFIG; - if (get_context() == 'settings') { - add_submenu_item(elgg_echo('notifications:subscriptions:changesettings'), $CONFIG->wwwroot . "mod/notifications/"); - if (is_plugin_enabled('groups')) - add_submenu_item(elgg_echo('notifications:subscriptions:changesettings:groups'), $CONFIG->wwwroot . "mod/notifications/groups.php"); - } - } - - function notifications_plugin_init() { - elgg_extend_view('css','notifications/css'); - global $CONFIG; - - // Unset the default user settings hook - if (isset($CONFIG->hooks['usersettings:save']['user'])) - foreach($CONFIG->hooks['usersettings:save']['user'] as $key => $function) { - if ($function == 'notification_user_settings_save') - unset($CONFIG->hooks['usersettings:save']['user'][$key]); - } +/** + * Elgg notifications plugin + * + * @package ElggNotifications + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + + +function notifications_plugin_init() { + global $CONFIG; + + elgg_extend_view('css','notifications/css'); + + register_page_handler('notifications', 'notifications_page_handler'); + + register_elgg_event_handler('pagesetup', 'system', 'notifications_plugin_pagesetup'); + + // Unset the default notification settings + unregister_plugin_hook('usersettings:save', 'user', 'notification_user_settings_save'); + + // must wait until elgg_unextend_view() is merged in from 1.7 branch - if still needed + //elgg_unextend_view('usersettings/user', 'notifications/settings/usersettings'); +} + +/** + * Route page requests + * + * @param array $page Array of url parameters + */ +function notifications_page_handler($page) { + global $CONFIG; + + // default to personal notifications + if (!isset($page[0])) { + $page[0] = 'personal'; + } + + switch ($page[0]) { + case 'group': + require $CONFIG->pluginspath . "notifications/groups.php"; + break; + case 'personal': + default: + require $CONFIG->pluginspath . "notifications/index.php"; + break; + } + + return TRUE; +} + +/** + * Notification settings page setup function + * + */ +function notifications_plugin_pagesetup() { + global $CONFIG; + if (get_context() == 'settings') { + add_submenu_item(elgg_echo('notifications:subscriptions:changesettings'), $CONFIG->wwwroot . "pg/notifications/personal"); + if (is_plugin_enabled('groups')) { + add_submenu_item(elgg_echo('notifications:subscriptions:changesettings:groups'), $CONFIG->wwwroot . "pg/notifications/group"); } + } +} + - register_elgg_event_handler('pagesetup','system','notifications_plugin_pagesetup',1000); - register_elgg_event_handler('init','system','notifications_plugin_init',1000); +register_elgg_event_handler('init', 'system', 'notifications_plugin_init', 1000); - // Register action - global $CONFIG; - register_action("notificationsettings/save",false,$CONFIG->pluginspath . "notifications/actions/save.php"); - register_action("notificationsettings/groupsave",false,$CONFIG->pluginspath . "notifications/actions/groupsave.php"); - -?>
\ No newline at end of file +// Register action +register_action("notificationsettings/save", FALSE, $CONFIG->pluginspath . "notifications/actions/save.php"); +register_action("notificationsettings/groupsave", FALSE, $CONFIG->pluginspath . "notifications/actions/groupsave.php"); |