Пример #1
0
/**
 * Update an existing membership type
 *
 * This api is used for updating an existing membership type.
 * Required parrmeters : id of a membership type
 * 
 * @param  Array   $params  an associative array of name/value property values of civicrm_membership_type
 * 
 * @return array of updated membership type property values
 * @access public
 */
function &civicrm_membership_type_update(&$params)
{
    if (!is_array($params)) {
        return civicrm_create_error('Params need to be of type array!');
    }
    if (empty($params)) {
        return civicrm_create_error('No input parameters present');
    }
    if (!isset($params['id'])) {
        return civicrm_create_error('Required parameter missing');
    }
    require_once 'CRM/Member/BAO/MembershipType.php';
    $membershipTypeBAO = new CRM_Member_BAO_MembershipType();
    $membershipTypeBAO->id = $params['id'];
    if ($membershipTypeBAO->find(true)) {
        $fields = $membershipTypeBAO->fields();
        foreach ($fields as $name => $field) {
            if (array_key_exists($field['name'], $params)) {
                $membershipTypeBAO->{$field}['name'] = $params[$field['name']];
            }
        }
        $membershipTypeBAO->save();
    }
    $membershipType = array();
    _civicrm_object_to_array($membershipTypeBAO, $membershipType);
    $membershipTypeBAO->free();
    return $membershipType;
}