CRM-14588: Format date fields in contribution confirm page.
authorMathieu Lutfy <mathieu@bidon.ca>
Wed, 29 Apr 2015 15:40:25 +0000 (11:40 -0400)
committerMathieu Lutfy <mathieu@bidon.ca>
Wed, 29 Apr 2015 15:40:25 +0000 (11:40 -0400)
CRM/Core/Form/Renderer.php

index f67c2e332f14f406f788f0dff932f0c2f186017b..3c1117578b97110dec40e9a756ad32b0dfe90bfd 100644 (file)
@@ -120,6 +120,10 @@ class CRM_Core_Form_Renderer extends HTML_QuickForm_Renderer_ArraySmarty {
       if ($element->getAttribute('data-api-entity') && $element->getAttribute('data-entity-value')) {
         $this->renderFrozenEntityRef($el, $element);
       }
+      elseif ($element->getAttribute('type') == 'text' && ! empty($element->getAttribute('format'))) {
+        $this->renderFrozenDate($el, $element);
+      }
+
       $el['html'] = '<span class="crm-frozen-field">' . $el['html'] . '</span>';
     }
     // Active form elements
@@ -260,6 +264,24 @@ class CRM_Core_Form_Renderer extends HTML_QuickForm_Renderer_ArraySmarty {
     $el['html'] = implode('; ', $display) . '<input type="hidden" value="' . $field->getValue() . '" name="' . $field->getAttribute('name') . '">';
   }
 
+  /**
+   * Render a date field as text.
+   *
+   * @param array $el
+   * @param HTML_QuickForm_element $field
+   */
+  public function renderFrozenDate(&$el, $field) {
+    $format = $field->getAttribute('format');
+    $map = CRM_Core_SelectValues::datePluginToPHPFormats($format);
+
+    if (isset($map[$format])) {
+      $format = $map[$format];
+    }
+
+    $date = DateTime::createFromFormat('d/m/Y', $field->getValue());
+    $el['html'] = $date->format($format) . '<input type="hidden" value="' . $field->getValue() . '" name="' . $field->getAttribute('name') . '">';
+  }
+
   /**
    * Pre-fill contact name for a custom field of type ContactReference
    *