From b7ae2062b48055b23176000691fe454f6f67f5e9 Mon Sep 17 00:00:00 2001 From: marcus Date: Thu, 28 May 2009 15:23:58 +0000 Subject: Refs #965: Search now correctly using page handler to make it easier to replace. git-svn-id: https://code.elgg.org/elgg/trunk@3308 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/entities.php | 17 ++--------------- engine/lib/search.php | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ search/index.php | 4 ++-- version.php | 2 +- 4 files changed, 53 insertions(+), 18 deletions(-) create mode 100644 engine/lib/search.php diff --git a/engine/lib/entities.php b/engine/lib/entities.php index d0935adf2..c8457ca39 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -2352,19 +2352,6 @@ } } -/** - * Page handler for search - * - * @param array $page Page elements from pain page handler - */ - function search_page_handler($page) { - if (isset($page[0])) { - global $CONFIG; - set_input('tag',$page[0]); - include_once($CONFIG->path . "search/index.php"); - } - } - /** * Returns a viewable list of entities based on the registered types * @@ -2771,9 +2758,9 @@ * Entities init function; establishes the page handler * */ - function entities_init() { + function entities_init() + { register_page_handler('view','entities_page_handler'); - register_page_handler('search','search_page_handler'); // Allow a permission override for recursive entity deletion // TODO: Can this be done better? diff --git a/engine/lib/search.php b/engine/lib/search.php new file mode 100644 index 000000000..01ba7b907 --- /dev/null +++ b/engine/lib/search.php @@ -0,0 +1,48 @@ + + * @copyright Curverider Ltd 2008-2009 + * @link http://elgg.org/ + */ + + /** + * Initialise search helper functions. + * + */ + function search_init() + { + register_page_handler('search','search_page_handler'); + } + + /** + * Page handler for search + * + * @param array $page Page elements from pain page handler + */ + function search_page_handler($page) + { + global $CONFIG; + + if (isset($page[0])) { + switch ($page[0]) { + case 'user' : + case 'users' : include_once($CONFIG->path . "search/users.php"); break; + + case 'group' : + case 'groups' : include_once($CONFIG->path . "search/groups.php"); break; + + default: include_once($CONFIG->path . "search/index.php"); + } + } + else + include_once($CONFIG->path . "search/index.php"); + } + + /** Register init system event **/ + register_elgg_event_handler('init','system','search_init'); +?> \ No newline at end of file diff --git a/search/index.php b/search/index.php index a0deac413..768224c2a 100644 --- a/search/index.php +++ b/search/index.php @@ -54,10 +54,10 @@ $label = 'item:' . $object_type; if (!empty($object_subtype)) $label .= ':' . $object_subtype; global $CONFIG; - add_submenu_item(elgg_echo($label), $CONFIG->wwwroot . "search/?tag=". urlencode($tag) ."&subtype=" . $object_subtype . "&object=". urlencode($object_type) ."&tagtype=" . urlencode($md_type) . "&owner_guid=" . urlencode($owner_guid)); + add_submenu_item(elgg_echo($label), $CONFIG->wwwroot . "pg/search/?tag=". urlencode($tag) ."&subtype=" . $object_subtype . "&object=". urlencode($object_type) ."&tagtype=" . urlencode($md_type) . "&owner_guid=" . urlencode($owner_guid)); } } - add_submenu_item(elgg_echo('all'), $CONFIG->wwwroot . "search/?tag=". urlencode($tag) ."&owner_guid=" . urlencode($owner_guid)); + add_submenu_item(elgg_echo('all'), $CONFIG->wwwroot . "pg/search/?tag=". urlencode($tag) ."&owner_guid=" . urlencode($owner_guid)); } diff --git a/version.php b/version.php index e78d618fa..c9466556b 100644 --- a/version.php +++ b/version.php @@ -13,7 +13,7 @@ * @link http://elgg.org/ */ - $version = 2009052701; // YYYYMMDD = Elgg Date + $version = 2009052801; // YYYYMMDD = Elgg Date // XX = Interim incrementer $release = '1.5'; // Human-friendly version name -- cgit v1.2.3