* {president} * * * @package Opentalent\OtTemplating\ViewHelpers */ class GetPresidentViewHelper extends OtAbstractViewHelper { use TemplateVariableViewHelperTrait; /** * >> Required to prevent typo3 to escape the html output * @var boolean */ protected $escapeOutput = false; /** * @var MemberRepository * */ protected $memberRepository; /** * -- This method is expected by Fluid -- * Declares the viewhelper's parameters */ public function initializeArguments() { $this->registerArgument( 'as', 'string', 'Name of the returned array', true ); $this->registerArgument( 'organizationId', 'integer', 'Id of the current structure', true ); } /** * -- This method is expected by Fluid -- * Renders the content as html * * @return string * @throws \GuzzleHttp\Exception\GuzzleException * @throws \Opentalent\OtTemplating\Exception\ApiRequestException */ public function render() { // Get current settings $as = $this->arguments['as']; $organizationId = $this->arguments['organizationId']; // Get members of the structure (only CA members) try { $collection = $this->memberRepository->findByOrganizationId($organizationId, true); $members = $collection->getMembers(); } catch (ApiRequestException $e) { $this->logger->error(sprintf('API Error: %s', $e->getMessage())); $members = []; } $president = null; foreach ($members as $member) { if ($member->getMission() == 'PRESIDENT') { $president = $member; break; } } $variables = [$as => $president]; return $this->renderChildrenWithVariables($variables); } /** * @param MemberRepository $memberRepository */ public function injectMemberRepository(MemberRepository $memberRepository) { $this->memberRepository = $memberRepository; } }