aboutsummaryrefslogtreecommitdiffstats
path: root/include/functions_search.inc.php
diff options
context:
space:
mode:
authorrvelices <rv-github@modusoptimus.com>2007-06-23 19:40:38 +0000
committerrvelices <rv-github@modusoptimus.com>2007-06-23 19:40:38 +0000
commit6118c54835503d168c587b8e00323f4a1d450d90 (patch)
treeacf4ea3a3d1e2e39436188d5d5a7644529730140 /include/functions_search.inc.php
parenta8150ba6a26355cedf4f943661a57aa385342416 (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.php14
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);