Example #1
0
/**
 * 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.');
}
Example #2
0
 /**
  * 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();
 }
Example #3
0
 /**
  * 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();
 }