Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1142 → Rev 1143

/trunk/services/modules/0.1/images/ListeImagesDeterminationsProbables.php
28,6 → 28,8
private $ressources = array();
private $tri = 'date_transmission';
private $directionTri = 'desc';
private $protocole_defaut = 1;
private $valeur_vote_min_defaut = 3;
public function __construct(Conteneur $conteneur = null) {
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
53,10 → 55,11
// Gestion des configuration du script
$this->configurer();
$this->verifierConfiguration();
 
$this->verifierParametres();
$this->verifierParametresTri();
$this->initialiserTri();
$this->parametres['protocole'] = '1';
// Lancement du service
$liaisons = $this->chargerLiaisons();
$total = $this->compterImages();
73,30 → 76,26
private function initialiserRessourcesEtParametres($ressources, $parametres) {
$this->ressources = $ressources;
$this->parametres = $parametres;
if(!isset($parametres['protocole'])) {
$this->parametres['protocole'] = $this->protocole_defaut;
}
if(!isset($parametres['valeur_vote_min'])) {
$this->parametres['valeur_vote_min'] = $this->valeur_vote_min_defaut;
}
}
private function verifierParametresTri() {
private function verifierParametres() {
$erreurs = array();
$tris_possibles = $this->conteneur->getParametre('tris_possibles');
$tris_possibles_tableau = explode(',', $tris_possibles);
if(isset($this->parametres['tri']) && !in_array($this->parametres['tri'], $tris_possibles_tableau)) {
$erreurs[] = '- le type de tri demandé est incorrect, les valeurs possibles sont '.$tris_possibles.' ;';
if(isset($this->parametres['protocole']) && !is_numeric($this->parametres['protocole'])) {
$erreurs[] = '- la valeur pour le protocole doit être un entier ';
}
if(isset($this->parametres['tri']) && $this->parametres['tri'] == "votes") {
if(!isset($this->parametres['protocole']) || !is_numeric($this->parametres['protocole'])) {
$erreurs[] = '- Le paramètre protocole est obligatoire en cas de tri par vote et doit être un entier ;';
}
if(isset($this->parametres['valeur_min_vote']) && !is_numeric($this->parametres['valeur_min_vote'])) {
$erreurs[] = '- la valeur minimum de valeur des votes doit être un entier ';
}
$directions_tri = array('asc', 'desc');
if(isset($this->parametres['ordre']) && !in_array($this->parametres['ordre'], $directions_tri)) {
$erreurs[] = '- la direction du tri demandé est incorrecte, les valeurs supportées sont asc ou desc ;';
}
if (!empty($erreurs)) {
$e = 'Erreur lors de l\'analyse des parametres du tri : '."\n";
$e = 'Erreur lors de l\'analyse des parametres du service : '."\n";
$e .= implode("\n", $erreurs);
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
}
214,9 → 213,9
'ON du.id_utilisateur = di.ce_utilisateur '.
'LEFT JOIN del_image_vote dvote '.
'ON doi.id_image = dvote.ce_image AND dvote.ce_protocole = '.$this->parametres['protocole'].' ';
$requeteLiaisons .= 'GROUP BY dvote.ce_image HAVING AVG(dvote.valeur) >= 3 ORDER BY moyenne_votes';
//$requeteLiaisons .= $this->getTri();
$requeteLiaisons .= 'GROUP BY dvote.ce_image HAVING AVG(dvote.valeur) >= '.$this->parametres['valeur_vote_min'].' ORDER BY moyenne_votes';
$requeteLiaisons .= $this->gestionBdd->getLimitSql();
 
return $this->bdd->recupererTous($requeteLiaisons);
}