mirror of
https://github.com/friendica/friendica
synced 2024-12-23 13:20:21 +00:00
Add unfollow link to output of Contact::photoMenu
- Add rel and pending keys to output of Contact::getDetailsByURL - Add rel and pending keys to output of Contact::getDetailsByAddr
This commit is contained in:
parent
b8a22de2d2
commit
5cd8cb7134
1 changed files with 40 additions and 26 deletions
|
@ -983,41 +983,43 @@ class Contact extends BaseObject
|
||||||
|
|
||||||
$ssl_url = str_replace('http://', 'https://', $url);
|
$ssl_url = str_replace('http://', 'https://', $url);
|
||||||
|
|
||||||
|
$nurl = Strings::normaliseLink($url);
|
||||||
|
|
||||||
// Fetch contact data from the contact table for the given user
|
// Fetch contact data from the contact table for the given user
|
||||||
$s = DBA::p("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
$s = DBA::p("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
||||||
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self`
|
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self`, `rel`, `pending`
|
||||||
FROM `contact` WHERE `nurl` = ? AND `uid` = ?", Strings::normaliseLink($url), $uid);
|
FROM `contact` WHERE `nurl` = ? AND `uid` = ?", $nurl, $uid);
|
||||||
$r = DBA::toArray($s);
|
$r = DBA::toArray($s);
|
||||||
|
|
||||||
// Fetch contact data from the contact table for the given user, checking with the alias
|
// Fetch contact data from the contact table for the given user, checking with the alias
|
||||||
if (!DBA::isResult($r)) {
|
if (!DBA::isResult($r)) {
|
||||||
$s = DBA::p("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
$s = DBA::p("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
||||||
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self`
|
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self`, `rel`, `pending`
|
||||||
FROM `contact` WHERE `alias` IN (?, ?, ?) AND `uid` = ?", Strings::normaliseLink($url), $url, $ssl_url, $uid);
|
FROM `contact` WHERE `alias` IN (?, ?, ?) AND `uid` = ?", $nurl, $url, $ssl_url, $uid);
|
||||||
$r = DBA::toArray($s);
|
$r = DBA::toArray($s);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch the data from the contact table with "uid=0" (which is filled automatically)
|
// Fetch the data from the contact table with "uid=0" (which is filled automatically)
|
||||||
if (!DBA::isResult($r)) {
|
if (!DBA::isResult($r)) {
|
||||||
$s = DBA::p("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
$s = DBA::p("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
||||||
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`
|
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`, `rel`, `pending`
|
||||||
FROM `contact` WHERE `nurl` = ? AND `uid` = 0", Strings::normaliseLink($url));
|
FROM `contact` WHERE `nurl` = ? AND `uid` = 0", $nurl);
|
||||||
$r = DBA::toArray($s);
|
$r = DBA::toArray($s);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch the data from the contact table with "uid=0" (which is filled automatically) - checked with the alias
|
// Fetch the data from the contact table with "uid=0" (which is filled automatically) - checked with the alias
|
||||||
if (!DBA::isResult($r)) {
|
if (!DBA::isResult($r)) {
|
||||||
$s = DBA::p("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
$s = DBA::p("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
||||||
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`
|
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`, `rel`, `pending`
|
||||||
FROM `contact` WHERE `alias` IN (?, ?, ?) AND `uid` = 0", Strings::normaliseLink($url), $url, $ssl_url);
|
FROM `contact` WHERE `alias` IN (?, ?, ?) AND `uid` = 0", $nurl, $url, $ssl_url);
|
||||||
$r = DBA::toArray($s);
|
$r = DBA::toArray($s);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch the data from the gcontact table
|
// Fetch the data from the gcontact table
|
||||||
if (!DBA::isResult($r)) {
|
if (!DBA::isResult($r)) {
|
||||||
$s = DBA::p("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`,
|
$s = DBA::p("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`,
|
||||||
`keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, 0 AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self`
|
`keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, 0 AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self`, 2 AS `rel`, 0 AS `pending`
|
||||||
FROM `gcontact` WHERE `nurl` = ?", Strings::normaliseLink($url));
|
FROM `gcontact` WHERE `nurl` = ?", $nurl);
|
||||||
$r = DBA::toArray($s);
|
$r = DBA::toArray($s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1121,7 +1123,7 @@ class Contact extends BaseObject
|
||||||
|
|
||||||
// Fetch contact data from the contact table for the given user
|
// Fetch contact data from the contact table for the given user
|
||||||
$r = q("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
$r = q("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
||||||
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self`
|
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self`, `rel`, `pending`
|
||||||
FROM `contact` WHERE `addr` = '%s' AND `uid` = %d AND NOT `deleted`",
|
FROM `contact` WHERE `addr` = '%s' AND `uid` = %d AND NOT `deleted`",
|
||||||
DBA::escape($addr),
|
DBA::escape($addr),
|
||||||
intval($uid)
|
intval($uid)
|
||||||
|
@ -1129,7 +1131,7 @@ class Contact extends BaseObject
|
||||||
// Fetch the data from the contact table with "uid=0" (which is filled automatically)
|
// Fetch the data from the contact table with "uid=0" (which is filled automatically)
|
||||||
if (!DBA::isResult($r)) {
|
if (!DBA::isResult($r)) {
|
||||||
$r = q("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
$r = q("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
|
||||||
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`
|
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`, `rel`, `pending`
|
||||||
FROM `contact` WHERE `addr` = '%s' AND `uid` = 0 AND NOT `deleted`",
|
FROM `contact` WHERE `addr` = '%s' AND `uid` = 0 AND NOT `deleted`",
|
||||||
DBA::escape($addr)
|
DBA::escape($addr)
|
||||||
);
|
);
|
||||||
|
@ -1138,7 +1140,7 @@ class Contact extends BaseObject
|
||||||
// Fetch the data from the gcontact table
|
// Fetch the data from the gcontact table
|
||||||
if (!DBA::isResult($r)) {
|
if (!DBA::isResult($r)) {
|
||||||
$r = q("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`,
|
$r = q("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`,
|
||||||
`keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self`
|
`keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self`, 2 AS `rel`, 0 AS `pending`
|
||||||
FROM `gcontact` WHERE `addr` = '%s'",
|
FROM `gcontact` WHERE `addr` = '%s'",
|
||||||
DBA::escape($addr)
|
DBA::escape($addr)
|
||||||
);
|
);
|
||||||
|
@ -1225,28 +1227,40 @@ class Contact extends BaseObject
|
||||||
$contact_drop_link = System::baseUrl() . '/contact/' . $contact['id'] . '/drop?confirm=1';
|
$contact_drop_link = System::baseUrl() . '/contact/' . $contact['id'] . '/drop?confirm=1';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$follow_link = '';
|
||||||
|
$unfollow_link = '';
|
||||||
|
if (in_array($contact['network'], Protocol::NATIVE_SUPPORT)) {
|
||||||
|
if ($contact['uid'] && in_array($contact['rel'], [self::SHARING, self::FRIEND])) {
|
||||||
|
$unfollow_link = 'unfollow?url=' . urlencode($contact['url']);
|
||||||
|
} elseif(!$contact['pending']) {
|
||||||
|
$follow_link = 'follow?url=' . urlencode($contact['url']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Menu array:
|
* Menu array:
|
||||||
* "name" => [ "Label", "link", (bool)Should the link opened in a new tab? ]
|
* "name" => [ "Label", "link", (bool)Should the link opened in a new tab? ]
|
||||||
*/
|
*/
|
||||||
if (empty($contact['uid'])) {
|
if (empty($contact['uid'])) {
|
||||||
$connlnk = 'follow/?url=' . $contact['url'];
|
|
||||||
$menu = [
|
$menu = [
|
||||||
'profile' => [L10n::t('View Profile'), $profile_link, true],
|
'profile' => [L10n::t('View Profile') , $profile_link , true],
|
||||||
'network' => [L10n::t('Network Posts'), $posts_link, false],
|
'network' => [L10n::t('Network Posts') , $posts_link , false],
|
||||||
'edit' => [L10n::t('View Contact'), $contact_url, false],
|
'edit' => [L10n::t('View Contact') , $contact_url , false],
|
||||||
'follow' => [L10n::t('Connect/Follow'), $connlnk, true],
|
'follow' => [L10n::t('Connect/Follow'), $follow_link , true],
|
||||||
|
'unfollow'=> [L10n::t('UnFollow') , $unfollow_link, true],
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
$menu = [
|
$menu = [
|
||||||
'status' => [L10n::t('View Status'), $status_link, true],
|
'status' => [L10n::t('View Status') , $status_link , true],
|
||||||
'profile' => [L10n::t('View Profile'), $profile_link, true],
|
'profile' => [L10n::t('View Profile') , $profile_link , true],
|
||||||
'photos' => [L10n::t('View Photos'), $photos_link, true],
|
'photos' => [L10n::t('View Photos') , $photos_link , true],
|
||||||
'network' => [L10n::t('Network Posts'), $posts_link, false],
|
'network' => [L10n::t('Network Posts') , $posts_link , false],
|
||||||
'edit' => [L10n::t('View Contact'), $contact_url, false],
|
'edit' => [L10n::t('View Contact') , $contact_url , false],
|
||||||
'drop' => [L10n::t('Drop Contact'), $contact_drop_link, false],
|
'drop' => [L10n::t('Drop Contact') , $contact_drop_link, false],
|
||||||
'pm' => [L10n::t('Send PM'), $pm_url, false],
|
'pm' => [L10n::t('Send PM') , $pm_url , false],
|
||||||
'poke' => [L10n::t('Poke'), $poke_link, false],
|
'poke' => [L10n::t('Poke') , $poke_link , false],
|
||||||
|
'follow' => [L10n::t('Connect/Follow'), $follow_link , true],
|
||||||
|
'unfollow'=> [L10n::t('UnFollow') , $unfollow_link , true],
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!empty($contact['pending'])) {
|
if (!empty($contact['pending'])) {
|
||||||
|
|
Loading…
Reference in a new issue