/** * Create or update a loc_block * * @param array $params Associative array of property * name/value pairs to insert in new 'loc_block' * @example LocBlockCreate.php Std Create example * * @return array api result array * {@getfields loc_block_create} * @access public */ function civicrm_api3_loc_block_create($params) { $entities = array(); // Call the appropriate api to create entities if any are passed in the params // This is basically chaining but in reverse - we create the sub-entities first // This exists because chainging does not work in reverse, or with keys like 'email_2' $items = array('address', 'email', 'phone', 'im'); foreach ($items as $item) { foreach (array('', '_2') as $suf) { $key = $item . $suf; if (!empty($params[$key]) && is_array($params[$key])) { $info = $params[$key]; // If all we get is an id don't bother calling the api if (count($info) == 1 && !empty($info['id'])) { $params[$key . '_id'] = $info['id']; } else { $info['version'] = $params['version']; $info['contact_id'] = CRM_Utils_Array::value('contact_id', $info, 'null'); $result = civicrm_api($item, 'create', $info); if (!empty($result['is_error'])) { return $result; } $entities[$key] = $result['values'][$result['id']]; $params[$key . '_id'] = $result['id']; } } } } $dao = new CRM_Core_DAO_LocBlock(); $dao->copyValues($params); $dao->save(); if (!empty($dao->id)) { $values = array($dao->id => $entities); _civicrm_api3_object_to_array($dao, $values[$dao->id]); return civicrm_api3_create_success($values, $params, 'loc_block', 'create', $dao); } return civicrm_api3_create_error('Unable to create LocBlock. Please check your params.'); }
/** * takes an associative array and adds location block * * @param array $params (reference ) an assoc array of name/value pairs * * @return object CRM_Core_BAO_locBlock object on success, null otherwise * @access public * @static */ static function addLocBlock(&$params) { $locBlock = new CRM_Core_DAO_LocBlock(); $locBlock->copyValues($params); return $locBlock->save(); }
/** * takes an associative array and adds location block * * @param array $params (reference ) an assoc array of name/value pairs * * @return object CRM_Core_BAO_locBlock object on success, null otherwise * @access public * @static */ static function addLocBlock(&$params) { require_once 'CRM/Core/DAO/LocBlock.php'; $locBlock = new CRM_Core_DAO_LocBlock(); $locBlock->copyValues($params); return $locBlock->save(); }