Index: webform_report.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/webform_report/Attic/webform_report.inc,v retrieving revision 1.1.2.19 diff -u -r1.1.2.19 webform_report.inc --- webform_report.inc 28 Oct 2008 13:26:51 -0000 1.1.2.19 +++ webform_report.inc 10 Feb 2010 02:24:57 -0000 @@ -8,7 +8,7 @@ */ function _webform_report_get_webforms() { $webforms = array(); - $result = db_query("SELECT nid, title FROM {node} WHERE type = 'webform'"); + $result = db_query(db_rewrite_sql("SELECT nid, title FROM {node} WHERE type = 'webform'")); while ($row = db_fetch_object($result)) { $webforms[$row->nid] = t($row->title); @@ -24,7 +24,7 @@ */ function _webform_report_get_components($nid) { $components = array(); - $result = db_query("SELECT c.cid, c.name FROM {webform_component} c WHERE c.type <> 'fieldset' AND c.nid = '$nid' ORDER BY c.weight"); + $result = db_query("SELECT c.cid, c.name FROM {webform_component} c WHERE c.type <> 'fieldset' AND c.nid = %d ORDER BY c.weight", $nid); while ($row = db_fetch_object($result)) { $component_name = substr($row->name, 0, 65); @@ -54,9 +54,8 @@ LEFT JOIN {users} u ON s.uid = u.uid WHERE d.nid = c.nid AND c.nid = s.nid - AND s.nid = '" . $node->wnid . "' - ORDER BY d.sid, c.cid, d.no DESC, c.name, d.data - "); + AND s.nid = %d + ORDER BY d.sid, c.cid, d.no DESC, c.name, d.data", $node->wnid); } /** @@ -81,7 +80,7 @@ $fields[-5] = array('data' => t('Edit'), 'field' => -5, 'sort' => $_GET['sort']); while ($row = db_fetch_object($data)) { if (!isset($fields[$row->cid])) { - $fields[$row->cid] = array('data' => $row->name, 'field' => $row->cid, 'sort' => $_GET['sort']); + $fields[$row->cid] = array('data' => check_plain($row->name), 'field' => $row->cid, 'sort' => $_GET['sort']); } // Begin data. // The value '0' means that a group of checkboxes has no selection. @@ -98,9 +97,9 @@ $values[$row->sid][-2] = array('data' => date('Y-m-d', $row->submitted), 'field' => -2); $values[$row->sid][-3] = array('data' => date('H:s', $row->submitted), 'field' => -3); $values[$row->sid][-4] = array('data' => $row->remote_addr, 'field' => -4); - $values[$row->sid][-5] = array('data' => '' . t('edit') . '', 'field' => -5); + $values[$row->sid][-5] = array('data' => l('edit', 'node/'. $row->nid . '/submission/' . $row->sid . '/edit'), 'field' => -5); // The attribute 'field' is used to preserve the cid, as array_multisort re-indexes the array. - $values[$row->sid][$row->cid] = array('data' => $row->data, 'field' => $row->cid); + $values[$row->sid][$row->cid] = array('data' => filter_xss($row->data), 'field' => $row->cid); } else { // This will prevent empty table cells from being omitted by filling them with blanks. @@ -212,7 +211,7 @@ array_multisort($column[$node->sort_col], (int)$node->sort, $values); // Keep only fields requested in report criteria. - _webform_report_prepare_report_data(&$fields, &$values, $node); + _webform_report_prepare_report_data($fields, $values, $node); // Filter the table values. if ($node->filter_type != 0) { @@ -222,7 +221,7 @@ $values = _webform_report_add_data_links($fields, $values); // Display number of rows after description. - $output .= $node->description . " (" . count($values) . " " . t('results') . ")
"; + $output .= filter_xss_admin($node->description) . " (" . count($values) . " " . t('results') . ")"; $output .= _webform_report_pager($fields, $values, $node); } else { @@ -279,15 +278,15 @@ $data = &$values[$key2][$key1]['data']; if ($key1 == -1) { - $data = '' . $data . ''; + $data = l($data, 'user/' . _webform_report_get_uid_for_user($data)); } else { if (valid_email_address($data)) { - $data = '' . $data . ''; + $data = l($data, 'mailto:' . $data); } else { if (valid_url($data, TRUE)) { - $data = '' . $data . ''; + $data = l($data, $data); } } } @@ -356,7 +355,7 @@ * @return a uid for the specified user */ function _webform_report_get_uid_for_user($name) { - $result = db_query("SELECT uid FROM {users} WHERE name = '" . $name . "'"); + $result = db_query("SELECT uid FROM {users} WHERE name = '%s'", $name); $user = db_fetch_object($result); return $user->uid; } @@ -371,7 +370,7 @@ if (user_access('access webform reports')) { $header = array(t('View'), t('Edit'), t('Delete')); - $result = db_query("SELECT nid, title FROM {node} WHERE type='webform_report'"); + $result = db_query(db_rewrite_sql("SELECT nid, title FROM {node} WHERE type='webform_report'")); while ($node = db_fetch_object($result)) { $rows[] = array(l($node->title,'node/' . $node->nid), @@ -381,7 +380,7 @@ } $output = theme_table($header, $rows, array('class' => 'webform')); - drupal_set_title($node->title); + drupal_set_title(check_plain($node->title)); } return $output; } @@ -404,45 +403,31 @@ // Break the array into chunks for pagination. $pages = array_chunk($values, $results_per_page, TRUE); - if (!$_GET['page']) { - $_GET['page'] = '1'; - } - $output = theme_table($fields, $pages[($_GET['page'] - 1)], array('class' => 'webform_report')); - $output .= '