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']; $to_name_e = $message['name'];
$contact = Contact::getByURL($message['from-url'], false, ['thumb', 'addr', 'id', 'avatar']); $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[] = [ $mails[] = [
'id' => $message['id'], 'id' => $message['id'],
@ -457,7 +457,7 @@ function render_messages(array $msg, $t)
} }
$contact = Contact::getByURL($rr['url'], false, ['thumb', 'addr', 'id', 'avatar']); $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, [ $rslt .= Renderer::replaceMacros($tpl, [
'$id' => $rr['id'], '$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 * @param bool $no_update Don't perfom an update if no cached avatar was found
* @return string photo path * @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);
$contact = self::checkAvatarCacheByArray($contact, $no_update); return self::getAvatarUrlForId($contact['id'], $size, $contact['updated'] ?? '');
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);
}
} }
/** /**
* Return the photo path for a given contact array * Return the photo path for a given contact array
* *
* @param array $contact 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 * @param bool $no_update Don't perfom an update if no cached avatar was found
* @return string photo path * @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 * Return the photo path (thumb size) for a given contact array
* *
* @param array $contact 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 * @param bool $no_update Don't perfom an update if no cached avatar was found
* @return string photo path * @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 * Return the photo path (micro size) for a given contact array
* *
* @param array $contact 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 * @param bool $no_update Don't perfom an update if no cached avatar was found
* @return string photo path * @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, 'url' => $url,
'img_hover' => DI::l10n()->t('Visit %s\'s profile [%s]', $contact['name'], $contact['url']), 'img_hover' => DI::l10n()->t('Visit %s\'s profile [%s]', $contact['name'], $contact['url']),
'photo_menu' => Model\Contact::photoMenu($contact), 'photo_menu' => Model\Contact::photoMenu($contact),
'thumb' => Model\Contact::getThumb($contact, '', true), 'thumb' => Model\Contact::getThumb($contact, true),
'alt_text' => $alt_text, 'alt_text' => $alt_text,
'name' => $contact['name'], 'name' => $contact['name'],
'nick' => $contact['nick'], 'nick' => $contact['nick'],

View file

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