You are here

function webform_download_sids in Webform 6.3

Same name and namespace in other branches
  1. 7.4 includes/webform.report.inc \webform_download_sids()
  2. 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;
}