aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authornickw <nickw@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-05-12 22:00:27 +0000
committernickw <nickw@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-05-12 22:00:27 +0000
commit8618288ed51942c814f45c67354b14eec43c2422 (patch)
tree161e4d21f3e250d25ae288be3e483e64cabef72d /engine
parent8ae46cff217a0ed97c0920099b505ddde3c5e431 (diff)
downloadelgg-8618288ed51942c814f45c67354b14eec43c2422.tar.gz
elgg-8618288ed51942c814f45c67354b14eec43c2422.tar.bz2
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
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/elgglib.php17
-rw-r--r--engine/lib/sites.php10
2 files changed, 18 insertions, 9 deletions
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;
}