示例#1
0
 function make_search($search_realm, $PMBUserId, $OPACEmprId)
 {
     global $dbh;
     global $pmb_external_service_session_duration;
     $pmb_external_service_session_duration += 0;
     $PMBUserId += 0;
     $OPACEmprId += 0;
     $search_cache = new external_services_searchcache($search_realm, '', $PMBUserId, $OPACEmprId);
     $search_cache->update();
     $search_unique_name = $search_cache->search_unique_id;
     $result_count = $search_cache->get_result_count();
     $result_typdoc_list = $search_cache->get_typdoc_list();
     if (!$search_unique_name) {
         return array("searchId" => 0, "nbResults" => 0, "nPerPages" => 20);
     }
     //Deletons les sessions trop vieilles
     $sql = "DELETE FROM es_searchsessions WHERE es_searchsession_lastseendate + INTERVAL " . $pmb_external_service_session_duration . " SECOND <= NOW()";
     mysql_query($sql, $dbh);
     //Générons un numéro de session
     $session_id = md5(microtime());
     $sql = "INSERT INTO es_searchsessions (es_searchsession_id, es_searchsession_searchnum, es_searchsession_searchrealm, es_searchsession_pmbuserid, es_searchsession_opacemprid, es_searchsession_lastseendate) VALUES ('" . $session_id . "', '" . $search_unique_name . "', '" . addslashes($search_realm) . "', " . $PMBUserId . ", " . $OPACEmprId . ", NOW())";
     mysql_query($sql, $dbh);
     return array("searchId" => $session_id, "nbResults" => $result_count, "typdocs" => $result_typdoc_list);
 }
 function update_cache()
 {
     global $dbh;
     if (!isset($this->config["search"])) {
         $this->config["search"] = "";
     }
     //On ne va pas chercher à effectuer une recherche vide
     if (!$this->config["search"]) {
         return;
     }
     //on marque le set comme en cours de rafraichissement
     $query = "update connectors_out_sets set being_refreshed = 1 where connector_out_set_id = " . $this->id;
     pmb_mysql_query($query, $dbh);
     //Utilisons la classe de caches de recherche pour effectuer la recherche.
     $cache_duration = $this->cache->cache_duration_in_seconds();
     $es_search_cache = new external_services_searchcache('search_fields', '', -1, -1, $cache_duration, 'conset', true);
     $es_search_cache->unserialize_search($this->config["search"]);
     $es_search_cache->update();
     $values = $es_search_cache->get_results(0, $es_search_cache->get_result_count(false), '', false);
     $this->cache->values = $values;
     $this->cache->commit_values_into_db();
     //on marque le set comme en cours de rafraichissement
     $query = "update connectors_out_sets set being_refreshed = 0 where connector_out_set_id = " . $this->id;
     pmb_mysql_query($query, $dbh);
 }