-
verfasst von Michael Danielczok4c7fbe89
IntervieweeData.php 3,24 KiB
<?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;
}
}