X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FProfile.php;h=23682854ed30d0f6eed2892390413fc1d33f0768;hb=3b7bf9514d92a68e9adb10ae1fe33f8d6ca3da7d;hp=034b12b36b8083f50173dbdcc19e474a655dd991;hpb=414b3228db09432f1e389a89f9fb9e3f22d0f2da;p=civicrm-core.git diff --git a/api/v3/Profile.php b/api/v3/Profile.php index 034b12b36b..23682854ed 100644 --- a/api/v3/Profile.php +++ b/api/v3/Profile.php @@ -3,7 +3,7 @@ +--------------------------------------------------------------------+ | CiviCRM version 4.6 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2014 | + | Copyright CiviCRM LLC (c) 2004-2015 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -26,13 +26,11 @@ */ /** - * File for the CiviCRM APIv3 activity profile functions + * This api exposes CiviCRM profiles. * - * @package CiviCRM_APIv3 - * @subpackage API_ActivityProfile - * @copyright CiviCRM LLC (c) 2004-2014 - * @version $Id: Profile.php 30486 2011-05-20 16:12:09Z rajan $ + * Profiles are collections of fields used as forms, listings, search columns, etc. * + * @package CiviCRM_APIv3 */ /** @@ -138,6 +136,8 @@ function civicrm_api3_profile_get($params) { } /** + * Adjust profile get function metadata. + * * @param array $params */ function _civicrm_api3_profile_get_spec(&$params) { @@ -149,6 +149,7 @@ function _civicrm_api3_profile_get_spec(&$params) { /** * Submit a set of fields against a profile. + * * Note choice of submit versus create is discussed CRM-13234 & related to the fact * 'profile' is being treated as a data-entry entity * @@ -173,7 +174,7 @@ function civicrm_api3_profile_submit($params) { $contactParams = $activityParams = $missingParams = array(); - $profileFields = civicrm_api3('profile', 'getfields', array('action' => 'submit', 'profile_id' => $profileID)); + $profileFields = civicrm_api3('Profile', 'getfields', array('action' => 'submit', 'profile_id' => $profileID)); $profileFields = $profileFields['values']; if ($isContactActivityProfile) { civicrm_api3_verify_mandatory($params, NULL, array('activity_id')); @@ -244,54 +245,17 @@ function civicrm_api3_profile_submit($params) { $profileParams['api.activity.create'] = $activityParams; } - $groups = $tags = array(); - if (isset($profileParams['group'])) { - $groups = $profileParams['group']; - unset($profileParams['group']); - } - - if (isset($profileParams['tag'])) { - $tags = $profileParams['tag']; - unset($profileParams['tag']); - } - return civicrm_api3('contact', 'create', $profileParams); - - $ufGroupDetails = array(); - $ufGroupParams = array('id' => $profileID); - CRM_Core_BAO_UFGroup::retrieve($ufGroupParams, $ufGroupDetails); - - if (isset($profileFields['group'])) { - CRM_Contact_BAO_GroupContact::create($groups, - $params['contact_id'], - FALSE, - 'Admin' - ); - } - - if (isset($profileFields['tag'])) { - CRM_Core_BAO_EntityTag::create($tags, - 'civicrm_contact', - $params['contact_id'] - ); - } - - if (!empty($ufGroupDetails['add_to_group_id'])) { - $contactIds = array($params['contact_id']); - CRM_Contact_BAO_GroupContact::addContactsToGroup($contactIds, - $ufGroupDetails['add_to_group_id'] - ); - } - - return $result; - } /** + * Translate field names for BAO. + * * The api standards expect field names to be lower case but the BAO uses mixed case * so we accept 'email-primary' but pass 'email-Primary' to the BAO * we could make the BAO handle email-primary but this would alter the fieldname seen by hooks * & we would need to consider that change + * * @param string $fieldName * API field name. * @@ -302,8 +266,10 @@ function _civicrm_api3_profile_translate_fieldnames_for_bao($fieldName) { $fieldName = str_replace('url', 'URL', $fieldName); return str_replace('primary', 'Primary', $fieldName); } + /** - * metadata for submit action + * Metadata for submit action. + * * @param array $params * @param array $apirequest */ @@ -328,30 +294,31 @@ function _civicrm_api3_profile_submit_spec(&$params, $apirequest) { } /** + * Update Profile field values. + * * @deprecated - calling this function directly is deprecated as 'set' is not a clear action * use submit - * Update Profile field values. * * @param array $params - * Associative array of property name/value. - * pairs to update profile field values + * Array of property name/value. + * pairs to update profile field values * * @return array * Updated Contact/ Activity object|CRM_Error - * - * */ function civicrm_api3_profile_set($params) { return civicrm_api3('profile', 'submit', $params); } /** + * Apply profile. + * * @deprecated - appears to be an internal function - should not be accessible via api * Provide formatted values for profile fields. * * @param array $params - * Associative array of property name/value. - * pairs to profile field values + * Array of property name/value. + * pairs to profile field values * * @throws API_Exception * @return array @@ -360,7 +327,6 @@ function civicrm_api3_profile_set($params) { * @todo add test cases */ function civicrm_api3_profile_apply($params) { - $profileFields = CRM_Core_BAO_UFGroup::getFields($params['profile_id'], FALSE, NULL, @@ -390,6 +356,8 @@ function civicrm_api3_profile_apply($params) { /** + * Get pseudo profile 'billing'. + * * This is a function to help us 'pretend' billing is a profile & treat it like it is one. * It gets standard credit card address fields etc * Note this is 'better' that the inbuilt version as it will pull in fallback values @@ -473,8 +441,9 @@ function _civicrm_api3_profile_getbillingpseudoprofile(&$params) { } /** - * Here we will build up getfields type data for all the fields in the profile. Because the integration with the - * form layer in core is so hard-coded we are not going to attempt to re-use it + * Here we will build up getfields type data for all the fields in the profile. + * + * Because the integration with the form layer in core is so hard-coded we are not going to attempt to re-use it * However, as this function is unit-tested & hence 'locked in' we can aspire to extract sharable * code out of the form-layer over time. *