From c501972188906544171f6f258cc7d6e545a333f5 Mon Sep 17 00:00:00 2001
From: Henning Leutz <leutz@pcsg.de>
Date: Wed, 2 Dec 2020 14:07:00 +0100
Subject: [PATCH] fix: cutsom fields array check

---
 src/QUI/Bricks/Brick.php   | 2 +-
 src/QUI/Bricks/Manager.php | 9 ++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/QUI/Bricks/Brick.php b/src/QUI/Bricks/Brick.php
index 83fe60d..b3b49aa 100644
--- a/src/QUI/Bricks/Brick.php
+++ b/src/QUI/Bricks/Brick.php
@@ -478,7 +478,7 @@ public function getSettings()
      *
      * @return void
      */
-    public function setSettings($settings)
+    public function setSettings(array $settings)
     {
         foreach ($settings as $key => $value) {
             if ($key === 'classes') {
diff --git a/src/QUI/Bricks/Manager.php b/src/QUI/Bricks/Manager.php
index 1a4ea29..88d4a53 100644
--- a/src/QUI/Bricks/Manager.php
+++ b/src/QUI/Bricks/Manager.php
@@ -715,7 +715,10 @@ public function getBricksByArea($brickArea, QUI\Interfaces\Projects\Site $Site)
         }
 
         $brickAreas = $Site->getAttribute('quiqqer.bricks.areas');
-        $brickAreas = \json_decode($brickAreas, true);
+
+        if (!\is_array($brickAreas)) {
+            $brickAreas = \json_decode($brickAreas, true);
+        }
 
         if (!isset($brickAreas[$brickArea]) || empty($brickAreas[$brickArea])) {
             $bricks = $this->getInheritedBricks($brickArea, $Site);
@@ -893,7 +896,7 @@ public function saveBrick($brickId, array $brickData)
         $Brick->setAttributes($brickData);
 
         // fields
-        if (isset($brickData['attributes'])) {
+        if (isset($brickData['attributes']) && \is_array($brickData['attributes'])) {
             foreach ($brickData['attributes'] as $key => $value) {
                 if ($key == 'areas') {
                     continue;
@@ -919,7 +922,7 @@ public function saveBrick($brickId, array $brickData)
         // custom fields
         $customfields = [];
 
-        if (isset($brickData['customfields'])) {
+        if (isset($brickData['customfields']) && \is_array($brickData['customfields'])) {
             $availableSettings           = $Brick->getSettings();
             $availableSettings['width']  = true;
             $availableSettings['height'] = true;
-- 
GitLab