@@ -757,6 +757,8 @@ public function saveAnswers($data) {
757757 * @return null|string
758758 */
759759 private function transformAnswerValue (PluginFormcreatorQuestion $ question , $ value = null ) {
760+ global $ CFG_GLPI ;
761+
760762 // unset the answer value
761763 $ answer_value = null ;
762764 $ form = $ question ->getForm ();
@@ -766,15 +768,23 @@ private function transformAnswerValue(PluginFormcreatorQuestion $question, $valu
766768 if (isset ($ value )) {
767769 // If the answer is set, check if it is an array (then implode id).
768770 if ($ value !== null ) {
769- $ answer_value = $ value ;
770- if (is_array (json_decode ($ answer_value , JSON_UNESCAPED_UNICODE ))) {
771- $ answer_value = json_decode ($ answer_value );
772- foreach ($ answer_value as $ key => $ value ) {
773- $ answer_value [$ key ] = $ value ;
771+ if ($ question ->getField ('fieldtype ' ) != 'textarea ' ) {
772+ $ answer_value = $ value ;
773+ if (is_array (json_decode ($ answer_value , JSON_UNESCAPED_UNICODE ))) {
774+ $ answer_value = json_decode ($ answer_value );
775+ foreach ($ answer_value as $ key => $ value ) {
776+ $ answer_value [$ key ] = $ value ;
777+ }
778+ $ answer_value = json_encode ($ answer_value , JSON_UNESCAPED_UNICODE );
779+ } else {
780+ $ answer_value = str_replace ('\\r \\n ' , '\n ' , $ answer_value );
774781 }
775- $ answer_value = json_encode ($ answer_value , JSON_UNESCAPED_UNICODE );
776782 } else {
777- $ answer_value = str_replace ('\\r \\n ' , '\n ' , $ answer_value );
783+ if ($ CFG_GLPI ['use_rich_text ' ]) {
784+ $ answer_value = html_entity_decode ($ value );
785+ } else {
786+ $ answer_value = $ value ;
787+ }
778788 }
779789 } else {
780790 $ answer_value = '' ;
0 commit comments