The webform module has a menu item 'node/%webform_menu/submissions', but I would prefer something like 'node/%webform_menu/submissions/%uid'. This way an administrator can easily see what submissions another user has made.
It seems that the webform_results_submissions function already has a parameter $user_filter which is currently not used.

A solution could be the following for menu item and function:

  $items['node/%webform_menu/submissions/%user_uid_optional'] = array(
    'title' => 'Submissions',
    'page callback' => 'webform_results_submissions',
    'page arguments' => array(1, TRUE, '50', 3),
    'access callback' => 'webform_submission_access',
    'access arguments' => array(1, NULL, 'list'),
    'file' => 'includes/webform.report.inc',
    'type' => MENU_CALLBACK,
  );


function webform_results_submissions($node, $user_filter, $pager_count, $account = NULL) {
  global $user;

  if (empty($account)) {
    $account = $user;
  }
  if (isset($_GET['results']) && is_numeric($_GET['results'])) {
    $pager_count = $_GET['results'];
  }

  $header = theme('webform_results_submissions_header', $node);
  if ($user_filter) {
    if ($account->uid) {
      drupal_set_title(t('Submissions for %user', array('%user' => $account->name)));
    }
    else {
      drupal_set_title(t('Your submissions'));
      webform_disable_page_cache();
    }
    webform_set_breadcrumb($node);
    $submissions = webform_get_submissions(array('nid' => $node->nid, 'uid' => $account->uid), $header, $pager_count);
    $count = webform_get_submission_count($node->nid, $account->uid);
  }
  else {
    $submissions = webform_get_submissions($node->nid, $header, $pager_count);
    $count = webform_get_submission_count($node->nid);
  }
  return theme('webform_results_submissions', $node, $submissions, $count, $pager_count);
}

Note that I didn't check the access parameters of the menu item. If you like, I can provide a patch.

Regards,
John

Comments

quicksketch’s picture

Category: feature » support

You should just build this out as a View.

quicksketch’s picture

Status: Active » Closed (fixed)