From 7fdd4dbb9a42182060031f3e7d487264ffe729f3 Mon Sep 17 00:00:00 2001 From: Ivo Valchev Date: Fri, 22 May 2020 13:43:21 +0200 Subject: [PATCH] Wrap list fields with 1 element in array --- src/Entity/Field.php | 2 +- src/Entity/Field/FilelistField.php | 3 ++- src/Entity/Field/ImagelistField.php | 5 +++-- src/Entity/ListFieldInterface.php | 12 ++++++++++++ 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 src/Entity/ListFieldInterface.php diff --git a/src/Entity/Field.php b/src/Entity/Field.php index 92701fcda..97e7fdcc9 100644 --- a/src/Entity/Field.php +++ b/src/Entity/Field.php @@ -221,7 +221,7 @@ public function getParsedValue() $count = count($value); if ($count === 0) { return null; - } elseif ($count === 1 && array_keys($value)[0] === 0) { + } elseif ($count === 1 && array_keys($value)[0] === 0 && ! $this instanceof ListFieldInterface) { return reset($value); } } diff --git a/src/Entity/Field/FilelistField.php b/src/Entity/Field/FilelistField.php index e8669d1af..502602655 100644 --- a/src/Entity/Field/FilelistField.php +++ b/src/Entity/Field/FilelistField.php @@ -7,12 +7,13 @@ use Bolt\Configuration\Content\ContentType; use Bolt\Entity\Field; use Bolt\Entity\FieldInterface; +use Bolt\Entity\ListFieldInterface; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity */ -class FilelistField extends Field implements FieldInterface +class FilelistField extends Field implements FieldInterface, ListFieldInterface { public const TYPE = 'filelist'; diff --git a/src/Entity/Field/ImagelistField.php b/src/Entity/Field/ImagelistField.php index 4b3975485..b1cd65f35 100644 --- a/src/Entity/Field/ImagelistField.php +++ b/src/Entity/Field/ImagelistField.php @@ -7,12 +7,13 @@ use Bolt\Configuration\Content\ContentType; use Bolt\Entity\Field; use Bolt\Entity\FieldInterface; +use Bolt\Entity\ListFieldInterface; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity */ -class ImagelistField extends Field implements FieldInterface +class ImagelistField extends Field implements FieldInterface, ListFieldInterface { public const TYPE = 'imagelist'; @@ -37,7 +38,7 @@ public function getValue(): array $imageField = new ImageField(); $imageField->setName((string) $key); $imageField->setValue($image); - array_push($result, $imageField); + $result[] = $imageField; } return $result; diff --git a/src/Entity/ListFieldInterface.php b/src/Entity/ListFieldInterface.php new file mode 100644 index 000000000..746d3be9a --- /dev/null +++ b/src/Entity/ListFieldInterface.php @@ -0,0 +1,12 @@ +