From 9af2925b99f5b8a0d4d2c7ce053e858552eeee9d Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Wed, 30 Apr 2014 18:25:24 -0700 Subject: [PATCH] CRM-14449 api custom data behaviour - preliminary tidy up --- CRM/Activity/BAO/Activity.php | 6 ++++-- CRM/Contact/BAO/Relationship.php | 2 +- CRM/Contribute/BAO/Contribution.php | 2 +- CRM/Event/BAO/Participant.php | 4 ++-- api/v3/Case.php | 15 ++++++--------- api/v3/Grant.php | 7 ++----- api/v3/Membership.php | 2 +- api/v3/utils.php | 6 +++--- 8 files changed, 20 insertions(+), 24 deletions(-) diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php index dc34ec4cc6..a8c2a707fc 100644 --- a/CRM/Activity/BAO/Activity.php +++ b/CRM/Activity/BAO/Activity.php @@ -283,7 +283,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity { public static function create(&$params) { // check required params if (!self::dataExists($params)) { - CRM_Core_Error::fatal('Not enough data to create activity object,'); + throw new CRM_Core_Exception('Not enough data to create activity object'); } $activity = new CRM_Activity_DAO_Activity(); @@ -494,7 +494,9 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity { $t = array_slice($params['target_contact_id'], 0, 1); $recentContactId = $t[0]; } - elseif (isset($params['target_contact_id'])) { + //is array check fixes warning without degrading functionality but it seems this bit of code may no longer work + // as it may always be an array + elseif (isset($params['target_contact_id']) && !is_array($params['target_contact_id'])) { $msgs[] = "target={$params['target_contact_id']}"; // will be used for recently viewed display $recentContactId = $params['target_contact_id']; diff --git a/CRM/Contact/BAO/Relationship.php b/CRM/Contact/BAO/Relationship.php index 42e5cf864d..996b02dd4e 100644 --- a/CRM/Contact/BAO/Relationship.php +++ b/CRM/Contact/BAO/Relationship.php @@ -56,7 +56,7 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship { */ static function create(&$params, $ids = array()) { $valid = $invalid = $duplicate = $saved = 0; - $relationships = array(); + $relationships = $relationshipIds = array(); $relationshipId = CRM_Utils_Array::value('relationship', $ids, CRM_Utils_Array::value('id', $params)); //CRM-9015 - the hooks are called here & in add (since add doesn't call create) // but in future should be tidied per ticket diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index 3418350d8e..d4564a378f 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -239,7 +239,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution { * @access public * @static */ - static function &create(&$params, $ids = array()) { + static function create(&$params, $ids = array()) { $dateFields = array('receive_date', 'cancel_date', 'receipt_date', 'thankyou_date'); foreach ($dateFields as $df) { if (isset($params[$df])) { diff --git a/CRM/Event/BAO/Participant.php b/CRM/Event/BAO/Participant.php index 41b944d970..54cb729594 100644 --- a/CRM/Event/BAO/Participant.php +++ b/CRM/Event/BAO/Participant.php @@ -192,7 +192,7 @@ class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant { * @access public * @static */ - static function &create(&$params) { + static function create(&$params) { $transaction = new CRM_Core_Transaction(); $status = NULL; @@ -209,7 +209,7 @@ class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant { } if ((!CRM_Utils_Array::value('id', $params)) || - ($params['status_id'] != $status) + (isset($params['status_id']) && $params['status_id'] != $status) ) { CRM_Activity_BAO_Activity::addActivity($participant); } diff --git a/api/v3/Case.php b/api/v3/Case.php index d595f23ac9..04e2d3f8bb 100644 --- a/api/v3/Case.php +++ b/api/v3/Case.php @@ -134,6 +134,7 @@ function civicrm_api3_case_create($params) { function _civicrm_api3_case_get_spec(&$params) { $params['contact_id']['api.aliases'] = array('client_id'); $params['contact_id']['title'] = 'Case Client'; + $params['creator_id']['api.default'] = 'user_contact_id'; } /** @@ -234,7 +235,7 @@ SELECT DISTINCT case_id WHERE (contact_id_a = $contact OR contact_id_b = $contact) AND case_id IS NOT NULL"; - $dao = &CRM_Core_DAO::executeQuery($sql); + $dao = CRM_Core_DAO::executeQuery($sql); $cases = array(); while ($dao->fetch()) { @@ -372,8 +373,11 @@ function civicrm_api3_case_delete($params) { * * @param int $caseId * - * @return array (reference) case object + * @param $params + * + * @internal param $options * + * @return array (reference) case object */ function _civicrm_api3_case_read($caseId, $options) { $return = CRM_Utils_Array::value('return', $options, array()); @@ -412,13 +416,6 @@ function _civicrm_api3_case_read($caseId, $options) { * Internal function to format create params for processing */ function _civicrm_api3_case_format_params(&$params) { - if (!array_key_exists('creator_id', $params)) { - $session = CRM_Core_Session::singleton(); - $params['creator_id'] = $session->get('userID'); - } - if (empty($params['start_date'])) { - $params['start_date'] = date('YmdHis'); - } // figure out case type id from case type and vice-versa $caseTypes = CRM_Case_PseudoConstant::caseType('label', FALSE); if (empty($params['case_type_id'])) { diff --git a/api/v3/Grant.php b/api/v3/Grant.php index 52d7a81f0d..a7f0eebda3 100644 --- a/api/v3/Grant.php +++ b/api/v3/Grant.php @@ -49,10 +49,7 @@ * @access public */ function civicrm_api3_grant_create($params) { - $values = array(); - _civicrm_api3_custom_format_params($params, $values, 'Grant'); - $params = array_merge($values, $params); - return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'grant'); + return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'Grant'); } /** @@ -77,7 +74,7 @@ function _civicrm_api3_grant_create_spec(&$params) { * @access public */ function civicrm_api3_grant_get($params) { - return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); + return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, TRUE, 'Grant'); } /** diff --git a/api/v3/Membership.php b/api/v3/Membership.php index c9cca2efb0..29b4810f85 100644 --- a/api/v3/Membership.php +++ b/api/v3/Membership.php @@ -200,7 +200,7 @@ function civicrm_api3_membership_get($params) { if ($options['is_count']) { return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); } - $membershipValues = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE); + $membershipValues = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE, 'Membership'); $return = $options['return']; if(empty($membershipValues) || diff --git a/api/v3/utils.php b/api/v3/utils.php index 31c5d626da..fdebc49a95 100644 --- a/api/v3/utils.php +++ b/api/v3/utils.php @@ -711,7 +711,7 @@ function _civicrm_api3_get_options_from_params(&$params, $queryObject = FALSE, $ 'sort' => CRM_Utils_Rule::string($sort) ? $sort : NULL, 'limit' => CRM_Utils_Rule::integer($limit) ? $limit : NULL, 'is_count' => $is_count, - 'return' => !empty($returnProperties) ? $returnProperties : NULL, + 'return' => !empty($returnProperties) ? $returnProperties : array(), ); if ($options['sort'] && stristr($options['sort'], 'SELECT')) { @@ -993,7 +993,7 @@ function _civicrm_api3_basic_get($bao_name, &$params, $returnAsSuccess = TRUE, $ return civicrm_api3_create_success(_civicrm_api3_dao_to_array($bao, $params, FALSE, $entity), $params, $entity, 'get'); } else { - return _civicrm_api3_dao_to_array($bao, $params, FALSE, $entity); + return _civicrm_api3_dao_to_array($bao, $params, FALSE, $entity, 'get'); } } @@ -1125,7 +1125,7 @@ function _civicrm_api3_basic_delete($bao_name, &$params) { * @param string $subName - Subtype of entity */ function _civicrm_api3_custom_data_get(&$returnArray, $entity, $entity_id, $groupID = NULL, $subType = NULL, $subName = NULL) { - $groupTree = &CRM_Core_BAO_CustomGroup::getTree($entity, + $groupTree = CRM_Core_BAO_CustomGroup::getTree($entity, CRM_Core_DAO::$_nullObject, $entity_id, $groupID, -- 2.25.1