CRM-14338-2 fix prefix/suffix on profile view page
authorBrian Shaughnessy <brian@lcdservices.biz>
Tue, 18 Mar 2014 16:59:43 +0000 (12:59 -0400)
committerBrian Shaughnessy <brian@lcdservices.biz>
Tue, 18 Mar 2014 16:59:43 +0000 (12:59 -0400)
CRM/Core/BAO/UFGroup.php
CRM/Profile/Page/Dynamic.php

index 05fd61d48e280fcdbdaa39587dd3e771b310327e..b8a54e652cc7d08c56ee927ec291f1ca0f599668 100644 (file)
@@ -940,7 +940,7 @@ class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup {
       }
 
       //handle the case to avoid re-write where the profile field labels are the same
-      if (CRM_Utils_Array::value($index, $values)) {
+      if (array_key_exists($index, $values)) {
         $index .= $nullValueIndex;
         $nullValueIndex .= $nullValueIndex;
       }
@@ -950,8 +950,8 @@ class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup {
       if (isset($details->$name) || $name == 'group' || $name == 'tag') {
         // to handle gender / suffix / prefix
         if (in_array(substr($name, 0, -3), array('gender', 'prefix', 'suffix'))) {
-          $values[$index] = CRM_Core_PseudoConstant::getLabel('CRM_Contact_DAO_Contact', $name, $details->$name);
           $params[$index] = $details->$name;
+          $values[$index] = $details->$name;
         }
         elseif (in_array($name, CRM_Contact_BAO_Contact::$_greetingTypes)) {
           $dname          = $name . '_display';
index 93131a9b719f416469ac1676888eeae53ee0e9d4..7d9b17ccdbeb21c33869670c5846b18ec525b765 100644 (file)
@@ -317,8 +317,16 @@ class CRM_Profile_Page_Dynamic extends CRM_Core_Page {
       $profileFields = array();
       $labels = array();
 
+      //CRM-14338
+      $nullValueIndex = ' ';
       foreach ($fields as $name => $field) {
-        $labels[$field['title']] = preg_replace('/\s+|\W+/', '_', $name);
+        if ( isset($labels[$field['title']]) ) {
+          $labels[$field['title'].$nullValueIndex] = preg_replace('/\s+|\W+/', '_', $name);
+          $nullValueIndex .= $nullValueIndex;
+        }
+        else {
+          $labels[$field['title']] = preg_replace('/\s+|\W+/', '_', $name);
+        }
       }
 
       foreach ($values as $title => $value) {