? views_savedsearches_and_date.patchj
Index: views_savedsearches.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views_savedsearches/views_savedsearches.module,v
retrieving revision 1.4
diff -u -p -r1.4 views_savedsearches.module
--- views_savedsearches.module	27 Jan 2009 08:57:08 -0000	1.4
+++ views_savedsearches.module	30 May 2009 14:22:05 -0000
@@ -465,7 +465,13 @@ function _views_savedsearches_filters_to
           if (strlen($query) > 0) {
             $query .= '&';
           }
-          $query .= drupal_urlencode($filter_name) . drupal_urlencode('[]') .'='. drupal_urlencode($value);
+          if (!is_array($value)) {
+            $query .= drupal_urlencode($filter_name) . drupal_urlencode('[]') .'='. drupal_urlencode($value);
+          }
+          else {
+            // Date-style parameter, like date_filter[value][date]=2009-05-11 in the URL encoded
+            $query .= _views_savedsearches_format_array($filter_name, $filter_value);
+          }
         }
       }
       else {
@@ -643,3 +649,25 @@ function theme_views_savedsearches_list(
 
   return $output;
 }
+
+/**
+ * Generates variable[arr1][arr2]=value nested variable for Date
+ */
+function _views_savedsearches_format_array($name, $array, $rec_count = 0) {
+  $output = '';
+  $open = drupal_urlencode('[');
+  $close = drupal_urlencode(']');
+  if ($rec_count == 0) {
+    $output = $name;
+  }
+  foreach ($array as $k => $v) {
+    $output .= $open. $k . $close;
+    if (is_array($v)) {
+      $output .= _views_savedsearches_format_array($name, $v, $rec_count + 1);
+    }
+    else {
+      $output .= '='. $v;
+    }
+  }
+  return $output;
+}
