<?php /** * This file contains \QUI\Interview\Controls\IntervieweeData */ namespace QUI\Interview\Controls; use QUI; use QUI\Exception; /** * Class IntervieweeData * * @author Dominik Chrzanowski * @package quiqqer/interview * */ class IntervieweeData extends QUI\Control { /** * constructor * * @param array $attributes */ public function __construct($attributes = []) { // default options $this->setAttributes([ 'class' => 'quiqqer-interview-control-interviewee', 'template' => 'largeImageTop' // template ]); $this->addCSSFile(dirname(__FILE__).'/IntervieweeData.css'); parent::__construct($attributes); $this->setAttribute('cacheable', 0); } /** * (non-PHPdoc) * * @see \QUI\Control::create() */ public function getBody() { $Engine = QUI::getTemplateManager()->getEngine(); $Site = $this->getSite(); if ($Site->getAttribute("type") !== 'quiqqer/blog:blog/entry' && $Site->getAttribute("type") !== 'quiqqer/news:news/entry') { return ''; } switch ($this->getAttribute('template')) { case 'largeImageLeft': $html = '/IntervieweeData.LargeImageLeft.html'; break; case 'smallImageLeft': $html = '/IntervieweeData.SmallImageLeft.html'; break; case 'largeImageTop': default: $html = '/IntervieweeData.LargeImageTop.html'; break; } try { $intervieweeData = $this->getIntervieweeData(); } catch (Exception $Exception) { QUI\System\Log::addInfo($Exception->getMessage()); return ''; } $Engine->assign([ 'this' => $this, 'name' => $intervieweeData['name'], 'additionalInfo' => $intervieweeData['additionalInfo'], 'avatar' => $intervieweeData['avatar'], 'description' => $intervieweeData['description'] ]); $Engine->assign('controlTemplate', $Engine->fetch(dirname(__FILE__).$html)); return $Engine->fetch(dirname(__FILE__).'/IntervieweeData.html'); } /** * Get intrerviewee data * * @return array * @throws Exception */ private function getIntervieweeData() { $Site = $this->getSite(); return [ 'name' => $Site->getAttribute('quiqqer.interview.settings.intervieweeData.name'), 'additionalInfo' => $Site->getAttribute('quiqqer.interview.settings.intervieweeData.additionalInfo'), 'avatar' => $Site->getAttribute('quiqqer.interview.settings.intervieweeData.avatar'), 'description' => $Site->getAttribute('quiqqer.interview.settings.intervieweeData.description') ]; } /** * @return mixed|QUI\Projects\Site * * @throws QUI\Exception */ protected function getSite() { if ($this->getAttribute('Site')) { return $this->getAttribute('Site'); } $Site = QUI::getRewrite()->getSite(); $this->setAttribute('Site', $Site); return $Site; } }