You are here

function user_relationships_type_save in User Relationships 6

Same name and namespace in other branches
  1. 5.3 user_relationships_api/user_relationships_api.api.inc \user_relationships_type_save()
  2. 7 user_relationships.module \user_relationships_type_save()

Create or Update a User Relationship Type

Parameters

$rtype: A User Relationship type object

3 calls to user_relationships_type_save()
UserRelationshipsApiSocnetTestCase::setUp in user_relationships_api/tests/user_relationships_api.socnet.test
Enable modules.
UserRelationshipsApiTestCase::setUp in user_relationships_api/tests/user_relationships_api.api.test
Enable modules.
UserRelationshipsNodeAccessTestCase::setUp in user_relationship_node_access/tests/user_relationship_node_access.test
Enable modules.

File

user_relationships_api/user_relationships_api.api.inc, line 108
User Relationships API. Data abstraction layer @author Jeff Smick (creator) @author Alex Karshakevich (maintainer) http://drupal.org/user/183217

Code

function user_relationships_type_save(&$rtype) {
  _user_relationships_invoke('presave', $rtype, TRUE);
  $op = isset($rtype->rtid) && $rtype->rtid ? 'update' : 'insert';

  // find a relationship type with the name we're trying to save
  // if it's an update action check to see that the rtypes match
  // otherwise it's just invalid
  if (($found_rt = user_relationships_type_load(array(
    'name' => $rtype->name,
  ))) && ($op == 'update' ? $found_rt->rtid != $rtype->rtid : TRUE)) {
    return FALSE;
  }

  // ensure "expires_val" is numeric and not negative
  if (!is_numeric($rtype->expires_val) || $rtype->expires_val < 0) {
    $rtype->expires_val = 0;
  }
  drupal_write_record('user_relationship_types', $rtype, $op == 'update' ? 'rtid' : NULL);
  _user_relationships_invoke($op, $rtype, TRUE);
}