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
Comment #1
quicksketchYou should just build this out as a View.
Comment #2
quicksketch