22,10 → 22,12 |
private $gestionBdd; |
private $bdd; |
private $id_observation; |
private $imageIds; |
|
public function __construct(Conteneur $conteneur = null) { |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; |
$this->conteneur->chargerConfiguration('config_votes.ini'); |
$this->conteneur->chargerConfiguration('config_mapping_votes.ini'); |
$this->gestionBdd = $conteneur->getGestionBdd(); |
$this->bdd = $this->gestionBdd->getBdd(); |
} |
156,6 → 158,7 |
|
$images = $this->bdd->recupererTous($requeteImages); |
$images = $this->formaterImages($images); |
$images = $this->chargerVotesImage($images); |
$observation['images'] = $images; |
|
return $observation; |
162,6 → 165,43 |
} |
|
/** |
* 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); |
|
$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) { |
$images[$id]['protocoles_votes'][$id_vote] = $vote_image; |
} |
} |
} |
|
return $images; |
} |
|
private function chargerClauseWhereVotesImage() { |
if (sizeof($this->imageIds) > 0) { |
$chaineImageIds = implode(',', $this->imageIds); |
$where[] = 'v.ce_image IN ('.$chaineImageIds.')'; |
} |
if (isset($this->parametres['protocole'])) { |
$where[] = 'v.ce_protocole = '.$this->proteger($this->parametres['protocole']); |
} |
|
$where = (!empty($where)) ? 'WHERE '.implode(' AND ', $where) : ''; |
return $where; |
} |
|
/** |
* Récupérer tous les commentaires au total |
* @param array $observations la liste des observations à mettre à jour |
* */ |
170,13 → 210,15 |
$requeteCommentaires = 'SELECT * FROM '.$this->gestionBdd->formaterTable('del_commentaire', 'dc'). |
'WHERE ce_observation = '.$observation['id_observation']; |
$commentaires = $this->bdd->recupererTous($requeteCommentaires); |
foreach ($commentaires as $id=>$commentaire) { |
|
$commentaires_formates = array(); |
foreach ($commentaires as $commentaire) { |
if ($commentaire['nom_sel'] != null) { |
$commentaire['votes'] = $this->chargerVotes($commentaire['id_commentaire']); |
} |
$commentaires[$id] = $commentaire; |
$commentaires_formates[$commentaire['id_commentaire']] = $commentaire; |
} |
$observation['commentaires'] = $commentaires; |
$observation['commentaires'] = $commentaires_formates; |
|
return $observation; |
} |
186,7 → 228,10 |
$this->gestionBdd->formaterTable('del_commentaire_vote'). |
'WHERE ce_proposition = '.$this->proteger($id_commentaire); |
$resultatsVotes = $this->bdd->recupererTous($requeteVotes); |
$votes = $this->formaterVotes($resultatsVotes); |
$votes = array(); |
foreach ($resultatsVotes as $vote) { |
$votes[$vote['id_vote']] = $this->formaterVotes($vote); |
} |
return $votes; |
} |
|
202,6 → 247,8 |
private function formaterImages($images) { |
$imagesRetour = array(); |
foreach ($images as $image) { |
|
$this->imageIds[] = $image['id_image']; |
$imageCourante = array(); |
$imageCourante['id_image'] = $image['id_image']; |
$imageCourante['date'] = $image['date_prise_de_vue']; |
254,13 → 301,36 |
* Formater un vote en fonction du fichier de configuration config_votes.ini |
* @param $votes array() |
* */ |
private function formaterVotes($votes) { |
private function formaterVotes($vote) { |
$retour = array(); |
foreach ($vote as $param => $valeur) { |
$retour[$this->mappingVotes[$param]] = $valeur; |
} |
return $retour; |
} |
|
/** |
* Formater une observation depuis une ligne liaison |
* @param $liaison liaison issue de la recherche |
* @return $observation l'observation mise en forme |
* */ |
private function formaterVotesImages($votes) { |
$retour = array(); |
foreach ($votes as $vote) { |
foreach ($vote as $p=>$valeur) { |
$retour[$vote['id_vote']][$this->mappingVotes[$p]] = $valeur; |
$retour_vote = array(); |
foreach ($vote as $param=>$valeur) { |
if (strpos($this->mappingVotes[$param], 'protocole.') === 0) { |
$retour_protocole[$this->mappingVotes[$param]] = $valeur; |
} else { |
$retour_vote[$this->mappingVotes[$param]] = $valeur; |
} |
} |
if (!isset($retour[$vote['ce_image']][$vote['ce_protocole']])) { |
$retour[$vote['ce_image']][$vote['ce_protocole']] = $retour_protocole; |
} |
$retour[$vote['ce_image']][$vote['ce_protocole']]['votes'][$vote['id_vote']] = $retour_vote; |
} |
|
return $retour; |
} |
} |