From 15a00d9240533256eaddc81a429d178a9e2e4b0a Mon Sep 17 00:00:00 2001
From: Jaap Jansma <jaap.jansma@civicoop.org>
Date: Sun, 6 Oct 2019 23:50:32 +0200
Subject: [PATCH] Fixed #18

---
 CHANGELOG.md                                          |  2 ++
 .../FieldOutputHandler/RawFieldOutputHandler.php      | 11 +++++++++--
 .../CRM/Contact/Form/DataProcessorContactSearch.tpl   |  2 +-
 templates/CRM/DataprocessorSearch/Form/Search.tpl     |  2 +-
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 74c6241f..efaabadc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,8 @@
 * Output a data processor as a dashboard.
 * Output a data processor as a tab on the contact summary screen.
 * Added field outputs for simple calculations (substract and total).
+* Added escaped output to search screens.
+* Replaced the value separator in the raw field with a comma.
 
 # Version 1.0.7
 
diff --git a/Civi/DataProcessor/FieldOutputHandler/RawFieldOutputHandler.php b/Civi/DataProcessor/FieldOutputHandler/RawFieldOutputHandler.php
index 654b13c7..e7edd0c3 100644
--- a/Civi/DataProcessor/FieldOutputHandler/RawFieldOutputHandler.php
+++ b/Civi/DataProcessor/FieldOutputHandler/RawFieldOutputHandler.php
@@ -90,7 +90,14 @@ class RawFieldOutputHandler extends AbstractFieldOutputHandler implements Output
    * @return \Civi\DataProcessor\FieldOutputHandler\FieldOutput
    */
   public function formatField($rawRecord, $formattedRecord) {
-    return new FieldOutput($rawRecord[$this->inputFieldSpec->alias]);
+    $formattedValue = $rawRecord[$this->inputFieldSpec->alias];
+    if (strpos($formattedValue, \CRM_Core_DAO::VALUE_SEPARATOR) !== false) {
+      $formattedValue = explode(\CRM_Core_DAO::VALUE_SEPARATOR, substr($formattedValue, 1, -1));
+      $formattedValue = implode(",", $formattedValue);
+    }
+    $output = new FieldOutput($rawRecord[$this->inputFieldSpec->alias]);
+    $output->formattedValue = $formattedValue;
+    return $output;
   }
 
   /**
@@ -175,4 +182,4 @@ class RawFieldOutputHandler extends AbstractFieldOutputHandler implements Output
   }
 
 
-}
\ No newline at end of file
+}
diff --git a/templates/CRM/Contact/Form/DataProcessorContactSearch.tpl b/templates/CRM/Contact/Form/DataProcessorContactSearch.tpl
index 80374ceb..5d9e23d3 100644
--- a/templates/CRM/Contact/Form/DataProcessorContactSearch.tpl
+++ b/templates/CRM/Contact/Form/DataProcessorContactSearch.tpl
@@ -49,7 +49,7 @@
                             <td>{$row.contact_type}</td>
                             {foreach from=$columnHeaders key=headerName item=headerTitle}
                                 {assign var=columnValue value=$record.$headerName}
-                                <td>{$columnValue}</td>
+                                <td>{$columnValue|escape:'html'}</td>
                             {/foreach}
 
                             <td>
diff --git a/templates/CRM/DataprocessorSearch/Form/Search.tpl b/templates/CRM/DataprocessorSearch/Form/Search.tpl
index 283f3d66..94fc89a8 100644
--- a/templates/CRM/DataprocessorSearch/Form/Search.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/Search.tpl
@@ -52,7 +52,7 @@
                             {if $id_field}<td>{$form.$cbName.html}</td>{/if}
                             {foreach from=$columnHeaders key=headerName item=headerTitle}
                                 {assign var=columnValue value=$record.$headerName}
-                                <td>{$columnValue}</td>
+                                <td>{$columnValue|escape:'html'}</td>
                             {/foreach}
 
                             <td>
-- 
GitLab