CRM-17646 - Refactor out CRM_Core_BAO_CustomOption::getOptionLabel
authorColeman Watts <coleman@civicrm.org>
Tue, 15 Dec 2015 21:24:15 +0000 (16:24 -0500)
committerColeman Watts <coleman@civicrm.org>
Mon, 21 Dec 2015 15:55:27 +0000 (10:55 -0500)
CRM/Core/BAO/CustomField.php
CRM/Core/BAO/CustomOption.php
CRM/Utils/Token.php

index 6914096be7bb43280fc9ea200a695f4abae3c76c..1efdbcba64c5d89f2f5dd1fe8685944aba398dd8 100644 (file)
@@ -1178,64 +1178,6 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
     return self::formatDisplayValue($value, self::$displayInfoCache[$fieldId], $contactId);
   }
 
-  /**
-   * Legacy display value formatter.
-   *
-   * @deprecated
-   *
-   * @param string $value
-   * @param array $option
-   * @param string $html_type
-   * @param string $data_type
-   * @param int $contactID
-   * @param int $fieldID
-   *
-   * @return array|mixed|null|string
-   */
-  public static function getDisplayValueCommon(
-    $value,
-    $option,
-    $html_type,
-    $data_type,
-    $contactID = NULL,
-    $fieldID = NULL
-  ) {
-
-    if ($fieldID &&
-      (($html_type == 'Radio' && $data_type != 'Boolean') ||
-        ($html_type == 'Autocomplete-Select' && $data_type != 'ContactReference') ||
-        $html_type == 'Select' ||
-        $html_type == 'CheckBox' ||
-        $html_type == 'AdvMulti-Select' ||
-        $html_type == 'Multi-Select'
-      )
-    ) {
-      CRM_Utils_Hook::customFieldOptions($fieldID, $option);
-    }
-
-    if ($data_type == 'Boolean') {
-      $option = CRM_Core_SelectValues::boolean();
-    }
-
-    if ($data_type == 'Country') {
-      $option = CRM_Core_PseudoConstant::country(FALSE, FALSE);
-    }
-
-    if ($data_type == 'StateProvince') {
-      $option = CRM_Core_PseudoConstant::stateProvince(FALSE, FALSE);
-    }
-    
-    $field = array(
-      'id' => $fieldID,
-      'html_type' => $html_type,
-      'data_type' => $data_type,
-      'options' => $option,
-    );
-
-    return self::formatDisplayValue($value, $field, $contactID);
-  }
-
-
   /**
    * Lower-level logic for rendering a custom field value
    *
index 0e7fe31a749adb04a5387a305436d02400ce1777..6c44541c839a6d9f1236230032b9424ffda83a95 100644 (file)
@@ -213,68 +213,6 @@ class CRM_Core_BAO_CustomOption {
     return $options;
   }
 
-  /**
-   * Returns the option label for a custom field with a specific value. Handles all
-   * custom field data and html types
-   *
-   * @param int $fieldId
-   *   the custom field ID.
-   * @pram  $value    string the value (typically from the DB) of this custom field
-   * @param $value
-   * @param string $htmlType
-   *   the html type of the field (optional).
-   * @param string $dataType
-   *   the data type of the field (optional).
-   *
-   * @return string
-   *   the label to display for this custom field
-   */
-  public static function getOptionLabel($fieldId, $value, $htmlType = NULL, $dataType = NULL) {
-    if (!$fieldId) {
-      return NULL;
-    }
-
-    if (!$htmlType || !$dataType) {
-      $sql = "
-SELECT html_type, data_type
-FROM   civicrm_custom_field
-WHERE  id = %1
-";
-      $params = array(1 => array($fieldId, 'Integer'));
-      $dao = CRM_Core_DAO::executeQuery($sql, $params);
-      if ($dao->fetch()) {
-        $htmlType = $dao->html_type;
-        $dataType = $dao->data_type;
-      }
-      else {
-        CRM_Core_Error::fatal();
-      }
-    }
-
-    $options = NULL;
-    switch ($htmlType) {
-      case 'CheckBox':
-      case 'Multi-Select':
-      case 'AdvMulti-Select':
-      case 'Select':
-      case 'Radio':
-      case 'Autocomplete-Select':
-        if (!in_array($dataType, array(
-          'Boolean',
-          'ContactReference',
-        ))
-        ) {
-          $options = self::valuesByID($fieldId);
-        }
-    }
-
-    return CRM_Core_BAO_CustomField::getDisplayValueCommon($value,
-      $options,
-      $htmlType,
-      $dataType
-    );
-  }
-
   /**
    * Delete Option.
    *
index c0e4f214de9580eecf50c95ed04855d9128867eb..8e28f658b7d9d9905f97eb06ccbc6294e21afb91 100644 (file)
@@ -326,6 +326,11 @@ class CRM_Utils_Token {
   /**
    * Replace all the org-level tokens in $str
    *
+   * @fixme: This function appears to be broken, as it depends on
+   * nonexistant method: CRM_Core_BAO_CustomValue::getContactValues()
+   * Marking as deprecated until this is fixed
+   * @deprecated
+   *
    * @param string $str
    *   The string with tokens to be replaced.
    * @param object $org
@@ -369,7 +374,7 @@ class CRM_Utils_Token {
         }
         foreach ($cv as $cvFieldID => $value) {
           if ($cvFieldID == $cfID) {
-            $value = CRM_Core_BAO_CustomOption::getOptionLabel($cfID, $value);
+            $value = CRM_Core_BAO_CustomField::displayValue($value, $cfID);
             break;
           }
         }