Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 704 → Rev 705

/trunk/services/modules/0.1/del/Images.php
18,7 → 18,7
// | GNU General Public License for more details. |
// | |
// | You should have received a copy of the GNU General Public License |
// | along with Foobar; if not, write to the Free Software |
// | along with Del; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: effi_cel.action.php,v 1.9 2007-11-06 10:54:03 jp_milcent Exp $
33,6 → 33,9
* @version $Revision: 1.9 $ $Date: 2007-11-06 10:54:03 $
// +------------------------------------------------------------------------------------------------------+
*/
 
// TODO : conteneur, n'étendra plus rien
// Le contenu viendra du constructeur
class Images extends Commun {
private $config;
57,18 → 60,26
$this->idImage = $ressources[0];
}
//TODO : enlever les appels par référence
// Gestion des configuration du script
// TODO : gérer les erreurs de config
// voir les paramètres par défaut
// vérifier les valeurs (voir try catch JP)
// TODO : voir la classe Conteneur
$this->config = Config::get('images');
$this->schemaBdd = $this->config['schemaBdd'];
$this->UrlNavigation = new Url($this->config['url_service']);
$this->chargerParametres($parametres);
// TODO : voir CEL ou CHORODEP eflore ou CARTOPOINT pour calc find rows
$this->compterImages();
// Lancement du service
// TODO : changer le résultat par id => objetImage
$liaisons = $this->chargerLiaisons();
$images = $this->chargerImage($liaisons);
//TODO : gérer un retour de chargervote plutot que référence
$this->chargerVotes($images);
// Mettre en forme le résultat et l'envoyer pour affichage
95,6 → 106,8
$this->limite = $this->parametres['navigation.limite'];
}
// TODO : voir méthode gérer Masque pour gérer les spécificités de chaque paramètre
foreach ($parametres as $id => $parametre) {
if (strpos($id, 'masque.') === 0) {
$champ = substr($id, 7, strlen($id));
115,6 → 128,8
* */
private function chargerClauseWhere() {
$where = array();
// TODO : factoriser ci-dessous
if (isset($this->idImage)) {
$where[] = " id_image = ".$this->getBdd()->proteger($this->idImage);
}
147,15 → 162,17
} else {
if (strpos($auteurId, '@') === false) {
// TODO : bug sur nom/prenom
// TODO : j'ai utilisé implode car ça évite de faire un rtrim à la fin
// mais comme je ne peux pas protéger chaque valeur d'un tableau, ca alourdit le code.
// quid ?
// TODO : voir méthode pour protéger les valeurs d'un tableau (cel.php, services web du cel ...)
$nomPrenom = explode(' ', $auteurId);
foreach ($nomPrenom as &$valeur) {
$valeur = $this->getBdd()->proteger($valeur);
}
$chaineNomPrenom = implode(', ', $nomPrenom);
$where[] = '((nom IN ('.$chaineNomPrenom.')) OR (prenom IN('.$chaineNomPrenom.')))';
$where[] = '((nom IN ('.$chaineNomPrenom.')) OR (prenom IN ('.$chaineNomPrenom.')))';
} else {
$where[] = " courriel LIKE ".$this->getBdd()->proteger($this->masque['auteur'].'%')." ";
165,6 → 182,7
//TODO : gérer le format de la date ?
// rechercher sur LIKE DATE % ?
// TODO : recherche sur JOUR MOIS ou ANNEE
if (isset($this->masque['date'])) {
$where[] = " date_observation = ".$this->getBdd()->proteger($this->masque['date']);
}
175,10 → 193,12
}
if (isset($this->masque['departement'])) {
//TODO : que faire si le département n'est pas numérique ?
$dept = $this->masque['departement'];
if (is_numeric($dept)) {
$where[] = " ce_zone_geo LIKE ".$this->getBdd()->proteger('INSEE-C:'.$this->masque['departement'].'%');
} else {
//TODO : que faire si le département n'est pas numérique ?
// TODO : modifier le modèle pour intégrer les zones geos !
}
}
197,6 → 217,8
* Compter le nombre total d'images dans la base pour affichage dans entete.
* */
private function compterImages() {
// TODO : n'est pas la bonne requête
// voir dans les services web eflore
$requeteNbImages = 'SELECT COUNT(*) AS nb '.
'FROM '.$this->schemaBdd.'.del_image ';
$resultatNbImages = $this->getBdd()->recuperer($requeteNbImages);
257,6 → 279,8
'WHERE ce_image IN ('.$chaineImageIds.')';
$resultatsVotes = $this->getBdd()->recupererTous($requeteVotes);
//TODO : faire une méthode formater vote
$votes = array();
foreach ($resultatsVotes as $vote) {
$idImage = $vote['ce_image'];
289,6 → 313,8
* */
private function formaterObservation($liaison) {
$observation = array();
// TODO : faire un tableau de correspondance clé-valeur
$observation['id_observation'] = $liaison['id_observation'];
$observation['date_observation'] = $liaison['date_observation'];
$observation['date_transmission'] = $liaison['date_transmission'];