Archived
1
0

* Allow to define sort order for search-results (garvinhicking)

This commit is contained in:
Garvin Hicking
2009-08-24 08:24:19 +00:00
parent be6a1f7964
commit db2ad9402a
62 changed files with 278 additions and 21 deletions
+18 -2
View File
@@ -750,6 +750,7 @@ function &serendipity_searchEntries($term, $limit = '', $searchresults = '') {
$term = serendipity_db_escape_string($term);
$cond = array();
$relevance_enabled = false;
if ($serendipity['dbType'] == 'postgres' ||
$serendipity['dbType'] == 'pdo-postgres') {
$cond['group'] = '';
@@ -780,6 +781,7 @@ function &serendipity_searchEntries($term, $limit = '', $searchresults = '') {
$cond['group'] = 'GROUP BY e.id';
$cond['distinct'] = '';
$term = str_replace('"', '"', $term);
$relevance_enabled = true;
if (preg_match('@["\+\-\*~<>\(\)]+@', $term)) {
$cond['find_part'] = "MATCH(title,body,extended) AGAINST('$term' IN BOOLEAN MODE)";
} else {
@@ -787,7 +789,21 @@ function &serendipity_searchEntries($term, $limit = '', $searchresults = '') {
}
}
$cond['orderby'] = "timestamp DESC";
switch($serendipity['searchsort']) {
case 'relevance':
if ($relevance_enabled) {
$cond['searchorderby'] = $cond['find_part'] . " DESC";
} else {
$cond['searchorderby'] = "timestamp DESC";
}
break;
case 'timestamp':
default:
$cond['searchorderby'] = "timestamp DESC";
break;
}
$cond['and'] = " AND isdraft = 'false' " . (!serendipity_db_bool($serendipity['showFutureEntries']) ? " AND timestamp <= " . serendipity_db_time() : '');
serendipity_plugin_api::hook_event('frontend_fetchentries', $cond, array('source' => 'search', 'term' => $term));
serendipity_ACL_SQL($cond, 'limited');
@@ -824,7 +840,7 @@ function &serendipity_searchEntries($term, $limit = '', $searchresults = '') {
{$serendipity['fullCountQuery']}
{$cond['group']}
{$cond['having']}
ORDER BY {$cond['orderby']}
ORDER BY {$cond['searchorderby']}
$limit";
$search =& serendipity_db_query($querystring);
+7
View File
@@ -417,6 +417,13 @@
'default' => 15,
'permission' => 'blogConfiguration'),
array('var' => 'searchsort',
'title' => QUICKSEARCH_SORT,
'description' => '',
'type' => 'list',
'default' => array('timestamp' => DATE, 'relevance' => QUICKSEARCH_SORT_RELEVANCE),
'permission' => 'blogConfiguration'),
array('var' => 'enforce_RFC2616',
'title' => SYNDICATION_RFC2616,
'description' => SYNDICATION_RFC2616_DESC,