From ad7389cf234dfe4c25ebccec5e194f1aa22b44e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be>
Date: Tue, 7 Nov 2017 15:58:48 +0100
Subject: [PATCH] Merge branch
 '5730-php-error-htmlentities-expects-parameter-1-to-be-string-array-given-usr-share-fusiondirectory-include-simpleplugin-class_attribute-inc-line-563'
 into '1.3-dev'

Resolve "PHP error: htmlentities() expects parameter 1 to be string, array given (/usr/share/fusiondirectory/include/simpleplugin/class_Attribute.inc, line 563)"

See merge request fusiondirectory/fd!72

(cherry picked from commit 87ca56dd943be9750dd4d892ab64323ac2eb83b8)

054d5f34 :ambulance: fix(simpleplugin): Fix PHP error in readonly mode
---
 include/simpleplugin/class_Attribute.inc | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/include/simpleplugin/class_Attribute.inc b/include/simpleplugin/class_Attribute.inc
index 8228f7e30..708d2033f 100644
--- a/include/simpleplugin/class_Attribute.inc
+++ b/include/simpleplugin/class_Attribute.inc
@@ -566,7 +566,18 @@ class Attribute
   {
     if ($this->visible) {
       if ($readOnly) {
-        $input = '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}';
+        $value = $this->getValue();
+        if (is_array($value)) {
+          $input = '{literal}'.implode('<br/>', array_map(
+            function ($v)
+            {
+              return htmlentities($v, ENT_COMPAT, 'UTF-8');
+            },
+            $value
+          )).'{/literal}';
+        } else {
+          $input = '{literal}'.htmlentities($value, ENT_COMPAT, 'UTF-8').'{/literal}';
+        }
       } elseif (is_object($this->plugin) && $this->plugin->is_template) {
         $input = $this->renderTemplateInput();
       } else {
-- 
GitLab