Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 781 → Rev 787

/trunk/services/modules/0.1/observations/VoteObservation.php
New file
0,0 → 1,54
<?php
// declare(encoding='UTF-8');
/**
* Le web service image récupère toutes les données de la table del_obs_images
* pour retourner une liste d'images associée à une observation
*
* @category php 5.2
* @package del
* @subpackage images
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images
*/
 
class VoteObservation {
private $conteneur;
private $gestionBdd;
private $bdd;
public function __construct(Conteneur $conteneur = null) {
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->gestionBdd = $conteneur->getGestionBdd();
$this->bdd = $this->gestionBdd->getBdd();
}
/**
* Méthode principale de la classe.
* Lance la récupération des images dans la base et les place dans un objet ResultatService
* pour l'afficher.
* @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
* @param array $parametres les paramètres situés après le ? dans l'url
* */
public function consulter($ressources, $parametres) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
RestServeur::ajouterMessage("Le service 'images/#id/#id_proposition/vote' n'autorise pas la consultation.");
}
public function ajouter($ressources, $parametres) {
$insertion = 'INSERT INTO `del`.`del_commentaire_vote` '.
'(`ce_proposition` , `ce_utilisateur` , `valeur` , `date`) '.
'VALUES ('.$ressources[1].','.$parametres['utilisateur'].','.
$parametres['valeur'].', NOW());';
$resultatsVotes = $this->bdd->requeter($insertion);
if ($resultatsVotes == false) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_MAUVAISE_REQUETE);
} else {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_CREATION_OK);
}
}
}
?>
/trunk/services/modules/0.1/observations/Observation.php
25,6 → 25,7
public function __construct(Conteneur $conteneur = null) {
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->conteneur->chargerConfiguration('config_votes.ini');
$this->gestionBdd = $conteneur->getGestionBdd();
$this->bdd = $this->gestionBdd->getBdd();
}
63,6 → 64,7
* */
private function configurer($ressources) {
$this->mappingObservation = $this->conteneur->getParametre('mapping_observation');
$this->mappingVotes = $this->conteneur->getParametre('mapping_votes');
if (empty($ressources) || sizeof($ressources) > 1 ) {
$e = 'Le service observation accepete 1 et 1 seule ressource';
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
168,11 → 170,25
$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) {
if ($commentaire['nom_sel'] != null) {
$commentaire['votes'] = $this->chargerVotes($commentaire['id_commentaire']);
}
$commentaires[$id] = $commentaire;
}
$observation['commentaires'] = $commentaires;
return $observation;
}
private function chargerVotes($id_commentaire) {
$requeteVotes = 'SELECT * FROM '.
$this->gestionBdd->formaterTable('del_commentaire_vote').
'WHERE ce_proposition = '.$this->proteger($id_commentaire);
$resultatsVotes = $this->bdd->recupererTous($requeteVotes);
$votes = $this->formaterVotes($resultatsVotes);
return $votes;
}
/*-------------------------------------------------------------------------------
233,5 → 249,19
return $this->bdd->proteger($valeur);
}
}
/**
* Formater un vote en fonction du fichier de configuration config_votes.ini
* @param $votes array()
* */
private function formaterVotes($votes) {
$retour = array();
foreach ($votes as $vote) {
foreach ($vote as $p=>$valeur) {
$retour[$vote['id_vote']][$this->mappingVotes[$p]] = $valeur;
}
}
return $retour;
}
}
?>
/trunk/services/modules/0.1/observations/ListeObservations.php
28,6 → 28,7
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->conteneur->chargerConfiguration('config_departements.ini');
$this->conteneur->chargerConfiguration('config_observations.ini');
$this->conteneur->chargerConfiguration('config_votes.ini');
$this->navigation = $conteneur->getNavigation();
$this->masque = $conteneur->getMasque();
$this->gestionBdd = $conteneur->getGestionBdd();
70,6 → 71,7
private function configurer() {
$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
$this->mappingObservation = $this->conteneur->getParametre('mapping_observation');
$this->mappingVotes = $this->conteneur->getParametre('mapping_votes');
}
/**
313,7 → 315,7
$resultatsVotes = $this->bdd->recupererTous($requeteVotes);
foreach ($resultatsVotes as $vote) {
$propositions[$vote['ce_proposition']]['votes'][] = $vote;
$propositions[$vote['ce_proposition']]['votes'][] = $this->formaterVotes($vote);
}
return $propositions;
}
385,6 → 387,18
return $urlImage;
}
/**
* Formater un vote en fonction du fichier de configuration config_votes.ini
* @param $votes array()
* */
private function formaterVotes($vote) {
$retour = array();
foreach ($vote as $param=>$valeur) {
$retour[$vote['id_vote']][$this->mappingVotes[$param]] = $valeur;
}
return $retour;
}
private function proteger($valeur) {
if (is_array($valeur)) {
return $this->bdd->protegerTableau($valeur);