You are here

function user_relationships_ui_request in User Relationships 7

Same name and namespace in other branches
  1. 5.3 user_relationships_ui/user_relationships_ui.forms.inc \user_relationships_ui_request()
  2. 6 user_relationships_ui/user_relationships_ui.forms.inc \user_relationships_ui_request()

Request a new relationship with another user

2 string references to 'user_relationships_ui_request'
user_relationships_ui_request_ajax in user_relationships_ui/user_relationships_ui.forms.inc
Ajax handler function that is utilized to display the form in a popup rather than having the full page reload for the users
user_relationship_elaborations_form_alter in user_relationship_elaborations/user_relationship_elaborations.module
hook_form_alter() to catch the approval form

File

user_relationships_ui/user_relationships_ui.forms.inc, line 82

Code

function user_relationships_ui_request($form, &$form_state, $requestee) {
  global $user;
  $requester = $user;
  drupal_set_title(t('Request relationship'));
  $script = '<script type="text/javascript">setTimeout(\'Drupal.user_relationships_ui.hidePopup()\', 10000);</script>';
  if (empty($requestee->name)) {
    $form['error'] = array(
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#markup' => user_relationships_get_message('non_existent_user') . $script,
    );
    return $form;
  }
  elseif ($user->uid == $requestee->uid) {
    $form['error'] = array(
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#markup' => user_relationships_get_message('self_request') . $script,
    );
    return $form;
  }
  elseif (!variable_get('user_relationships_allow_multiple', TRUE) && user_relationships_load(array(
    'between' => array(
      $requester->uid,
      $requestee->uid,
    ),
  ), array(
    'count' => TRUE,
  ))) {
    $form['error'] = array(
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#markup' => user_relationships_get_message('too_many_relationships') . $script,
    );
    return $form;
  }

  // This is the default which means we will display the form
  $form = user_relationships_ui_request_form($requester, $requestee, $form_state);
  if (!isset($form['rtid'])) {
    $data['error'] = array(
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#markup' => user_relationships_get_message('too_many_relationships') . $script,
    );
    return $data;
  }
  else {
    if ($form['rtid']['#default_value']) {
      $relationship = user_relationships_type_load($form['rtid']['#default_value']);
    }

    // Respect destination param if given.
    if (isset($_GET['destination'])) {
      $dest = $_GET['destination'];
    }
    else {
      $dest = "user/{$requestee->uid}";
    }
    $form = confirm_form($form, t('Request relationship'), $dest, isset($relationship) ? $relationship->requires_approval ? t('Are you sure you want to send a new @rel_name request to !name?', array(
      '!name' => theme('username', array(
        'account' => $requestee,
      )),
    ) + user_relationships_type_translations($relationship)) : t("Are you sure you want to become !name's @rel_name?", array(
      '!name' => theme('username', array(
        'account' => $requestee,
      )),
    ) + user_relationships_type_translations($relationship)) : '', t('Send'), t('Cancel'), 'user_relationships_request_confirm');
    return $form;
  }
}