From a97d4383a136492e3480fe25586858944d8a7d5f Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 8 Feb 2015 15:59:22 +0100 Subject: [PATCH] Searching for items now always searches public entries from the central item storage with uid=0. --- include/threads.php | 4 ++-- mod/search.php | 41 +++++++++++++++++++++++++++++++++++------ 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/include/threads.php b/include/threads.php index bd0cb04899..9bc51052e8 100644 --- a/include/threads.php +++ b/include/threads.php @@ -20,8 +20,8 @@ function add_thread($itemid, $onlyshadow = false) { } // Store a shadow copy of public items for displaying a global community page? - if (!get_config('system', 'global_community')) - return; + //if (!get_config('system', 'global_community')) + // return; // is it already a copy? if (($itemid == 0) OR ($item['uid'] == 0)) diff --git a/mod/search.php b/mod/search.php index 57f42d640c..3f17e7a7ae 100644 --- a/mod/search.php +++ b/mod/search.php @@ -151,6 +151,7 @@ function search_content(&$a) { // No items will be shown if the member has a blocked profile wall. if(get_config('system', 'old_pager')) { +/* $r = q("SELECT distinct(`item`.`uri`) as `total` FROM $sql_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 @@ -161,7 +162,16 @@ function search_content(&$a) { $sql_extra ", intval(local_user()) ); -// $sql_extra group by `item`.`uri` ", +*/ + $r = q("SELECT distinct(`item`.`uri`) as `total` + FROM $sql_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` + AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 + 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 `item`.`uid` = 0) + OR (`item`.`uid` = %d)) + $sql_extra ", + intval(local_user()) + ); if(count($r)) $a->set_pager_total(count($r)); @@ -172,25 +182,44 @@ function search_content(&$a) { } } +/* $r = q("SELECT `item`.`uri`, `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, - `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, + `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`, `user`.`nickname`, `user`.`uid`, `user`.`hidewall` FROM $sql_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 INNER 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 )) - $sql_extra GROUP BY `item`.`uri` + 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)) + $sql_extra + GROUP BY `item`.`uri` + ORDER BY $sql_order DESC LIMIT %d , %d ", + intval(local_user()), + intval($a->pager['start']), + intval($a->pager['itemspage']) + + ); +*/ + $r = q("SELECT `item`.`uri`, `item`.*, `item`.`id` AS `item_id`, + `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, + `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, + `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` + FROM $sql_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` + AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 + 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 `item`.`uid`=0) + OR `item`.`uid` = %d) + $sql_extra + GROUP BY `item`.`uri` ORDER BY $sql_order DESC LIMIT %d , %d ", intval(local_user()), intval($a->pager['start']), intval($a->pager['itemspage']) ); -// group by `item`.`uri` if(! count($r)) { info( t('No results.') . EOL);