aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Sroka <srokap@gmail.com>2012-12-31 18:22:42 +0100
committerPaweł Sroka <srokap@gmail.com>2012-12-31 18:22:42 +0100
commitb2724f7300902034398f534e55975b3487e3a235 (patch)
treefed6c66e2caf5055edffe7f7292031af67510f3a
parent3b295750a02fbdb7f3ea6a3d75cf6260df6a2d46 (diff)
downloadelgg-b2724f7300902034398f534e55975b3487e3a235.tar.gz
elgg-b2724f7300902034398f534e55975b3487e3a235.tar.bz2
Fixes #2554 - Adds search support for sorting and order
-rw-r--r--mod/search/pages/search/index.php2
-rw-r--r--mod/search/search_hooks.php12
2 files changed, 12 insertions, 2 deletions
diff --git a/mod/search/pages/search/index.php b/mod/search/pages/search/index.php
index fcd95c43e..ede09329b 100644
--- a/mod/search/pages/search/index.php
+++ b/mod/search/pages/search/index.php
@@ -63,7 +63,7 @@ switch ($sort) {
break;
}
-$order = get_input('sort', 'desc');
+$order = get_input('order', 'desc');
if ($order != 'asc' && $order != 'desc') {
$order = 'desc';
}
diff --git a/mod/search/search_hooks.php b/mod/search/search_hooks.php
index 2143a0d24..245234e0e 100644
--- a/mod/search/search_hooks.php
+++ b/mod/search/search_hooks.php
@@ -35,6 +35,7 @@ function search_objects_hook($hook, $type, $value, $params) {
}
$params['count'] = FALSE;
+ $params['order_by'] = search_get_order_by_sql('e', 'oe', $params['sort'], $params['order']);
$entities = elgg_get_entities($params);
// add the volatile data for why these entities have been returned.
@@ -89,6 +90,7 @@ function search_groups_hook($hook, $type, $value, $params) {
}
$params['count'] = FALSE;
+ $params['order_by'] = search_get_order_by_sql('e', 'ge', $params['sort'], $params['order']);
$entities = elgg_get_entities($params);
// add the volatile data for why these entities have been returned.
@@ -148,6 +150,7 @@ function search_users_hook($hook, $type, $value, $params) {
}
$params['count'] = FALSE;
+ $params['order_by'] = search_get_order_by_sql('e', 'ue', $params['sort'], $params['order']);
$entities = elgg_get_entities($params);
// add the volatile data for why these entities have been returned.
@@ -234,6 +237,7 @@ function search_tags_hook($hook, $type, $value, $params) {
}
$params['count'] = FALSE;
+ $params['order_by'] = search_get_order_by_sql('e', null, $params['sort'], $params['order']);
$entities = elgg_get_entities($params);
// add the volatile data for why these entities have been returned.
@@ -371,6 +375,11 @@ function search_comments_hook($hook, $type, $value, $params) {
return array ('entities' => array(), 'count' => 0);
}
+ $order_by = search_get_order_by_sql('e', null, $params['sort'], $params['order']);
+ if ($order_by) {
+ $order_by = "ORDER BY $order_by";
+ }
+
$q = "SELECT DISTINCT a.*, msv.string as comment FROM {$db_prefix}annotations a
JOIN {$db_prefix}metastrings msn ON a.name_id = msn.id
JOIN {$db_prefix}metastrings msv ON a.value_id = msv.id
@@ -380,7 +389,8 @@ function search_comments_hook($hook, $type, $value, $params) {
AND $e_access
AND $a_access
$container_and
-
+
+ $order_by
LIMIT $offset, $limit
";