You are here

function user_relationships_ui_request in User Relationships 6

Same name and namespace in other branches
  1. 5.3 user_relationships_ui/user_relationships_ui.forms.inc \user_relationships_ui_request()
  2. 7 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 75

Code

function user_relationships_ui_request(&$form_state, $requestee) {
  global $user;
  $requester = $user;
  $script = '<script type="text/javascript">setTimeout(\'Drupal.user_relationships_ui.hidePopup()\', 10000);</script>';
  if (empty($requestee->name)) {
    $form['error'] = array(
      '#type' => 'markup',
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#value' => user_relationships_ui_get_message('non_existent_user') . $script,
    );
    return $form;
  }
  elseif (!user_access('can have relationships', $requestee)) {
    $form['error'] = array(
      '#type' => 'markup',
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#value' => user_relationships_ui_get_message('not_accepting_requests') . $script,
    );
    return $form;
  }
  elseif ($user->uid == $requestee->uid) {
    $form['error'] = array(
      '#type' => 'markup',
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#value' => user_relationships_ui_get_message('self_request') . $script,
    );
    return $form;
  }
  elseif (!variable_get('user_relationships_allow_multiple', TRUE) && ($relationships_count = user_relationships_load(array(
    'between' => array(
      $requester->uid,
      $requestee->uid,
    ),
  ), array(
    'count' => TRUE,
  )))) {
    $form['error'] = array(
      '#type' => 'markup',
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#value' => user_relationships_ui_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 (!$form['rtid']) {
    $data['error'] = array(
      '#type' => 'markup',
      '#prefix' => '<div>',
      '#suffix' => '</div>',
      '#value' => user_relationships_ui_get_message('too_many_relationships') . $script,
    );
    return $data;
  }
  else {
    if ($form['rtid']['#default_value']) {
      $relationship = user_relationships_type_load($form['rtid']['#default_value']);
    }

    // http://drupal.org/node/489954 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, $relationship ? $relationship->requires_approval ? t('Are you sure you wish to send a new %rel_name request to !name?', array(
      '%name' => $requestee->name,
      '%rel_name' => ur_tt("user_relationships:rtid:{$relationship->rtid}:name", $relationship->name),
      '%rel_plural_name' => ur_tt("user_relationships:rtid:{$relationship->rtid}:plural_name", $relationship->plural_name),
      '!name' => theme('username', $requestee),
    )) : t("Are you sure you want to become %name's %rel_name?", array(
      '%name' => $requestee->name,
      '%rel_name' => ur_tt("user_relationships:rtid:{$relationship->rtid}:name", $relationship->name),
    )) : t('How do you relate to %name?', array(
      '%name' => $requestee->name,
    )), t('Send'), t('Cancel'), 'user_relationships_request_confirm');
    return $form;
  }
}