Index: feedback.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedback/feedback.module,v
retrieving revision 1.68.2.7
diff -u -p -r1.68.2.7 feedback.module
--- feedback.module	19 Oct 2008 20:07:32 -0000	1.68.2.7
+++ feedback.module	3 Dec 2008 23:14:08 -0000
@@ -228,7 +228,7 @@ function feedback_admin_view_form() {
     0 => t('Open feedback messages'),
     1 => t('Processed feedback messages'),
   );
-  $header = array(
+  $form['#feedback_header'] = array(
     array(),
     array('data' => t('Location'), 'field' => 'f.location_masked', 'sort' => 'asc'),
     array('data' => t('Date'), 'field' => 'f.timestamp'),
@@ -243,33 +243,32 @@ function feedback_admin_view_form() {
     $_GET['page'] .= ',0';
   }
 
+  $form['feedback-messages'] = array('#tree' => TRUE);
   foreach (array(0, 1) as $status) {
     $sql = "SELECT f.*, u.name FROM {feedback} f INNER JOIN {users} u ON f.uid = u.uid WHERE f.status = %d";
     $count_query = "SELECT COUNT(fid) FROM {feedback} WHERE status = %d";
-    $tablesort = tablesort_sql($header);
+    $tablesort = tablesort_sql($form['#feedback_header']);
     $result = pager_query($sql . $tablesort, 50, $status, $count_query, $status);
 
-    $form['feedback-messages-'. $status] = array(
+    $form['feedback-messages'][$status] = array(
       '#type' => 'fieldset',
       '#title' => $status_headings[$status],
       '#collapsible' => TRUE,
       '#collapsed' => $status,
       '#attributes' => array('class' => 'feedback-messages'),
-      '#tree' => TRUE,
     );
     while ($entry = db_fetch_object($result)) {
-      $form['feedback-messages-'. $status][$entry->fid] = array(
+      $form['feedback-messages'][$status][$entry->fid] = array(
         '#type' => 'checkbox',
         '#return_value' => 1,
         '#default_value' => FALSE,
       );
-      $form['feedback-messages-'. $status][$entry->fid]['location'] = array('#value' => l(truncate_utf8($entry->location, 32, FALSE, TRUE), $entry->location));
-      $form['feedback-messages-'. $status][$entry->fid]['date'] = array('#value' => format_date($entry->timestamp, 'small'));
-      $form['feedback-messages-'. $status][$entry->fid]['user'] = array('#value' => theme('username', $entry));
-      $form['feedback-messages-'. $status][$entry->fid]['message'] = array('#value' => feedback_format_message($entry));
+      $form['feedback-messages'][$status][$entry->fid]['location'] = array('#value' => l(truncate_utf8($entry->location, 32, FALSE, TRUE), $entry->location));
+      $form['feedback-messages'][$status][$entry->fid]['date'] = array('#value' => format_date($entry->timestamp, 'small'));
+      $form['feedback-messages'][$status][$entry->fid]['user'] = array('#value' => theme('username', $entry));
+      $form['feedback-messages'][$status][$entry->fid]['message'] = array('#value' => feedback_format_message($entry));
     }
   }
-  $form['#feedback_header'] = $header;
   $form['submit'] = array('#type' => 'submit', '#value' => t('Submit'));
   return $form;
 }
@@ -279,9 +278,8 @@ function feedback_admin_view_form() {
  */
 function theme_feedback_admin_view_form(&$form) {
   $output = '';
-  $status = 0;
-  foreach (element_children($form) as $element) {
-    $item = &$form[$element];
+  foreach (element_children($form['feedback-messages']) as $status) {
+    $item = &$form['feedback-messages'][$status];
     if (!isset($item['#type']) || $item['#type'] != 'fieldset') {
       continue;
     }
@@ -310,8 +308,6 @@ function theme_feedback_admin_view_form(
     );
     // Render the fieldset.
     $output .= drupal_render($item);
-
-    $status++;
   }
   // Render internal FAPI and potential extra form elements.
   $output .= drupal_render($form);
@@ -324,18 +320,14 @@ function theme_feedback_admin_view_form(
 function feedback_admin_view_form_submit($form_id, $form_values) {
   $update = array();
   // Determine feedback entries to update.
-  foreach ($form_values as $key => $values) {
-    if (strpos($key, 'feedback-messages') === FALSE) {
-      continue;
-    }
-    $form_values[$key] = array_filter($form_values[$key]);
-    // Lame for now. :(
-    foreach ($form_values[$key] as $fid => $value) {
-      $form_values[$key][$fid] = ($key == 'feedback-messages-0' ? 1 : 0);
+  foreach ($form_values['feedback-messages'] as $status => $entries) {
+    $entries = array_filter($entries);
+    foreach ($entries as $fid => $value) {
+      // Lame for now. :(
+      $update[$fid] = ($status == 0 ? 1 : 0);
     }
-    $update += $form_values[$key];
   }
-  // Update status of entry in database.
+  // Update status of entries in database.
   foreach ($update as $fid => $value) {
     db_query("UPDATE {feedback} SET status = %d WHERE fid = %d", $value, $fid);
   }
