diff options
author | rvelices <rv-github@modusoptimus.com> | 2007-06-23 19:40:38 +0000 |
---|---|---|
committer | rvelices <rv-github@modusoptimus.com> | 2007-06-23 19:40:38 +0000 |
commit | 6118c54835503d168c587b8e00323f4a1d450d90 (patch) | |
tree | acf4ea3a3d1e2e39436188d5d5a7644529730140 /include/functions_search.inc.php | |
parent | a8150ba6a26355cedf4f943661a57aa385342416 (diff) |
quick search results improvement: elements with the same relevance are ordered using the global order_bye
git-svn-id: http://piwigo.org/svn/trunk@2043 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include/functions_search.inc.php')
-rw-r--r-- | include/functions_search.inc.php | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/include/functions_search.inc.php b/include/functions_search.inc.php index e2d518e0d..0c2e61214 100644 --- a/include/functions_search.inc.php +++ b/include/functions_search.inc.php @@ -417,6 +417,7 @@ SELECT image_id, COUNT(tag_id) AS q { // before returning the result "as is", make sure the user has the // permissions for every item + global $conf; $query = ' SELECT DISTINCT(id) FROM '.IMAGES_TABLE.' @@ -431,9 +432,16 @@ SELECT DISTINCT(id) 'visible_images' => 'id' ), 'AND' - ); - $allowed_image_ids = array_from_query( $query, 'id'); - $by_weights = array_intersect_key($by_weights, array_flip($allowed_image_ids)); + ).' + '.$conf['order_by']; + $allowed_images = array_flip( array_from_query( $query, 'id') ); + $by_weights = array_intersect_key($by_weights, $allowed_images ); + $divisor = 4.0 * count($allowed_images); + // decrease weight from 0 to 0.25 corresponding to the order + foreach ($allowed_images as $id=>$rank ) + { + $by_weights[$id] -= $rank / $divisor; + } $permissions_checked = true; } arsort($by_weights, SORT_NUMERIC); |