Update HTML::contactBlock and Profile::load with new ContactBlock widget
This commit is contained in:
parent
1f98fdfda6
commit
11a4a57bfe
2 changed files with 17 additions and 93 deletions
|
@ -7,6 +7,7 @@ namespace Friendica\Content\Text;
|
||||||
|
|
||||||
use DOMDocument;
|
use DOMDocument;
|
||||||
use DOMXPath;
|
use DOMXPath;
|
||||||
|
use Friendica\Content\Widget\ContactBlock;
|
||||||
use Friendica\Core\Hook;
|
use Friendica\Core\Hook;
|
||||||
use Friendica\Core\L10n;
|
use Friendica\Core\L10n;
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
|
@ -807,90 +808,17 @@ class HTML
|
||||||
/**
|
/**
|
||||||
* Get html for contact block.
|
* Get html for contact block.
|
||||||
*
|
*
|
||||||
* @template contact_block.tpl
|
* @deprecated since version 2019.03
|
||||||
* @hook contact_block_end (contacts=>array, output=>string)
|
* @see ContactBlock::getHTML()
|
||||||
* @return string
|
* @return string
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
* @throws \ImagickException
|
* @throws \ImagickException
|
||||||
*/
|
*/
|
||||||
public static function contactBlock()
|
public static function contactBlock()
|
||||||
{
|
{
|
||||||
$o = '';
|
|
||||||
$a = \get_app();
|
$a = \get_app();
|
||||||
|
|
||||||
$shown = PConfig::get($a->profile['uid'], 'system', 'display_friend_count', 24);
|
return ContactBlock::getHTML($a->profile);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -9,6 +9,7 @@ use Friendica\Content\Feature;
|
||||||
use Friendica\Content\ForumManager;
|
use Friendica\Content\ForumManager;
|
||||||
use Friendica\Content\Text\BBCode;
|
use Friendica\Content\Text\BBCode;
|
||||||
use Friendica\Content\Text\HTML;
|
use Friendica\Content\Text\HTML;
|
||||||
|
use Friendica\Content\Widget\ContactBlock;
|
||||||
use Friendica\Core\Cache;
|
use Friendica\Core\Cache;
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
use Friendica\Core\Hook;
|
use Friendica\Core\Hook;
|
||||||
|
@ -475,9 +476,9 @@ class Profile
|
||||||
|
|
||||||
$contact_block = '';
|
$contact_block = '';
|
||||||
$updated = '';
|
$updated = '';
|
||||||
$contacts = 0;
|
$contact_count = 0;
|
||||||
if (!$block) {
|
if (!$block) {
|
||||||
$contact_block = HTML::contactBlock();
|
$contact_block = ContactBlock::getHTML($a->profile);
|
||||||
|
|
||||||
if (is_array($a->profile) && !$a->profile['hide-friends']) {
|
if (is_array($a->profile) && !$a->profile['hide-friends']) {
|
||||||
$r = q(
|
$r = q(
|
||||||
|
@ -488,20 +489,15 @@ class Profile
|
||||||
$updated = date('c', strtotime($r[0]['updated']));
|
$updated = date('c', strtotime($r[0]['updated']));
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q(
|
$contact_count = DBA::count('contact', [
|
||||||
"SELECT COUNT(*) AS `total` FROM `contact`
|
'uid' => $profile['uid'],
|
||||||
WHERE `uid` = %d
|
'self' => false,
|
||||||
AND NOT `self` AND NOT `blocked` AND NOT `pending`
|
'blocked' => false,
|
||||||
AND NOT `hidden` AND NOT `archive`
|
'pending' => false,
|
||||||
AND `network` IN ('%s', '%s', '%s', '')",
|
'hidden' => false,
|
||||||
intval($profile['uid']),
|
'archive' => false,
|
||||||
DBA::escape(Protocol::DFRN),
|
'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA],
|
||||||
DBA::escape(Protocol::DIASPORA),
|
]);
|
||||||
DBA::escape(Protocol::OSTATUS)
|
|
||||||
);
|
|
||||||
if (DBA::isResult($r)) {
|
|
||||||
$contacts = intval($r[0]['total']);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -545,7 +541,7 @@ class Profile
|
||||||
'$homepage' => $homepage,
|
'$homepage' => $homepage,
|
||||||
'$about' => $about,
|
'$about' => $about,
|
||||||
'$network' => L10n::t('Network:'),
|
'$network' => L10n::t('Network:'),
|
||||||
'$contacts' => $contacts,
|
'$contacts' => $contact_count,
|
||||||
'$updated' => $updated,
|
'$updated' => $updated,
|
||||||
'$diaspora' => $diaspora,
|
'$diaspora' => $diaspora,
|
||||||
'$contact_block' => $contact_block,
|
'$contact_block' => $contact_block,
|
||||||
|
|
Loading…
Reference in a new issue