diff options
author | Alexander Kampmann <programmer@nurfuerspam.de> | 2012-04-05 13:39:15 +0200 |
---|---|---|
committer | Alexander Kampmann <programmer@nurfuerspam.de> | 2012-04-05 13:39:15 +0200 |
commit | 355c42cb309eb1313097411067ca999b699aa620 (patch) | |
tree | d00d1af9dceecdf114cadff924c5ba4a864fbf43 /mod/search.php | |
parent | cbf4544887c7f496f2b2312727fe7bcb64a6d6c8 (diff) | |
parent | 9b6e91086b29554fd04362f6c87ea148718e8b1c (diff) | |
download | volse-hubzilla-355c42cb309eb1313097411067ca999b699aa620.tar.gz volse-hubzilla-355c42cb309eb1313097411067ca999b699aa620.tar.bz2 volse-hubzilla-355c42cb309eb1313097411067ca999b699aa620.zip |
Merge branch 'master' of https://github.com/friendica/friendica
Conflicts:
include/config.php
update.php
Diffstat (limited to 'mod/search.php')
-rw-r--r--[-rwxr-xr-x] | mod/search.php | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/mod/search.php b/mod/search.php index 50e7a6abc..4ca7db9bb 100755..100644 --- a/mod/search.php +++ b/mod/search.php @@ -97,30 +97,26 @@ function search_content(&$a) { // OR your own posts if you are a logged in member // No items will be shown if the member has a blocked profile wall. - $s_regx = sprintf("AND ( `item`.`body` REGEXP '%s' OR `item`.`tag` REGEXP '%s' )", - dbesc(preg_quote($search)), dbesc('\\]' . preg_quote($search) . '\\[')); - - $search_alg = $s_regx; - - $r = q("SELECT COUNT(*) AS `total` + $r = q("SELECT distinct(`item`.`uri`) as `total` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid` WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0 AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0) OR `item`.`uid` = %d ) AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - $search_alg ", - intval(local_user()) + AND ( `item`.`body` REGEXP '%s' OR `item`.`tag` REGEXP '%s' ) group by `item`.`uri` ", + intval(local_user()), + dbesc(preg_quote($search)), + dbesc('\\]' . preg_quote($search) . '\\[') ); if(count($r)) - $a->set_pager_total($r[0]['total']); - - if(! $r[0]['total']) { + $a->set_pager_total(count($r)); + if(! count($r)) { info( t('No results.') . EOL); return $o; } - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + $r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`, @@ -131,9 +127,12 @@ function search_content(&$a) { AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0 ) OR `item`.`uid` = %d ) AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - $search_alg + AND ( `item`.`body` REGEXP '%s' OR `item`.`tag` REGEXP '%s' ) + group by `item`.`uri` ORDER BY `received` DESC LIMIT %d , %d ", intval(local_user()), + dbesc(preg_quote($search)), + dbesc('\\]' . preg_quote($search) . '\\['), intval($a->pager['start']), intval($a->pager['itemspage']) |