X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FPhoto.php;h=3d3110fd8b702fa2458c6c1a2ff61fc775b68637;hb=1ae7cac23667a7e43a0ca5e66ad6fd58011542d0;hp=6f58cb7f57caa8f741bc07078969f45511c08d38;hpb=2b0c2a57a7170ce1a7d09441f94ff79fbdc24fd0;p=friendica.git diff --git a/src/Module/Photo.php b/src/Module/Photo.php index 6f58cb7f57..3d3110fd8b 100644 --- a/src/Module/Photo.php +++ b/src/Module/Photo.php @@ -265,13 +265,33 @@ class Photo extends BaseModule return MPhoto::createPhotoForExternalResource($link['url'], (int)local_user(), $link['mimetype']); case "contact": - $contact = Contact::getById($id, ['uid', 'url', 'avatar', 'photo', 'xmpp', 'addr']); + $contact = Contact::getById($id, ['uid', 'url', 'nurl', 'avatar', 'photo', 'xmpp', 'addr']); if (empty($contact)) { return false; } - If (($contact['uid'] != 0) && empty($contact['photo']) && empty($contact['avatar'])) { + + // For local users directly use the photo record that is marked as the profile + if (Network::isLocalLink($contact['url'])) { + $contact = Contact::selectFirst(['uid', 'url', 'avatar', 'photo', 'xmpp', 'addr'], ['nurl' => $contact['nurl'], 'self' => true]); + if (!empty($contact)) { + if ($customsize <= Proxy::PIXEL_MICRO) { + $scale = 6; + } elseif ($customsize <= Proxy::PIXEL_THUMB) { + $scale = 5; + } else { + $scale = 4; + } + $photo = MPhoto::selectFirst([], ["scale" => $scale, "uid" => $contact['uid'], "profile" => 1]); + if (!empty($photo)) { + return $photo; + } + } + } + + if (!empty($contact['uid']) && empty($contact['photo']) && empty($contact['avatar'])) { $contact = Contact::getByURL($contact['url'], false, ['avatar', 'photo', 'xmpp', 'addr']); } + if (!empty($contact['photo']) && !empty($contact['avatar'])) { // Fetch photo directly $resourceid = MPhoto::ridFromURI($contact['photo']);