Prticipation is now a view as well
This commit is contained in:
parent
749c2ce4ab
commit
89dcab774d
2 changed files with 18 additions and 17 deletions
|
@ -259,27 +259,13 @@ class Diaspora
|
||||||
*/
|
*/
|
||||||
public static function participantsForThread($thread, array $contacts)
|
public static function participantsForThread($thread, array $contacts)
|
||||||
{
|
{
|
||||||
$r = DBA::p("SELECT `contact`.`batch`, `contact`.`id`, `contact`.`url`, `contact`.`name`, `contact`.`network`, `contact`.`protocol`,
|
$participation = DBA::select('participation-view', [], ['iid' => $thread]);
|
||||||
`fcontact`.`batch` AS `fbatch`, `fcontact`.`network` AS `fnetwork` FROM `participation`
|
|
||||||
INNER JOIN `contact` ON `contact`.`id` = `participation`.`cid`
|
|
||||||
INNER JOIN `fcontact` ON `fcontact`.`id` = `participation`.`fid`
|
|
||||||
WHERE `participation`.`iid` = ? AND NOT `contact`.`archive`", $thread);
|
|
||||||
|
|
||||||
while ($contact = DBA::fetch($r)) {
|
|
||||||
if (!empty($contact['fnetwork'])) {
|
|
||||||
$contact['network'] = $contact['fnetwork'];
|
|
||||||
}
|
|
||||||
unset($contact['fnetwork']);
|
|
||||||
|
|
||||||
|
while ($contact = DBA::fetch($participation)) {
|
||||||
if (empty($contact['protocol'])) {
|
if (empty($contact['protocol'])) {
|
||||||
$contact['protocol'] = $contact['network'];
|
$contact['protocol'] = $contact['network'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($contact['batch']) && !empty($contact['fbatch'])) {
|
|
||||||
$contact['batch'] = $contact['fbatch'];
|
|
||||||
}
|
|
||||||
unset($contact['fbatch']);
|
|
||||||
|
|
||||||
$exists = false;
|
$exists = false;
|
||||||
foreach ($contacts as $entry) {
|
foreach ($contacts as $entry) {
|
||||||
if ($entry['batch'] == $contact['batch']) {
|
if ($entry['batch'] == $contact['batch']) {
|
||||||
|
@ -291,7 +277,8 @@ class Diaspora
|
||||||
$contacts[] = $contact;
|
$contacts[] = $contact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DBA::close($r);
|
|
||||||
|
DBA::close($participation);
|
||||||
|
|
||||||
return $contacts;
|
return $contacts;
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,6 +175,20 @@ return [
|
||||||
INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self`
|
INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self`
|
||||||
INNER JOIN `profile` ON `profile`.`uid` = `user`.`uid`"
|
INNER JOIN `profile` ON `profile`.`uid` = `user`.`uid`"
|
||||||
],
|
],
|
||||||
|
"participation-view" => [
|
||||||
|
"fields" => [
|
||||||
|
"iid" => ["participation", "iid"],
|
||||||
|
"id" => ["contact", "id"],
|
||||||
|
"url" => ["contact", "url"],
|
||||||
|
"name" => ["contact", "name"],
|
||||||
|
"protocol" => ["contact", "protocol"],
|
||||||
|
"batch" => "CASE `contact`.`batch` WHEN '' THEN `fcontact`.`batch` ELSE `contact`.`batch` END",
|
||||||
|
"network" => "CASE `fcontact`.`network` WHEN '' THEN `contact`.`network` ELSE `fcontact`.`network` END",
|
||||||
|
],
|
||||||
|
"query" => "FROM `participation`
|
||||||
|
INNER JOIN `contact` ON `contact`.`id` = `participation`.`cid` AND NOT `contact`.`archive`
|
||||||
|
INNER JOIN `fcontact` ON `fcontact`.`id` = `participation`.`fid`"
|
||||||
|
],
|
||||||
"pending-view" => [
|
"pending-view" => [
|
||||||
"fields" => [
|
"fields" => [
|
||||||
"id" => ["register", "id"],
|
"id" => ["register", "id"],
|
||||||
|
|
Loading…
Reference in a new issue