From eb4981f4977502aaf4f09be072252538b5ff6851 Mon Sep 17 00:00:00 2001
From: Campii <dominik.chrzanowski183@gmail.com>
Date: Sun, 31 Oct 2021 12:33:28 +0100
Subject: [PATCH] refactor: Code refactor [IntervieweeData] quiqqer/interview#2

---
 .../Interview/Controls/IntervieweeData.php    | 49 +++++++++++++++----
 1 file changed, 40 insertions(+), 9 deletions(-)

diff --git a/src/QUI/Interview/Controls/IntervieweeData.php b/src/QUI/Interview/Controls/IntervieweeData.php
index ec29d4b..2f6b4a1 100644
--- a/src/QUI/Interview/Controls/IntervieweeData.php
+++ b/src/QUI/Interview/Controls/IntervieweeData.php
@@ -24,6 +24,14 @@ class IntervieweeData extends QUI\Control
      */
     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);
     }
 
@@ -41,11 +49,6 @@ public function getBody()
             return '';
         }
 
-        $intervieweeName           = $Site->getAttribute('quiqqer.interview.settings.intervieweeData.name');
-        $intervieweeAdditionalInfo = $Site->getAttribute('quiqqer.interview.settings.intervieweeData.additionalInfo');
-        $intervieweeAvatar         = $Site->getAttribute('quiqqer.interview.settings.intervieweeData.avatar');
-        $intervieweeDescription    = $Site->getAttribute('quiqqer.interview.settings.intervieweeData.description');
-
         switch ($this->getAttribute('interviewee-template')) {
             case 'largeImageLeft':
                 $html = '/IntervieweeData.largeImageLeft.html';
@@ -62,11 +65,22 @@ public function getBody()
                 break;
         }
 
+        try {
+            $intervieweeData = $this->getIntervieweeData();
+        } catch (Exception $Exception) {
+            QUI\System\Log::addInfo($Exception->getMessage());
+
+            $intervieweeData = [
+                'name' => false,
+                'Image' => false
+            ];
+        }
+
         $Engine->assign([
-            'intervieweeName'           => $intervieweeName,
-            'intervieweeAdditionalInfo' => $intervieweeAdditionalInfo,
-            'intervieweeAvatar'         => $intervieweeAvatar,
-            'intervieweeDescription'    => $intervieweeDescription,
+            'intervieweeName'           => $intervieweeData['intervieweeName'],
+            'intervieweeAdditionalInfo' => $intervieweeData['intervieweeAdditionalInfo'],
+            'intervieweeAvatar'         => $intervieweeData['intervieweeAvatar'],
+            'intervieweeDescription'    => $intervieweeData['intervieweeDescription']
         ]);
 
         $this->addCSSFile(
@@ -76,6 +90,23 @@ public function getBody()
         return $Engine->fetch(dirname(__FILE__) . $html);
     }
 
+    private function getIntervieweeData()
+    {
+        $Site = $this->getSite();
+
+        $intervieweeName           = $Site->getAttribute('quiqqer.interview.settings.intervieweeData.name');
+        $intervieweeAdditionalInfo = $Site->getAttribute('quiqqer.interview.settings.intervieweeData.additionalInfo');
+        $intervieweeAvatar         = $Site->getAttribute('quiqqer.interview.settings.intervieweeData.avatar');
+        $intervieweeDescription    = $Site->getAttribute('quiqqer.interview.settings.intervieweeData.description');
+
+        return [
+            'intervieweeName'           => $intervieweeName,
+            'intervieweeAdditionalInfo' => $intervieweeAdditionalInfo,
+            'intervieweeAvatar'         => $intervieweeAvatar,
+            'intervieweeDescription'    => $intervieweeDescription,
+        ];
+    }
+
     /**
      * @return mixed|QUI\Projects\Site
      *
-- 
GitLab