function user_relationships_ui_type_edit_submit in User Relationships 6
Process the relationship edit page form submission.
File
- user_relationships_ui/
user_relationships_ui.admin_actions.inc, line 57 - User Relationships admin submit handlers
Code
function user_relationships_ui_type_edit_submit($form, &$form_state) {
$relationship_type = (object) $form_state['values'];
if ($form_state['values']['action'] == 'add') {
//#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 (!$relationship_type->is_oneway) {
$relationship_type->is_reciprocal = 0;
}
drupal_write_record('user_relationship_types', $relationship_type);
// Update strings for translation
_user_relationships_ui_update_translations($relationship_type);
$form_state['values']['rtid'] = $relationship_type->rtid;
_user_relationships_invoke('insert', $relationship_type, TRUE);
drupal_set_message(t('Relationship %name has been added.', array(
'%name' => $relationship_type->name,
)));
watchdog('u_relationship', 'User Relationships form: relationship %name added.', array(
'%name' => $relationship_type->name,
), WATCHDOG_NOTICE, l(t('view'), 'admin/user/user_relationship/types/' . $relationship_type->rtid . '/edit'));
}
else {
//#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 (!$relationship_type->is_oneway) {
$relationship_type->is_reciprocal = 0;
}
drupal_write_record('user_relationship_types', $relationship_type, 'rtid');
// Update strings for translation
_user_relationships_ui_update_translations($relationship_type);
_user_relationships_invoke('update', $relationship_type, TRUE);
drupal_set_message(t('Relationship %name has been updated.', array(
'%name' => $relationship_type->name,
)));
watchdog('u_relationship', 'User Relationships form: relationship %name updated.', array(
'%name' => $relationship_type->name,
), WATCHDOG_NOTICE, l(t('view'), 'admin/user/relationships/' . $relationship_type->rtid . '/edit'));
}
//save role permissions for this rtype
db_query('DELETE FROM {user_relationship_type_roles} WHERE rtid = %d', $relationship_type->rtid);
if ($form_state['values']['roles']) {
$role_record = new StdClass();
$role_record->rtid = $relationship_type->rtid;
foreach ($form_state['values']['roles'] as $rid => $selected) {
if ($rid == $selected) {
$role_record->rid = $selected;
drupal_write_record('user_relationship_type_roles', $role_record);
}
}
}
//save role receive permissions for this rtype
db_query('DELETE FROM {user_relationship_type_roles_receive} WHERE rtid = %d', $relationship_type->rtid);
if ($form_state['values']['roles_receive']) {
$role_receive_record = new StdClass();
$role_receive_record->rtid = $relationship_type->rtid;
foreach ($form_state['values']['roles_receive'] as $rid => $selected) {
if ($rid == $selected) {
$role_receive_record->rid = $selected;
drupal_write_record('user_relationship_type_roles_receive', $role_receive_record);
}
}
}
user_relationships_types_load(TRUE);
menu_rebuild();
$form_state['redirect'] = 'admin/user/relationships';
}