+--------------------------------------------------------------------+
| CiviCRM version 4.6 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
+ | Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
*/
/**
- * 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
*/
/**
}
/**
+ * Adjust profile get function metadata.
+ *
* @param array $params
*/
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
*
$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'));
$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.
*
$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
*/
}
/**
+ * 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
* @todo add test cases
*/
function civicrm_api3_profile_apply($params) {
-
$profileFields = CRM_Core_BAO_UFGroup::getFields($params['profile_id'],
FALSE,
NULL,
/**
+ * 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
}
/**
- * 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.
*