/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); |