? .svn
? SolrPhpClient
? contrib/.svn
? contrib/apachesolr_image/.svn
? contrib/apachesolr_nodeaccess/.svn
? contrib/apachesolr_nodeaccess/tests/.svn
? contrib/apachesolr_og/.svn
? tests/.svn
Index: Solr_Base_Query.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/Solr_Base_Query.php,v
retrieving revision 1.1.4.36
diff -u -p -r1.1.4.36 Solr_Base_Query.php
--- Solr_Base_Query.php	18 Jun 2009 20:45:36 -0000	1.1.4.36
+++ Solr_Base_Query.php	29 Jun 2009 10:13:35 -0000
@@ -261,15 +261,14 @@ class Solr_Base_Query implements Drupal_
   /**
    * Return filters and sort in a form suitable for a query param to url().
    */
-  public function get_url_querystring() {
-    $querystring = '';
+  public function get_url_querystring($query = array(), $excludes = array()) {
     if ($fq = $this->rebuild_fq(TRUE)) {
-      $querystring = 'filters='. rawurlencode(implode(' ', $fq));
+      $query['filters'] = implode(' ', $fq);
     }
     if ($this->solrsort) {
-      $querystring .= ($querystring ? '&' : '') .'solrsort='. rawurlencode($this->solrsort);
+      $query['solrsort'] = $this->solrsort;
     }
-    return $querystring;
+    return Solr_Base_Query::query_string_encode($query, $excludes);
   }
 
   public function get_fq() {
@@ -283,7 +282,7 @@ class Solr_Base_Query implements Drupal_
   public function get_query_basic() {
     return $this->rebuild_query();
   }
-  
+
   /**
    * Return the search path.
    *
@@ -402,4 +401,15 @@ class Solr_Base_Query implements Drupal_
     }
     return $query;
   }
+
+  public static function query_string_encode($query, $exclude = array()) {
+    $params = array();
+    foreach ($query as $key => $value) {
+      if (in_array($key, $exclude)) {
+        continue;
+      }
+      $params[] = $key . '=' . rawurlencode($value);
+    }
+    return implode('&', $params);
+  }
 }
