From 8618288ed51942c814f45c67354b14eec43c2422 Mon Sep 17 00:00:00 2001 From: nickw Date: Wed, 12 May 2010 22:00:27 +0000 Subject: Creating a hook for plugin authors to register Walled Garden public sites. git-svn-id: http://code.elgg.org/elgg/trunk@6016 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/elgglib.php | 17 ++++++++++------- engine/lib/sites.php | 10 ++++++++-- 2 files changed, 18 insertions(+), 9 deletions(-) (limited to 'engine') diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 4e141bb84..722e92ca0 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -3127,8 +3127,6 @@ function elgg_walled_garden_index() { * @return unknown_type */ function elgg_boot() { - global $CONFIG; - // Actions register_action('comments/add'); register_action('comments/delete'); @@ -3138,11 +3136,6 @@ function elgg_boot() { elgg_view_register_simplecache('css'); elgg_view_register_simplecache('js/friendsPickerv1'); elgg_view_register_simplecache('js/initialise_elgg'); - - // check for external page view - if (isset($CONFIG->site) && $CONFIG->site instanceof ElggSite) { - $CONFIG->site->check_walled_garden(); - } } /** @@ -3301,6 +3294,15 @@ function elgg_http_url_is_identical($url1, $url2, $ignore_params = array('offset return TRUE; } +function elgg_walled_garden() { + global $CONFIG; + + // check for external page view + if (isset($CONFIG->site) && $CONFIG->site instanceof ElggSite) { + $CONFIG->site->check_walled_garden(); + } +} + /** * Some useful constant definitions */ @@ -3318,3 +3320,4 @@ register_elgg_event_handler('boot', 'system', 'elgg_boot', 1000); register_plugin_hook('unit_test', 'system', 'elgg_api_test'); register_elgg_event_handler('init', 'system', 'add_custom_menu_items', 1000); +register_elgg_event_handler('init', 'system', 'elgg_walled_garden', 1000); diff --git a/engine/lib/sites.php b/engine/lib/sites.php index c976384c2..fb9b66725 100644 --- a/engine/lib/sites.php +++ b/engine/lib/sites.php @@ -270,18 +270,24 @@ class ElggSite extends ElggEntity { } // default public pages - $public = array( + $defaults = array( $CONFIG->url, "{$CONFIG->url}action/login", + "{$CONFIG->url}pg/register/", + "{$CONFIG->url}action/register", + "{$CONFIG->url}account/forgotten_password.php", + "{$CONFIG->url}action/user/requestnewpassword", + "{$CONFIG->url}pg/resetpassword", "{$CONFIG->url}upgrade.php", ); // include a hook for plugin authors to include public pages + $plugins = trigger_plugin_hook('public_pages', 'walled_garden', NULL, array()); // lookup admin-specific public pages // allow public pages - if (in_array($url, $public)) { + if (in_array($url, array_merge($defaults, $plugins))) { return TRUE; } -- cgit v1.2.3