Cleaned code for contact avatars

This commit is contained in:
Michael 2021-07-06 10:36:00 +00:00
parent 1b6f9e6225
commit 098cd543ea
4 changed files with 13 additions and 34 deletions

View file

@ -325,7 +325,7 @@ function message_content(App $a)
$to_name_e = $message['name'];
$contact = Contact::getByURL($message['from-url'], false, ['thumb', 'addr', 'id', 'avatar']);
$from_photo = Contact::getThumb($contact, $message['from-photo']);
$from_photo = Contact::getThumb($contact);
$mails[] = [
'id' => $message['id'],
@ -457,7 +457,7 @@ function render_messages(array $msg, $t)
}
$contact = Contact::getByURL($rr['url'], false, ['thumb', 'addr', 'id', 'avatar']);
$from_photo = Contact::getThumb($contact, $rr['thumb'] ?: $rr['from-photo']);
$from_photo = Contact::getThumb($contact);
$rslt .= Renderer::replaceMacros($tpl, [
'$id' => $rr['id'],

View file

@ -1497,67 +1497,46 @@ class Contact
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @return string photo path
*/
private static function getAvatarPath(array $contact, string $field, string $size, string $avatar, $no_update = false)
private static function getAvatarPath(array $contact, string $size, $no_update = false)
{
if (!empty($contact)) {
$contact = self::checkAvatarCacheByArray($contact, $no_update);
if (!empty($contact['id'])) {
return self::getAvatarUrlForId($contact['id'], $size, $contact['updated'] ?? '');
} elseif (!empty($contact[$field])) {
return $contact[$field];
} elseif (!empty($contact['avatar'])) {
$avatar = $contact['avatar'];
}
}
if (empty($avatar)) {
$avatar = self::getDefaultAvatar([], $size);
}
if (Proxy::isLocalImage($avatar)) {
return $avatar;
} else {
return Proxy::proxifyUrl($avatar, $size);
}
$contact = self::checkAvatarCacheByArray($contact, $no_update);
return self::getAvatarUrlForId($contact['id'], $size, $contact['updated'] ?? '');
}
/**
* Return the photo path for a given contact array
*
* @param array $contact Contact array
* @param string $avatar Avatar path that is displayed when no photo had been found
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @return string photo path
*/
public static function getPhoto(array $contact, string $avatar = '', bool $no_update = false)
public static function getPhoto(array $contact, bool $no_update = false)
{
return self::getAvatarPath($contact, 'photo', Proxy::SIZE_SMALL, $avatar, $no_update);
return self::getAvatarPath($contact, Proxy::SIZE_SMALL, $no_update);
}
/**
* Return the photo path (thumb size) for a given contact array
*
* @param array $contact Contact array
* @param string $avatar Avatar path that is displayed when no photo had been found
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @return string photo path
*/
public static function getThumb(array $contact, string $avatar = '', bool $no_update = false)
public static function getThumb(array $contact, bool $no_update = false)
{
return self::getAvatarPath($contact, 'thumb', Proxy::SIZE_THUMB, $avatar, $no_update);
return self::getAvatarPath($contact, Proxy::SIZE_THUMB, $no_update);
}
/**
* Return the photo path (micro size) for a given contact array
*
* @param array $contact Contact array
* @param string $avatar Avatar path that is displayed when no photo had been found
* @param bool $no_update Don't perfom an update if no cached avatar was found
* @return string photo path
*/
public static function getMicro(array $contact, string $avatar = '', bool $no_update = false)
public static function getMicro(array $contact, bool $no_update = false)
{
return self::getAvatarPath($contact, 'micro', Proxy::SIZE_MICRO, $avatar, $no_update);
return self::getAvatarPath($contact, Proxy::SIZE_MICRO, $no_update);
}
/**

View file

@ -1111,7 +1111,7 @@ class Contact extends BaseModule
'url' => $url,
'img_hover' => DI::l10n()->t('Visit %s\'s profile [%s]', $contact['name'], $contact['url']),
'photo_menu' => Model\Contact::photoMenu($contact),
'thumb' => Model\Contact::getThumb($contact, '', true),
'thumb' => Model\Contact::getThumb($contact, true),
'alt_text' => $alt_text,
'name' => $contact['name'],
'nick' => $contact['nick'],

View file

@ -78,7 +78,7 @@ class Acl extends BaseModule
$contacts = [];
foreach ($result as $contact) {
$contacts[] = [
'photo' => Contact::getMicro($contact, '', true),
'photo' => Contact::getMicro($contact, true),
'name' => htmlspecialchars($contact['name']),
'nick' => $contact['addr'] ?: $contact['url'],
'network' => $contact['network'],