Update HTML::contactBlock and Profile::load with new ContactBlock widget
This commit is contained in:
parent
1f98fdfda6
commit
11a4a57bfe
|
@ -7,6 +7,7 @@ namespace Friendica\Content\Text;
|
|||
|
||||
use DOMDocument;
|
||||
use DOMXPath;
|
||||
use Friendica\Content\Widget\ContactBlock;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\Config;
|
||||
|
@ -807,90 +808,17 @@ class HTML
|
|||
/**
|
||||
* Get html for contact block.
|
||||
*
|
||||
* @template contact_block.tpl
|
||||
* @hook contact_block_end (contacts=>array, output=>string)
|
||||
* @deprecated since version 2019.03
|
||||
* @see ContactBlock::getHTML()
|
||||
* @return string
|
||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||
* @throws \ImagickException
|
||||
*/
|
||||
public static function contactBlock()
|
||||
{
|
||||
$o = '';
|
||||
$a = \get_app();
|
||||
|
||||
$shown = PConfig::get($a->profile['uid'], 'system', 'display_friend_count', 24);
|
||||
if ($shown == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!is_array($a->profile) || $a->profile['hide-friends']) {
|
||||
return $o;
|
||||
}
|
||||
|
||||
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
|
||||
AND NOT `pending` AND NOT `hidden` AND NOT `archive`
|
||||
AND `network` IN ('%s', '%s', '%s')",
|
||||
intval($a->profile['uid']),
|
||||
DBA::escape(Protocol::DFRN),
|
||||
DBA::escape(Protocol::OSTATUS),
|
||||
DBA::escape(Protocol::DIASPORA)
|
||||
);
|
||||
|
||||
if (DBA::isResult($r)) {
|
||||
$total = intval($r[0]['total']);
|
||||
}
|
||||
|
||||
if (!$total) {
|
||||
$contacts = L10n::t('No contacts');
|
||||
$micropro = null;
|
||||
} else {
|
||||
// Splitting the query in two parts makes it much faster
|
||||
$r = q("SELECT `id` FROM `contact`
|
||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
|
||||
AND NOT `pending` AND NOT `hidden` AND NOT `archive`
|
||||
AND `network` IN ('%s', '%s', '%s')
|
||||
ORDER BY RAND() LIMIT %d",
|
||||
intval($a->profile['uid']),
|
||||
DBA::escape(Protocol::DFRN),
|
||||
DBA::escape(Protocol::OSTATUS),
|
||||
DBA::escape(Protocol::DIASPORA),
|
||||
intval($shown)
|
||||
);
|
||||
|
||||
if (DBA::isResult($r)) {
|
||||
$contacts = [];
|
||||
foreach ($r as $contact) {
|
||||
$contacts[] = $contact["id"];
|
||||
}
|
||||
|
||||
$r = q("SELECT `id`, `uid`, `addr`, `url`, `name`, `thumb`, `network` FROM `contact` WHERE `id` IN (%s)",
|
||||
DBA::escape(implode(",", $contacts))
|
||||
);
|
||||
|
||||
if (DBA::isResult($r)) {
|
||||
$contacts = L10n::tt('%d Contact', '%d Contacts', $total);
|
||||
$micropro = [];
|
||||
foreach ($r as $rr) {
|
||||
$micropro[] = self::micropro($rr, true, 'mpfriend');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tpl = Renderer::getMarkupTemplate('contact_block.tpl');
|
||||
$o = Renderer::replaceMacros($tpl, [
|
||||
'$contacts' => $contacts,
|
||||
'$nickname' => $a->profile['nickname'],
|
||||
'$viewcontacts' => L10n::t('View Contacts'),
|
||||
'$micropro' => $micropro,
|
||||
]);
|
||||
|
||||
$arr = ['contacts' => $r, 'output' => $o];
|
||||
|
||||
Hook::callAll('contact_block_end', $arr);
|
||||
|
||||
return $o;
|
||||
return ContactBlock::getHTML($a->profile);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -9,6 +9,7 @@ use Friendica\Content\Feature;
|
|||
use Friendica\Content\ForumManager;
|
||||
use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Content\Text\HTML;
|
||||
use Friendica\Content\Widget\ContactBlock;
|
||||
use Friendica\Core\Cache;
|
||||
use Friendica\Core\Config;
|
||||
use Friendica\Core\Hook;
|
||||
|
@ -475,9 +476,9 @@ class Profile
|
|||
|
||||
$contact_block = '';
|
||||
$updated = '';
|
||||
$contacts = 0;
|
||||
$contact_count = 0;
|
||||
if (!$block) {
|
||||
$contact_block = HTML::contactBlock();
|
||||
$contact_block = ContactBlock::getHTML($a->profile);
|
||||
|
||||
if (is_array($a->profile) && !$a->profile['hide-friends']) {
|
||||
$r = q(
|
||||
|
@ -488,20 +489,15 @@ class Profile
|
|||
$updated = date('c', strtotime($r[0]['updated']));
|
||||
}
|
||||
|
||||
$r = q(
|
||||
"SELECT COUNT(*) AS `total` FROM `contact`
|
||||
WHERE `uid` = %d
|
||||
AND NOT `self` AND NOT `blocked` AND NOT `pending`
|
||||
AND NOT `hidden` AND NOT `archive`
|
||||
AND `network` IN ('%s', '%s', '%s', '')",
|
||||
intval($profile['uid']),
|
||||
DBA::escape(Protocol::DFRN),
|
||||
DBA::escape(Protocol::DIASPORA),
|
||||
DBA::escape(Protocol::OSTATUS)
|
||||
);
|
||||
if (DBA::isResult($r)) {
|
||||
$contacts = intval($r[0]['total']);
|
||||
}
|
||||
$contact_count = DBA::count('contact', [
|
||||
'uid' => $profile['uid'],
|
||||
'self' => false,
|
||||
'blocked' => false,
|
||||
'pending' => false,
|
||||
'hidden' => false,
|
||||
'archive' => false,
|
||||
'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -545,7 +541,7 @@ class Profile
|
|||
'$homepage' => $homepage,
|
||||
'$about' => $about,
|
||||
'$network' => L10n::t('Network:'),
|
||||
'$contacts' => $contacts,
|
||||
'$contacts' => $contact_count,
|
||||
'$updated' => $updated,
|
||||
'$diaspora' => $diaspora,
|
||||
'$contact_block' => $contact_block,
|
||||
|
|
Loading…
Reference in a new issue