function webform_download_sids in Webform 6.3
Same name and namespace in other branches
- 7.4 includes/webform.report.inc \webform_download_sids()
- 7.3 includes/webform.report.inc \webform_download_sids()
Given a set of range options, retrieve a set of SIDs for a webform node.
2 calls to webform_download_sids()
- webform_results_download_form_submit in includes/
webform.report.inc - Validate handler for webform_results_download_form().
- webform_results_download_range_after_build in includes/
webform.report.inc - FormAPI after build function for the download range fieldset.
File
- includes/
webform.report.inc, line 920 - This file includes helper functions for creating reports for webform.module
Code
function webform_download_sids($nid, $range_options, $uid = NULL) {
$query = 'SELECT sid FROM {webform_submissions} WHERE nid = %d';
$args = array(
$nid,
);
switch ($range_options['range_type']) {
case 'all':
// All Submissions.
$query .= ' ORDER BY sid ASC';
break;
case 'new':
// All Since Last Download.
$download_info = webform_download_last_download_info($nid, $uid);
$last_sid = $download_info ? $download_info['sid'] : 0;
$query .= ' AND sid > %d ORDER BY sid ASC';
$args[] = $last_sid;
break;
case 'latest':
// Last x Submissions.
$query .= ' ORDER BY sid DESC LIMIT 0, %d';
$args[] = $range_options['latest'];
break;
case 'range':
// Submissions Start-End.
$query .= ' AND sid >= %d';
$args[] = $range_options['start'];
if ($range_options['end']) {
$query .= ' AND sid <= %d';
$args[] = $range_options['end'];
}
$query .= ' ORDER BY sid ASC';
break;
}
$result = db_query($query, $args);
$sids = array();
while ($row = db_fetch_object($result)) {
$sids[] = $row->sid;
}
// The last x submissions option has SIDs that are in reverse order.
if ($range_options['range_type'] == 'latest') {
$sids = array_reverse($sids);
}
return $sids;
}