Subversion Repositories eFlore/Applications.cel

Rev

Rev 1391 | Rev 2446 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1391 Rev 1765
1
<?php
1
<?php
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
3
 
3
 
4
/**
4
/**
5
* PHP Version 5
5
* PHP Version 5
6
*
6
*
7
* @category  PHP
7
* @category  PHP
8
* @package   papyrus_bp
8
* @package   papyrus_bp
9
* @author    aurelien <aurelien@tela-botanica.org>
9
* @author    aurelien <aurelien@tela-botanica.org>
10
* @copyright 2010 Tela-Botanica
10
* @copyright 2010 Tela-Botanica
11
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
* @version   SVN: <svn_id>
12
* @version   SVN: <svn_id>
13
* @link      /doc/papyrus_bp/
13
* @link      /doc/papyrus_bp/
14
*/
14
*/
15
 
15
 
16
/**
16
/**
17
 * Classe renvoyant un petit bout de json contenant les dernières obs publiques d'un utilisateur
17
 * Classe renvoyant un petit bout de json contenant les dernières obs publiques d'un utilisateur
18
 * Utilisée par l'annuaire appelant les web services résumé de chaque application
18
 * Utilisée par l'annuaire appelant les web services résumé de chaque application
19
 * 
19
 * 
20
 */
20
 */
21
class Resume extends Cel {
21
class Resume extends Cel {
22
 
22
 
23
	function getElement($uid){
23
	function getElement($uid){
24
 
24
 
25
        $requete_dernieres_obs = 'SELECT * FROM cel_obs'.
25
        $requete_dernieres_obs = 'SELECT * FROM cel_obs'.
26
        		' WHERE ce_utilisateur = '.$this->proteger($uid[1]).
26
        		' WHERE ce_utilisateur = '.Cel::db()->proteger($uid[1]).
27
				' AND transmission =  0'.
27
				' AND transmission =  0'.
28
				' ORDER BY date_modification DESC LIMIT 0,5';
28
				' ORDER BY date_modification DESC LIMIT 0,5';
29
 
29
 
30
        $resultat_dernieres_obs = $this->requeter($requete_dernieres_obs);
30
        $resultat_dernieres_obs = Cel::db()->requeter($requete_dernieres_obs);
31
        
31
        
32
        $dernieres_obs = array();
32
        $dernieres_obs = array();
33
        $resume = array();
33
        $resume = array();
34
 
34
 
35
        if (is_array($resultat_dernieres_obs)) {
35
        if (is_array($resultat_dernieres_obs)) {
36
            $dernieres_obs = $resultat_dernieres_obs;
36
            $dernieres_obs = $resultat_dernieres_obs;
37
        }
37
        }
38
 
38
 
39
        $resume['titre'] = 'Vos dernières observations publiées';
39
        $resume['titre'] = 'Vos dernières observations publiées';
40
        $resume['lien_appli'] = '<a href="www.tela-botanica.org/appli:cel2"> Accéder au carnet en ligne </a>';
40
        $resume['lien_appli'] = '<a href="www.tela-botanica.org/appli:cel2"> Accéder au carnet en ligne </a>';
41
 
41
 
42
        if (count($dernieres_obs) == 0) {
42
        if (count($dernieres_obs) == 0) {
43
        	$resume['message'] = 'Aucune observation saisie pour le moment';
43
        	$resume['message'] = 'Aucune observation saisie pour le moment';
44
        }
44
        }
45
 
45
 
46
		foreach ($dernieres_obs as $obs) {
46
		foreach ($dernieres_obs as $obs) {
47
 
47
 
48
           	$chemin_sur_serveur = $this->config['cel']['url_images'];
48
           	$chemin_sur_serveur = $this->config['cel']['url_images'];
49
 
49
 
50
		   	$date = 'Datée du '.$obs['date_modification'].'<br/>'  ;
50
		   	$date = 'Datée du '.$obs['date_modification'].'<br/>'  ;
51
		  	$lieu = 'Lieu : '.trim($obs['zone_geo'],'000null').' ('.$this->convertirCodeZoneGeoVersDepartement(trim($obs['ce_zone_geo']),'000null').') '.trim($obs['station'],'000null').' '.trim($obs['lieudit'],'000null').'<br/>'  ;
51
		  	$lieu = 'Lieu : '.trim($obs['zone_geo'],'000null').' ('.$this->convertirCodeZoneGeoVersDepartement(trim($obs['ce_zone_geo']),'000null').') '.trim($obs['station'],'000null').' '.trim($obs['lieudit'],'000null').'<br/>'  ;
52
 
52
 
53
			$image ='';
53
			$image ='';
54
			$cible_lien = '';
54
			$cible_lien = '';
55
		    		
55
		    		
56
			$req_liaison = 'SELECT * FROM cel_images WHERE id_image IN (SELECT id_image FROM cel_obs_images WHERE id_observation = "'.$obs['id_observation'].'") AND ce_utilisateur = "'.$obs['ce_utilisateur'].'"' ;
56
			$req_liaison = 'SELECT * FROM cel_images WHERE id_image IN (SELECT id_image FROM cel_obs_images WHERE id_observation = "'.$obs['id_observation'].'") AND ce_utilisateur = "'.$obs['ce_utilisateur'].'"' ;
57
           	$res_liaison = $this->requeter($req_liaison);
57
           	$res_liaison = Cel::db()->requeter($req_liaison);
58
 
58
 
59
			$ligne_image = null;
59
			$ligne_image = null;
60
			
60
			
61
			foreach ($res_liaison as $img) {
61
			foreach ($res_liaison as $img) {
62
				$row = $img;
62
				$row = $img;
63
			}
63
			}
64
 
64
 
65
			if($row != null) {
65
			if($row != null) {
66
			
66
			
67
				$row['nom_original'] = htmlspecialchars($row['nom_original']);
67
				$row['nom_original'] = htmlspecialchars($row['nom_original']);
68
				$row['id_image'] = htmlspecialchars($row['id_image']);
68
				$row['id_image'] = htmlspecialchars($row['id_image']);
69
				$id = $row['id_image'];
69
				$id = $row['id_image'];
70
	
70
	
71
				$tailleXY = $this->calculerDimensions(array($row['largeur'], $row['hauteur']));
71
				$tailleXY = $this->calculerDimensions(array($row['largeur'], $row['hauteur']));
72
	
72
	
73
				$id = sprintf('%09s', $id) ;
73
				$id = sprintf('%09s', $id) ;
74
				$id = wordwrap($id, 3 , '_', true) ;
74
				$id = wordwrap($id, 3 , '_', true) ;
75
	
75
	
76
				$id_fichier = $id.".jpg" ;
76
				$id_fichier = $id.".jpg" ;
77
	
77
	
78
				$niveauDossier = explode("_", $id) ;
78
				$niveauDossier = explode("_", $id) ;
79
	
79
	
80
				$dossierNiveau1 = $niveauDossier[0] ;
80
				$dossierNiveau1 = $niveauDossier[0] ;
81
				$dossierNiveau2 = $niveauDossier[1] ;
81
				$dossierNiveau2 = $niveauDossier[1] ;
82
	
82
	
83
				$chemin_sur_serveur_final = $chemin_sur_serveur.'/'.$dossierNiveau1.'/'.$dossierNiveau2 ;
83
				$chemin_sur_serveur_final = $chemin_sur_serveur.'/'.$dossierNiveau1.'/'.$dossierNiveau2 ;
84
	
84
	
85
				$chemin_fichier = $chemin_sur_serveur_final.'/L/'.$id."_L.jpg" ;
85
				$chemin_fichier = $chemin_sur_serveur_final.'/L/'.$id."_L.jpg" ;
86
				$chemin_fichier_s = $chemin_sur_serveur_final.'/M/'.$id."_M.jpg" ;
86
				$chemin_fichier_s = $chemin_sur_serveur_final.'/M/'.$id."_M.jpg" ;
87
			
87
			
88
				$image = '<img src="'.$chemin_fichier_s.'" alt="'.$row['nom_original'].'" height="'.$tailleXY[1].'px" width="'.$tailleXY[0].'px"></img>';
88
				$image = '<img src="'.$chemin_fichier_s.'" alt="'.$row['nom_original'].'" height="'.$tailleXY[1].'px" width="'.$tailleXY[0].'px"></img>';
89
				$cible_lien = $chemin_fichier;
89
				$cible_lien = $chemin_fichier;
90
			}
90
			}
91
	
91
	
92
			$resume_item = array('element' => $obs['nom_ret'].$date.$lieu, 'lien' => $cible_lien,'image' => $image);
92
			$resume_item = array('element' => $obs['nom_ret'].$date.$lieu, 'lien' => $cible_lien,'image' => $image);
93
			$resume['elements'][] = $resume_item;
93
			$resume['elements'][] = $resume_item;
94
        }
94
        }
95
 
95
 
96
		$this->envoyerJson($resume);			
96
		$this->envoyerJson($resume);			
97
		return true;	
97
		return true;	
98
    }
98
    }
99
 
99
 
100
    public function calculerDimensions($tailleXY) {
100
    public function calculerDimensions($tailleXY) {
101
 
101
 
102
        $tailleOr = 75 ;
102
        $tailleOr = 75 ;
103
 
103
 
104
        if($tailleXY[1] == 0) {
104
        if($tailleXY[1] == 0) {
105
            $tailleXY[1] = $tailleOr;
105
            $tailleXY[1] = $tailleOr;
106
        }
106
        }
107
 
107
 
108
        if($tailleXY[0] == 0) {
108
        if($tailleXY[0] == 0) {
109
            $tailleXY[0] = $tailleOr;
109
            $tailleXY[0] = $tailleOr;
110
        }
110
        }
111
 
111
 
112
        $maxTaille = max($tailleXY[1],$tailleXY[0]) ;
112
        $maxTaille = max($tailleXY[1],$tailleXY[0]) ;
113
 
113
 
114
        if($maxTaille == $tailleXY[1]) {
114
        if($maxTaille == $tailleXY[1]) {
115
 
115
 
116
            $rapport = $tailleXY[1]/$tailleXY[0] ;
116
            $rapport = $tailleXY[1]/$tailleXY[0] ;
117
            $tailleXY[1] = 75 ;
117
            $tailleXY[1] = 75 ;
118
            $tailleXY[0] = round($tailleXY[1]/$rapport,0) ;
118
            $tailleXY[0] = round($tailleXY[1]/$rapport,0) ;
119
 
119
 
120
        }else {
120
        }else {
121
            $rapport = $tailleXY[0]/$tailleXY[1] ;
121
            $rapport = $tailleXY[0]/$tailleXY[1] ;
122
            $tailleXY[0] = 75 ;
122
            $tailleXY[0] = 75 ;
123
            $tailleXY[1] = round($tailleXY[0]/$rapport,0) ;
123
            $tailleXY[1] = round($tailleXY[0]/$rapport,0) ;
124
        }
124
        }
125
 
125
 
126
        return $tailleXY ;
126
        return $tailleXY ;
127
    }
127
    }
128
}
128
}
129
?>
129
?>