? SolrPhpClient
Index: apachesolr.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/apachesolr.module,v
retrieving revision 1.1.2.12.2.142
diff -u -F^function -r1.1.2.12.2.142 apachesolr.module
--- apachesolr.module	19 May 2009 19:56:30 -0000	1.1.2.12.2.142
+++ apachesolr.module	26 May 2009 19:59:34 -0000
@@ -983,17 +983,19 @@ function apachesolr_modify_query(&$query
  *
  * @param $searched
  *   A boolean indicating whether a search has been executed.
- *
+ * @param $query_id
+ *   Optional identifier for the query. This is useful only if multiple queries
+ *   per page are required.
  * @return
  *   TRUE if a search has been executed.
  *   FALSE otherwise.
  */
-function apachesolr_has_searched($searched = NULL) {
-  static $_searched = FALSE;
+function apachesolr_has_searched($searched = NULL, $query_id = 'default') {
+  static $_searched = array();
   if (is_bool($searched)) {
-    $_searched = $searched;
+    $_searched[$query_id] = $searched;
   }
-  return $_searched;
+  return isset($_searched[$query_id]) ? $_searched[$query_id] : FALSE;
 }
 
 /**
@@ -1030,16 +1032,25 @@ function apachesolr_get_solr($host = NUL
 }
 
 /**
+ * Static getter/setter for the current query's response.
+ *
  * It is important to hold on to the Solr response object for the duration of the
  * page request so that we can use it for things like building facet blocks.
+ *
+ * @param $response
+ *   If set, replace the current response. 
+ * @param $query_id
+ *   Optional identifier for the query. This is useful only if multiple queries
+ *   (and thus responses) per page are required.
+ * @return
+ *   The response as set the last time this function was called as a setter.
  */
-function apachesolr_static_response_cache($response = NULL) {
-  static $_response;
-
+function apachesolr_static_response_cache($response = NULL, $query_id = 'default') {
+  static $_response = array();
   if (!empty($response)) {
-    $_response = clone $response;
+    $_response[$query_id] = clone $response;
   }
-  return $_response;
+  return isset($_response[$query_id]) ? $_response[$query_id] : NULL;
 }
 
 /**
@@ -1074,15 +1085,22 @@ function apachesolr_drupal_query($keys =
 }
 
 /**
- * Static getter/setter for the current query
+ * Static getter/setter for the current query.
+ *
+ * @param $query
+ *   If set, replace the current query. 
+ * @param $query_id
+ *   Optional identifier for the query. This is useful only if multiple queries
+ *   per page are required.
+ * @return
+ *   The current query as set the last time this function was called as a setter.
  */
-function apachesolr_current_query($query = NULL) {
-  static $saved_query = NULL;
+function apachesolr_current_query($query = NULL, $query_id = 'default') {
+  static $saved = array();
   if (is_object($query)) {
-    $saved_query = clone $query;
+    $saved[$query_id] = clone $query;
   }
-
-  return empty($saved_query) ? $saved_query : clone $saved_query;
+  return empty($saved[$query_id]) ? $saved[$query_id] : clone $saved[$query_id];
 }
 
 /**
