From 63fc92b9e5d75f0dda0aecaaa0e1feb56d2b9744 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 19 Sep 2013 01:01:51 -0700 Subject: sync item_search with yesterday's network fix for collections. Add ud_addr to update table to store the target address since it's possible the mirroring directory won't yet have an xchan or hubloc they can link the ud_hash to and therefore mayn't know how to contact them. --- boot.php | 2 +- include/items.php | 18 ++++++++++++------ install/database.sql | 4 +++- install/update.php | 10 +++++++++- version.inc | 2 +- 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/boot.php b/boot.php index ec1184e4e..04adea33e 100755 --- a/boot.php +++ b/boot.php @@ -44,7 +44,7 @@ require_once('include/taxonomy.php'); define ( 'RED_PLATFORM', 'Red Matrix' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1071 ); +define ( 'DB_UPDATE_VERSION', 1072 ); define ( 'EOL', '
' . "\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/include/items.php b/include/items.php index c83eceabe..a60e3fdd6 100755 --- a/include/items.php +++ b/include/items.php @@ -3645,16 +3645,22 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C return $result; } - $contacts = expand_groups(array($arr['group'])); - if((is_array($contacts)) && count($contacts)) { - $contact_str = implode(',',$contacts); + + $contact_str = ''; + $contacts = group_get_members($group); + if($contacts) { + foreach($contacts as $c) { + if($contact_str) + $contact_str .= ','; + $contact_str .= "'" . $c['xchan'] . "'"; + } } else { - $contact_str = ' 0 '; - $result['message'] = t('Collection has no members.'); + $contact_str = ' 0 '; + info( t('Group is empty')); } - $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND ( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str) or allow_gid like '" . protect_sprintf('%<' . dbesc($r[0]['hash']) . '>%') . "' ) and item_restrict = 0 ) "; + $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND (( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str)) or allow_gid like '" . protect_sprintf('%<' . dbesc($r[0]['hash']) . '>%') . "' ) and item_restrict = 0 ) "; } elseif($arr['cid'] && $uid) { diff --git a/install/database.sql b/install/database.sql index 21d7575e9..a74b30d59 100644 --- a/install/database.sql +++ b/install/database.sql @@ -892,11 +892,13 @@ CREATE TABLE IF NOT EXISTS `updates` ( `ud_guid` char(255) NOT NULL DEFAULT '', `ud_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `ud_flags` int(11) NOT NULL DEFAULT '0', + `ud_addr` char(255) NOT NULL DEFAULT '', PRIMARY KEY (`ud_id`), KEY `ud_hash` (`ud_hash`), KEY `ud_guid` (`ud_guid`), KEY `ud_date` (`ud_date`), - KEY `ud_flags` (`ud_flags`) + KEY `ud_flags` (`ud_flags`), + KEY `ud_addr` (`ud_addr`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `verify` ( diff --git a/install/update.php b/install/update.php index c135cc586..ccbdd79fd 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@