` tag, for a given backend user. * * Examples * ======== * * Default * ------- * * :: * * * * Output:: * * * * * * * * If the given backend user hasn't added a custom avatar yet, a default one is used. * * Inline notation * --------------- * * :: * * {be:avatar(backendUser: user.id, size: 32, showIcon: 'true')} * * Output:: * * * * * * */ class AvatarViewHelper extends AbstractViewHelper { use CompileWithRenderStatic; /** * As this ViewHelper renders HTML, the output must not be escaped. * * @var bool */ protected $escapeOutput = false; /** * Initializes the arguments */ public function initializeArguments() { $this->registerArgument('backendUser', 'int', 'uid of the backend user', false, 0); $this->registerArgument('size', 'int', 'width and height of the image', false, 32); $this->registerArgument('showIcon', 'bool', 'show the record icon as well', false, false); } /** * Resolve user avatar from a given backend user id. * * @param array $arguments * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return string */ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { if ($arguments['backendUser'] > 0) { $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users'); $queryBuilder->getRestrictions()->removeAll(); $backendUser = $queryBuilder ->select('*') ->from('be_users') ->where( $queryBuilder->expr()->eq( 'uid', $queryBuilder->createNamedParameter($arguments['backendUser'], \PDO::PARAM_INT) ) ) ->execute() ->fetch(); } else { $backendUser = $GLOBALS['BE_USER']->user; } if ($backendUser === false) { // no BE user can be retrieved from DB, probably deleted return ''; } $avatar = GeneralUtility::makeInstance(Avatar::class); return $avatar->render($backendUser, $arguments['size'], $arguments['showIcon']); } }