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); }