@@ -750,28 +750,25 @@ protected function parseTags($content, PluginFormcreatorForm_Answer $formanswer,
750750 ORDER BY `questions`.`order` ASC " ;
751751 $ res_questions = $ DB ->query ($ query_questions );
752752 while ($ question_line = $ DB ->fetch_assoc ($ res_questions )) {
753+ $ classname = 'PluginFormcreator ' .ucfirst ($ question_line ['fieldtype ' ]).'Field ' ;
754+ if (class_exists ($ classname )) {
755+ $ fieldObject = new $ classname ($ question_line , $ question_line ['answer ' ]);
756+ }
757+
753758 $ id = $ question_line ['id ' ];
754759 if (!PluginFormcreatorFields::isVisible ($ question_line ['id ' ], $ answers_values )) {
755760 $ name = '' ;
756761 $ value = '' ;
757762 } else {
758763 $ name = $ question_line ['name ' ];
759- $ value = PluginFormcreatorFields::getValue ($ question_line , $ question_line ['answer ' ]);
760- }
761- if (is_array ($ value )) {
762- if ($ CFG_GLPI ['use_rich_text ' ]) {
763- $ value = '<br /> ' . implode ('<br /> ' , $ value );
764- } else {
765- $ value = "\r\n" . implode ("\r\n" , $ value );
766- }
764+ $ value = $ fieldObject ->prepareQuestionInputForTarget ($ fieldObject ->getValue ());
767765 }
768-
769766 if ($ question_line ['fieldtype ' ] !== 'file ' ) {
770767 $ content = str_replace ('##question_ ' . $ id . '## ' , addslashes ($ name ), $ content );
771- $ content = str_replace ('##answer_ ' . $ id . '## ' , addslashes ( $ value) , $ content );
768+ $ content = str_replace ('##answer_ ' . $ id . '## ' , $ value , $ content );
772769 } else {
773770 if (strpos ($ content , '##answer_ ' . $ id . '## ' ) !== false ) {
774- $ content = str_replace ('##question_ ' . $ id . '## ' , addslashes ( $ name) , $ content );
771+ $ content = str_replace ('##question_ ' . $ id . '## ' , $ name , $ content );
775772 if ($ value !== '' ) {
776773 $ content = str_replace ('##answer_ ' . $ id . '## ' , __ ('Attached document ' , 'formcreator ' ), $ content );
777774
0 commit comments