getAvatarFileUid($backendUser['uid']); if ($fileUid === 0) { // Early return if there is no valid image file UID return null; } // Get file object try { $file = GeneralUtility::makeInstance(ResourceFactory::class)->getFileObject($fileUid); $processedImage = $file->process( ProcessedFile::CONTEXT_IMAGECROPSCALEMASK, ['width' => $size . 'c', 'height' => $size . 'c'] ); $publicUrl = $processedImage->getPublicUrl(); if ($publicUrl) { $image = GeneralUtility::makeInstance( Image::class, $publicUrl, $processedImage->getProperty('width'), $processedImage->getProperty('height') ); } else { $image = null; } } catch (FileDoesNotExistException $e) { // No image found $image = null; } return $image; } /** * Get the sys_file UID of the avatar of the given backend user ID * * @param int $backendUserId the UID of the be_users record * @return int the sys_file UID or 0 if none found */ protected function getAvatarFileUid($backendUserId) { $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_file_reference'); $fileUid = $queryBuilder ->select('uid_local') ->from('sys_file_reference') ->where( $queryBuilder->expr()->eq( 'tablenames', $queryBuilder->createNamedParameter('be_users') ), $queryBuilder->expr()->eq( 'fieldname', $queryBuilder->createNamedParameter('avatar') ), $queryBuilder->expr()->eq( 'uid_foreign', $queryBuilder->createNamedParameter((int)$backendUserId, Connection::PARAM_INT) ) ) ->executeQuery() ->fetchOne(); return (int)$fileUid; } }