function user_relationships_type_save in User Relationships 7
Same name and namespace in other branches
- 5.3 user_relationships_api/user_relationships_api.api.inc \user_relationships_type_save()
- 6 user_relationships_api/user_relationships_api.api.inc \user_relationships_type_save()
Create or Update a User Relationship Type
Parameters
$rtype: A User Relationship type object
7 calls to user_relationships_type_save()
- UserRelationshipsBaseTestCase::createDefaultRelationshipTypes in ./
user_relationships.test - Create a number of relationship types.
- UserRelationshipsPrivatemsgRecipientTestCase::testManyRelations in user_relationship_privatemsg/
user_relationship_privatemsg.test - Test a relationship with bath api processing.
- UserRelationshipsPrivatemsgRecipientTestCase::testSendToRelationship in user_relationship_privatemsg/
user_relationship_privatemsg.test - Tests sending a message to related users.
- UserRelationshipsTestCase::testTypeAPI in ./
user_relationships.test - Test API functions for relationship types.
- UserRelationshipUserSettings::setUp in user_relationships_ui/
user_relationships_ui.test - Set up the test case.
File
- ./
user_relationships.module, line 481 - User Relationships API. Module shell.
Code
function user_relationships_type_save($rtype) {
// #348025 when editing a type, make sure that two-way relationships are not
// left as reciprocal, just in case, as the UI allows it.
if (empty($rtype->is_oneway)) {
$rtype->is_reciprocal = 0;
}
// Ensure "expires_val" is numeric and not negative.
if (!isset($rtype->expires_val) || !is_numeric($rtype->expires_val) || $rtype->expires_val < 0) {
$rtype->expires_val = 0;
}
module_invoke_all('user_relationships_type_presave', $rtype);
$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.
$found_rt = user_relationships_type_load(array(
'name' => $rtype->name,
));
if ($found_rt && ($op == 'update' && $found_rt->rtid != $rtype->rtid || $op == 'insert')) {
return FALSE;
}
// ensure "expires_val" is numeric and not negative
if (!isset($rtype->expires_val) || !$rtype->expires_val >= 0) {
$rtype->expires_val = 0;
}
drupal_write_record('user_relationship_types', $rtype, $op == 'update' ? 'rtid' : array());
module_invoke_all('user_relationships_type_' . $op, $rtype);
if (module_exists('i18n_string')) {
i18n_string_object_update('user_relationships_type', $rtype);
}
drupal_static_reset('user_relationships_types_load');
menu_rebuild();
}