| Line 41... |
Line 41... |
| 41 |
|
41 |
|
| 42 |
public function consulter($ressources, $parametres) {
|
42 |
public function consulter($ressources, $parametres) {
|
| 43 |
$this->idObs = $ressources[0];
|
43 |
$this->idObs = $ressources[0];
|
| Line 44... |
Line -... |
| 44 |
$this->protocole = isset($parametres['protocole']) && is_numeric($parametres['protocole']) ? intval($parametres['protocole']) : null;
|
- |
|
| 45 |
|
44 |
$this->protocole = isset($parametres['protocole']) && is_numeric($parametres['protocole']) ? intval($parametres['protocole']) : null;
|
| 46 |
// 1) récupération de l'observation (et de ses images (v_del_image est une vue utilisant des INNER JOIN))
|
45 |
|
| 47 |
$infos = $this->getInfosObservationEtImages();
|
46 |
$infos = $this->getInfosObservationEtImages();
|
| 48 |
if (! $infos) {
|
47 |
if (! $infos) {
|
| 49 |
$message = "Aucune observation ne possède d'identifiant '{$this->idObs}'.";
|
48 |
$message = "Aucune observation ne possède d'identifiant '{$this->idObs}'.";
|
| 50 |
throw new Exception($message, RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
49 |
throw new Exception($message, RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
| 51 |
}
|
- |
|
| - |
|
50 |
}
|
| 52 |
$this->formaterObservation($infos);
|
51 |
$this->formaterObservation($infos);
|
| - |
|
52 |
|
| 53 |
//var_dump($this->observation);
|
53 |
// 3) charge les données de votes et protocoles associés aux images
|
| 54 |
// 3) charge les données de votes et protocoles associés aux images
|
54 |
|
| 55 |
if ($this->observation['images']) {
|
55 |
if ($this->observation['images']) {
|
| 56 |
$idsImages = array_keys($this->observation['images']);
|
56 |
$idsImages = array_keys($this->observation['images']);
|
| 57 |
$votes = $this->sql->getVotesDesImages($idsImages, $this->protocole);
|
57 |
$votes = $this->sql->getVotesDesImages($idsImages, $this->protocole);
|
| Line 74... |
Line 74... |
| 74 |
$resultat->corps = $this->observation;
|
74 |
$resultat->corps = $this->observation;
|
| 75 |
return $resultat;
|
75 |
return $resultat;
|
| 76 |
}
|
76 |
}
|
| Line 77... |
Line 77... |
| 77 |
|
77 |
|
| 78 |
private function getInfosObservationEtImages() {
|
78 |
private function getInfosObservationEtImages() {
|
| 79 |
$obsChamps = $this->sql->getAliasDesChamps($this->mappings['observations'], null, 'dob');
|
79 |
$obsChamps = $this->sql->getAliasDesChamps($this->mappings['observations'], null, 'do');
|
| Line 80... |
Line 80... |
| 80 |
$imgChamps = $this->sql->getAliasDesChamps($this->mappings['images'], null, 'dob');
|
80 |
$imgChamps = $this->sql->getAliasDesChamps($this->mappings['images'], null, 'di');
|
| 81 |
|
81 |
|
| 82 |
// champs de l'annuaire (del_utilisateur): id_utilisateur prenom, nom, courriel
|
82 |
// champs de l'annuaire (del_utilisateur): id_utilisateur prenom, nom, courriel
|
| 83 |
$annuaireChamps = implode(', ', array(
|
83 |
$annuaireChamps = implode(', ', array(
|
| 84 |
"IFNULL(du.prenom, prenom_utilisateur) AS `auteur.prenom`",
|
84 |
"IFNULL(du.prenom, do.prenom_utilisateur) AS `auteur.prenom`",
|
| Line 85... |
Line 85... |
| 85 |
"IFNULL(du.nom, nom_utilisateur) AS `auteur.nom`",
|
85 |
"IFNULL(du.nom, do.nom_utilisateur) AS `auteur.nom`",
|
| 86 |
"IFNULL(du.courriel, courriel_utilisateur) AS `auteur.courriel`"));
|
86 |
"IFNULL(du.courriel, do.courriel_utilisateur) AS `auteur.courriel`"));
|
| 87 |
|
87 |
|
| 88 |
$requete = "SELECT $obsChamps, $imgChamps, $annuaireChamps ".
|
88 |
$requete = "SELECT $obsChamps, $imgChamps, $annuaireChamps ".
|
| 89 |
"FROM v_del_image as dob ".
|
89 |
"FROM del_observation AS do ".
|
| 90 |
"LEFT JOIN del_utilisateur AS du ".
|
90 |
" LEFT JOIN del_image AS di ON (do.id_observation = di.ce_observation) ".
|
| 91 |
" ON CAST(du.id_utilisateur AS CHAR) = CAST(dob.ce_utilisateur AS CHAR) ".
|
91 |
" LEFT JOIN del_utilisateur AS du ON (do.ce_utilisateur = du.id_utilisateur) ".
|
| 92 |
"WHERE dob.id_observation = {$this->idObs} ".
|
92 |
"WHERE do.id_observation = {$this->idObs} ".
|
| 93 |
'-- '.__FILE__.':'.__LINE__;
|
93 |
'-- '.__FILE__.':'.__LINE__;
|
| Line 94... |
Line 94... |
| 94 |
//var_dump($requete);
|
94 |
//Debug::printr($requete);
|
| - |
|
95 |
return $this->bdd->recuperer($requete);
|
| - |
|
96 |
}
|
| - |
|
97 |
|
| 95 |
return $this->bdd->recupererTous($requete);
|
98 |
private function formaterObservation($infos) {
|
| 96 |
}
|
99 |
$infos = array_filter($infos);
|
| - |
|
100 |
|
| - |
|
101 |
$image = array_intersect_key($infos, array_flip(array('id_image', 'date', 'hauteur' , 'largeur', 'nom_original')));
|
| Line 97... |
Line -... |
| 97 |
|
- |
|
| 98 |
private function formaterObservation($infos) {
|
- |
|
| 99 |
$urlImgTpl = $this->conteneur->getParametre('cel_img_url_tpl');
|
- |
|
| 100 |
$imageFormat = 'XL';
|
- |
|
| 101 |
|
- |
|
| 102 |
$infos = array_map('array_filter', $infos);
|
- |
|
| 103 |
foreach ($infos as $info) {
|
- |
|
| 104 |
$image = array_intersect_key($info, array_flip(array('id_image', 'date', 'hauteur' , 'largeur', 'nom_original')));
|
102 |
$urlImgTpl = $this->conteneur->getParametre('cel_img_url_tpl');
|
| 105 |
$image['binaire.href'] = sprintf($urlImgTpl, $image['id_image'], $imageFormat);
|
- |
|
| 106 |
unset($info['id_image'], $info['date'], $info['hauteur'], $info['largeur'], $info['nom_original']);
|
103 |
$imageFormat = 'XL';
|
| 107 |
|
- |
|
| 108 |
if (!isset($this->observation)) {
|
104 |
$image['binaire.href'] = sprintf($urlImgTpl, $image['id_image'], $imageFormat);
|
| Line 109... |
Line 105... |
| 109 |
$this->observation = $info;
|
105 |
unset($infos['id_image'], $infos['date'], $infos['hauteur'], $infos['largeur'], $infos['nom_original']);
|
| 110 |
}
|
106 |
|
| 111 |
$this->observation['images'][$image['id_image']] = $image;
|
107 |
$this->observation = $infos;
|
| Line 162... |
Line 158... |
| 162 |
}
|
158 |
}
|
| 163 |
$this->observation['commentaires'] = $ret;
|
159 |
$this->observation['commentaires'] = $ret;
|
| 164 |
}
|
160 |
}
|
| Line 165... |
Line 161... |
| 165 |
|
161 |
|
| 166 |
private function nettoyerAuteur() {
|
162 |
private function nettoyerAuteur() {
|
| 167 |
if (!is_numeric($this->observation['auteur.id'])) {
|
163 |
if (!isset($this->observation['auteur.id']) || !is_numeric($this->observation['auteur.id'])) {
|
| 168 |
$this->observation['auteur.id'] = '0';
|
164 |
$this->observation['auteur.id'] = '0';
|
| 169 |
}
|
165 |
}
|
| 170 |
if (!isset($this->observation['auteur.nom'])) {
|
166 |
if (!isset($this->observation['auteur.nom'])) {
|
| 171 |
$this->observation['auteur.nom'] = '[inconnu]';
|
167 |
$this->observation['auteur.nom'] = '[inconnu]';
|