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