'admin/user/relationships/direct', 'title' => t('Direct relationship'), 'callback' => 'drupal_get_form', 'callback arguments' => array('user_relationship_direct_form'), 'access' => user_access('administer user relationships'), 'type' => MENU_LOCAL_TASK, 'weight' => 4, ); } return $items; } function user_relationship_direct_form() { $relationships = user_relationships_types_load(); $form['user_relationship_direct'] = array( '#title' => t('Use direct relationship urls instead of the standard select form'), '#type' => 'checkbox', '#default_value' => (bool)variable_get('user_relationship_direct', FALSE), ); $form['direct'] = array( '#type' => 'fieldset', '#title' => '', '#description' => t('Fill in titles for each direct relationship confirmation page.
You may the following tokens: !tokens', array('!tokens' => '!requestee_name')) ); foreach ($relationships as $relationship) { $form['direct']['user_relationship_direct_rtid_'.$relationship->rtid] = array( '#title' => $relationship->name, '#type' => 'textfield', '#default_value' => variable_get('user_relationship_direct_rtid_'.$relationship->rtid, t('Are you sure you want to setup a !type relationship with !requestee_name?', array('!type' => $relationship->name))), '#required' => TRUE, '#description' => t('For development purposes:
use the direct path: %path
or the php function: %function', array('%path' => user_relationship_direct_path('[uid]', $relationship->name), '%function' => "user_relationship_direct_path('[uid]', '$relationship->name');")), ); } return system_settings_form($form); } function user_relationship_direct_path($uid, $relation) { $relationships = user_relationships_types_load(); foreach ($relationships as $relationship) { if ($relationship->name == $relation) { return 'relationship/request/' . $uid . '/' . $relationship->rtid; } } } function user_relationship_direct_form_alter($form_id, &$form) { if ($form_id == 'user_relationships_request' && variable_get('user_relationship_direct', FALSE)) { $rtid = arg(3); if (array_key_exists($rtid, $form['rtid']['#options'])) { $form['rtid']['#type'] = 'hidden'; $form['rtid']['#default_value'] = $rtid; $form['actions']['submit']['#value'] = t('Yes'); $tokens = array('!requestee_name' => $form['requestee']['#value']->name); $title = variable_get('user_relationship_direct_rtid_'.$rtid, t('Are you sure you want to setup a !type relationship with !requestee_name?', array('!type' => $form['rtid']['#options'][$rtid]))); drupal_set_title(t($title, $tokens)); } } } /** * Make links to create all outstanding relationships to a user * * @param $account user to create relationships to * @return array of themed create links */ function user_relationships_direct_create_relationship_links(&$account) { global $user; $result = array(); $all_relationships = user_relationships_types_load(); //load relationships to this user $existing = user_relationships_load(array('requester_id' => $user->uid, 'requestee_id' => $account->uid)); //re-key on rtid $existing_relationships = array(); foreach ($existing as $rel) { $existing_relationships[$rel->rtid] = $rel; } foreach ($all_relationships as $rtid => $relationship) { if (isset($existing_relationships[$rtid])) { continue; } $result[] = theme('user_relationships_request_relationship_link', $account, $relationship); } return $result; }