function privatemsg_list_submit in Privatemsg 7.2
Same name and namespace in other branches
- 6.2 privatemsg.pages.inc \privatemsg_list_submit()
- 6 privatemsg.module \privatemsg_list_submit()
- 7 privatemsg.pages.inc \privatemsg_list_submit()
Process privatemsg_list form submissions.
Execute the chosen action on the selected messages. This function is based on node_admin_nodes_submit().
1 string reference to 'privatemsg_list_submit'
File
- ./privatemsg.pages.inc, line 233 
- User menu callbacks for Privatemsg.
Code
function privatemsg_list_submit($form, &$form_state) {
  // Load all available operation definitions.
  $operations = module_invoke_all('privatemsg_thread_operations', $form['#list_argument']);
  drupal_alter('privatemsg_thread_operations', $operations, $form['#list_argument']);
  // Default "default" operation, which won't do anything.
  $operation = array(
    'callback' => 0,
  );
  // Check if a valid operation has been submitted.
  if (isset($form_state['values']['operation']) && isset($operations[$form_state['values']['operation']])) {
    $operation = $operations[$form_state['values']['operation']];
  }
  if (!empty($form_state['values']['op'])) {
    // Load all keys where the value is the current op.
    $keys = array_keys($form_state['values'], $form_state['values']['op']);
    // Loop over them and detect if a matching button was pressed.
    foreach ($keys as $key) {
      if ($key != 'op' && isset($operations[$key])) {
        $operation = $operations[$key];
      }
    }
  }
  // Only execute something if we have a valid callback and at least one checked thread.
  if (!empty($operation['callback'])) {
    // Hack to fix destination during ajax requests.
    if (isset($form_state['input']['ajax_page_state'])) {
      $destination = 'messages';
      if (!empty($form['#list_argument'])) {
        $destination .= '/' . $form['#list_argument'];
      }
      $_GET['destination'] = $destination;
    }
    privatemsg_operation_execute($operation, $form_state['values']['list'], $form_state['values']['account']);
  }
  $form_state['rebuild'] = TRUE;
  $form_state['input'] = array();
}