Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1357 → Rev 1358

/trunk/services/modules/0.1/observations/Observation.php
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();