'2.0.0', 'request' => 'getDataAvailability', 'service' => 'Sandre:Monitoring', 'domain' => '4', //'outputSchema' => 'http://xml.sandre.eaufrance.fr/wsdl/Monitoring/2.1/Monitoring.wsdl', //'outputSchema' => 'http://xml.sandre.eaufrance.fr/wsdl/Monitoring/2.1', 'outputSchema' => 'http://xml.sandre.eaufrance.fr/scenario/qesout/2/sandre_sc_qesout.xsd', 'outputFormat' => 'text/xml', 'sites' => ''.$code_bss.'' ); return ADES_monitoring_send_REQUEST($params); } //Methode getData du service Sandre:Monitoring d'ADES function ades_monitoring_GetData($code_bss, $cd_par, $dt_debut = null, $dt_fin = null) { $params = array( 'version' => '2.0.0', 'request' => 'getData', 'service' => 'Sandre:Monitoring', 'domain' => '4', 'outputSchema' => 'http://xml.sandre.eaufrance.fr/scenario/qesout/2/sandre_sc_qesout.xsd', 'outputFormat' => 'text/xml', 'sites' => ''.implode('', (array)$code_bss).'', 'analyticConstraints'=>''.implode('',(array)$cd_par).'', 'temporalConstraints'=>''.$dt_debut.''.$dt_fin.'' ); return ADES_monitoring_send_REQUEST($params); } //Methode getSiteDescription du service Sandre:Monitoring d'ADES function ades_monitoring_getSiteDescription($code_bss) { $params = array( 'version' => '2.0.0', 'request' => 'getSiteDescription', 'service' => 'Sandre:Monitoring', 'domain' => '4', 'outputSchema' => 'http://xml.sandre.eaufrance.fr/scenario/qesout/2/sandre_sc_qesout.xsd', 'outputFormat' => 'text/xml', 'sites' => ''.implode('', (array)$code_bss).'' ); return ADES_monitoring_send_REQUEST($params); } //Fonction d'envoi d'une requête au service monitoring function ades_monitoring_send_REQUEST($params, $timeout=45){ if (in_array('curl', get_loaded_extensions())) { $curl =curl_init(ADES_WS_MONITORING_URL); //curl_setopt($curl, CURLOPT_HTTPHEADER, Array("Content-Type:text/xml")); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $params); // post the xml curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); //tps max d'execution du service curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5); //tps max de connexion au service en seconde $response = curl_exec($curl); curl_close($curl); if($response==''){ drupal_set_message("Le service ADES n'a pas répondu, il est possible que le service soit momentanément inaccessible ou que les critères de votre recherche demande trop de ressources (trop de station, série temporelle trop étendue...)", "warning"); return false; } $xml = simplexml_load_string($response,"SimpleXMLElement"); //dsm($xml); $result = ((string)$xml); $xml = base64_decode($result); $simpleXML = simplexml_load_string($xml); } else{ $url = ADES_WS_MONITORING_URL . http_build_query($params); $url = urldecode($url); //dsm($url); $xml = simplexml_load_file($url,"SimpleXMLElement", LIBXML_PARSEHUGE); $result = ((string)$xml); $xml = base64_decode($result); $simpleXML = simplexml_load_string($xml); } $data = array( 'xml' => $xml, 'simpleXML' => $simpleXML ); return $data; }