From 43296abc99a4e547ccacb2c1c255d86d949e5829 Mon Sep 17 00:00:00 2001 From: Pradeep Nayak Date: Sat, 22 Nov 2014 01:28:27 +0530 Subject: [PATCH] --CRM-10206 --- CRM/Core/BAO/CustomField.php | 6 ++++-- api/v3/utils.php | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CRM/Core/BAO/CustomField.php b/CRM/Core/BAO/CustomField.php index 9cde814573..7a0bee1ee1 100644 --- a/CRM/Core/BAO/CustomField.php +++ b/CRM/Core/BAO/CustomField.php @@ -1548,6 +1548,7 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { * @param int $entityId entity id (contribution, membership...) * @param boolean $inline consider inline custom groups only * @param boolean $checkPermission if false, do not include permissioning clause + * @param boolean $includeViewOnly if true, fields marked 'View Only' are included. Required for APIv3. * * @return array $customFormatted formatted custom field array * @static @@ -1556,7 +1557,8 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { $customFieldExtend, $customValueId = NULL, $entityId = NULL, $inline = FALSE, - $checkPermission = TRUE + $checkPermission = TRUE, + $includeViewOnly = FALSE ) { //get the custom fields for the entity //subtype and basic type @@ -1589,7 +1591,7 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { } // return if field is a 'code' field - if (CRM_Utils_Array::value('is_view', $customFields[$customFieldId])) { + if (!$includeViewOnly && !empty($customFields[$customFieldId]['is_view'])) { return; } diff --git a/api/v3/utils.php b/api/v3/utils.php index 873d60995e..dc55c7e5e5 100644 --- a/api/v3/utils.php +++ b/api/v3/utils.php @@ -921,8 +921,13 @@ function _civicrm_api3_custom_format_params($params, &$values, $extends, $entity if ($checkCheckBoxField && !empty($fields['custom_' . $customFieldID]) && $fields['custom_' . $customFieldID]['html_type'] == 'CheckBox') { formatCheckBoxField($value, 'custom_' . $customFieldID, $entity); } + // update custom field using get api, temporary value has to Overwrite + // get api return custom_customFieldID and custom_customFieldID_customValueID + if ($customValueID) { + $value = $params['custom_'.$customFieldID]; + } CRM_Core_BAO_CustomField::formatCustomField($customFieldID, $values['custom'], - $value, $extends, $customValueID, $entityId, FALSE, FALSE + $value, $extends, $customValueID, $entityId, FALSE, FALSE, TRUE ); } } -- 2.25.1