46,12 → 46,13 |
$this->configurer($ressources); |
$this->verifierConfiguration(); |
|
|
// Lancement du service |
$liaisons = $this->chargerLiaisons(); |
$observation = $this->chargerObservation($liaisons); |
$observation = $this->chargerImages($observation); |
$observation = $this->chargerCommentaires($observation); |
// modifie $observation |
$this->chargerImages($observation); |
// modifie $observation |
$this->chargerCommentaires($observation); |
|
// Mettre en forme le résultat et l'envoyer pour affichage |
$resultat = new ResultatService(); |
169,33 → 170,31 |
* Sélectionner toutes les images de chaque observation |
* @param array $observations la liste des observations |
* */ |
private function chargerImages($observation) { |
$requeteImages = 'SELECT * FROM '. $this->gestionBdd->formaterTable('del_obs_image', 'doi'). |
'INNER JOIN '.$this->gestionBdd->formaterTable('del_image', 'di'). |
'ON doi.id_image = di.id_image '. |
'WHERE doi.id_observation = '.$observation['id_observation']; |
|
$images = $this->bdd->recupererTous($requeteImages); |
private function chargerImages(&$observation) { |
$images = $this->bdd->recupererTous(sprintf( |
'SELECT * FROM %s INNER JOIN %s ON doi.id_image = di.id_image WHERE doi.id_observation = %d', |
$this->gestionBdd->formaterTable('del_obs_image', 'doi'), |
$this->gestionBdd->formaterTable('del_image', 'di'), |
$observation['id_observation'])); |
if(!$images) return; |
$images = $this->formaterImages($images); |
$images = $this->chargerVotesImage($images); |
// modifie $images |
$this->chargerVotesImage($images); |
$observation['images'] = $images; |
|
return $observation; |
} |
|
/** |
* Charger les votes pour chaque image |
* */ |
private function chargerVotesImage($images) { |
$requeteVotes = 'SELECT v.*, p.* FROM '. |
$this->gestionBdd->formaterTable('del_image_vote', 'v'). |
' INNER JOIN del_image_protocole p '. |
'ON v.ce_protocole = p.id_protocole '. |
$this->chargerClauseWhereVotesImage(); |
$resultatsVotes = $this->bdd->recupererTous($requeteVotes); |
private function chargerVotesImage(&$images) { |
$resultatsVotes = $this->bdd->recupererTous(sprintf( |
'SELECT v.*, p.* FROM %s INNER JOIN del_image_protocole p ON v.ce_protocole = p.id_protocole %s -- %s', |
$this->gestionBdd->formaterTable('del_image_vote', 'v'), |
$this->chargerClauseWhereVotesImage(), |
__FILE__ . ':' . __LINE__)); |
if(!$resultatsVotes) return; |
|
$votes = $this->formaterVotesImages($resultatsVotes); |
|
foreach ($images as $id => $image) { |
if (isset($votes[$image['id_image']])) { |
foreach($votes[$image['id_image']] as $id_vote => $vote_image) { |
203,8 → 202,6 |
} |
} |
} |
|
return $images; |
} |
|
private function chargerClauseWhereVotesImage() { |
224,12 → 221,12 |
* Récupérer tous les commentaires au total |
* @param array $observations la liste des observations à mettre à jour |
* */ |
private function chargerCommentaires($observation) { |
|
private function chargerCommentaires(&$observation) { |
$requeteCommentaires = 'SELECT * FROM '.$this->gestionBdd->formaterTable('del_commentaire', 'dc'). |
'WHERE ce_observation = '.$observation['id_observation']; |
$commentaires = $this->bdd->recupererTous($requeteCommentaires); |
|
if(!$commentaires) return; |
|
$commentaires_formates = array(); |
foreach ($commentaires as $commentaire) { |
$commentaire = $this->formaterCommentaire($commentaire); |
239,8 → 236,6 |
$commentaires_formates[$commentaire['id_commentaire']] = $commentaire; |
} |
$observation['commentaires'] = $commentaires_formates; |
|
return $observation; |
} |
|
private function chargerVotes($id_commentaire) { |
264,6 → 259,7 |
/** |
* Formater les images d'une observation |
* @param array $images les images de l'observation |
* // TODO: en faire le maximum dans le SELECT |
* */ |
private function formaterImages($images) { |
$imagesRetour = array(); |