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   jrest
8
* @package   jrest
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/jrest/
13
* @link      /doc/jrest/
14
*/
14
*/
15
 
15
 
16
/**
16
/**
17
 * Classe renvoyant une liste très succinte des observations liées à une image de l'utilisateur 
17
 * Classe renvoyant une liste très succinte des observations liées à une image de l'utilisateur 
18
 * 
18
 * 
19
 */
19
 */
20
class ImageContribution extends Cel {
20
class ImageContribution extends Cel {
21
 
21
 
22
	/**
22
	/**
23
	 * Renvoi un petit bout de html contenant les dernières obs liées à 
23
	 * Renvoi un petit bout de html contenant les dernières obs liées à 
24
	 * une image d'un utilisateur
24
	 * une image d'un utilisateur
25
	 * 
25
	 * 
26
	 * @param string $uid[0] mail de l'utilisateur
26
	 * @param string $uid[0] mail de l'utilisateur
27
	 * @param string $uid[1] identifiant numérique de l'utilisateur
27
	 * @param string $uid[1] identifiant numérique de l'utilisateur
28
	 */
28
	 */
29
	function getElement($uid){
29
	function getElement($uid){
30
 
30
 
31
        $requete_obs_liee_images = 'SELECT * FROM cel_obs'.
31
        $requete_obs_liee_images = 'SELECT * FROM cel_obs'.
32
        		' WHERE ce_utilisateur = '.$this->proteger($uid[1]).
32
        		' WHERE ce_utilisateur = '.Cel::db()->proteger($uid[1]).
33
        		' AND id_observation IN (SELECT id_observation
33
        		' AND id_observation IN (SELECT id_observation
34
								FROM cel_obs_images
34
								FROM cel_obs_images
35
								WHERE id_utilisateur = '.$this->proteger($uid[1]).' )'.
35
								WHERE id_utilisateur = '.Cel::db()->proteger($uid[1]).' )'.
36
				' AND transmission =  0'.
36
				' AND transmission =  0'.
37
				' ORDER BY date_modification DESC LIMIT 0,5';
37
				' ORDER BY date_modification DESC LIMIT 0,5';
38
 
38
 
39
        $html = '<div id="resume_cel">';
39
        $html = '<div id="resume_cel">';
40
        
40
        
41
        $obs_liees_images = array();
41
        $obs_liees_images = array();
42
        
42
        
43
        $resultat_obs_liees_images = $this->requeter($requete_obs_liee_images);
43
        $resultat_obs_liees_images = Cel::db()->requeter($requete_obs_liee_images);
44
        
44
        
45
        if(is_array($resultat_obs_liees_images)) {
45
        if(is_array($resultat_obs_liees_images)) {
46
        	$obs_liees_images = $resultat_obs_liees_images;
46
        	$obs_liees_images = $resultat_obs_liees_images;
47
        }
47
        }
48
 
48
 
49
        foreach ($obs_liees_images as $obs) {
49
        foreach ($obs_liees_images as $obs) {
50
 
50
 
51
			$chemin_sur_serveur = $this->config['cel']['url_images'];
51
			$chemin_sur_serveur = $this->config['cel']['url_images'];
52
 
52
 
53
            $requete_img_liees = 'SELECT * FROM cel_images WHERE id_image '.
53
            $requete_img_liees = 'SELECT * FROM cel_images WHERE id_image '.
54
						   'IN (SELECT id_image FROM cel_obs_images '.
54
						   'IN (SELECT id_image FROM cel_obs_images '.
55
						   'WHERE id_observation = "'.$obs['id_observation'].'") '.
55
						   'WHERE id_observation = "'.$obs['id_observation'].'") '.
56
						   'AND ce_utilisateur = "'.$obs['ce_utilisateur'].'"' ;
56
						   'AND ce_utilisateur = "'.$obs['ce_utilisateur'].'"' ;
57
 
57
 
58
			$resultat_requete_img_liees = $this->requeter($requete_img_liees);
58
			$resultat_requete_img_liees = Cel::db()->requeter($requete_img_liees);
59
 
59
 
60
			if (is_array($resultat_requete_img_liees) && count($resultat_requete_img_liees) > 0) {
60
			if (is_array($resultat_requete_img_liees) && count($resultat_requete_img_liees) > 0) {
61
				
61
				
62
				$premiere_image_liee = $resultat_requete_img_liees[0];
62
				$premiere_image_liee = $resultat_requete_img_liees[0];
63
 
63
 
64
	           	$premiere_image_liee['nom_original'] = htmlspecialchars($premiere_image_liee['nom_original']);
64
	           	$premiere_image_liee['nom_original'] = htmlspecialchars($premiere_image_liee['nom_original']);
65
	           	$premiere_image_liee['id_image'] = htmlspecialchars($premiere_image_liee['id_image']);
65
	           	$premiere_image_liee['id_image'] = htmlspecialchars($premiere_image_liee['id_image']);
66
	           	$id = $premiere_image_liee['id_image'];
66
	           	$id = $premiere_image_liee['id_image'];
67
	
67
	
68
	           	$tailleXY = $this->calculerDimensions(array($premiere_image_liee['largeur'], $premiere_image_liee['hauteur']));
68
	           	$tailleXY = $this->calculerDimensions(array($premiere_image_liee['largeur'], $premiere_image_liee['hauteur']));
69
	
69
	
70
	            $id = sprintf('%09s', $id) ;
70
	            $id = sprintf('%09s', $id) ;
71
	            $id = wordwrap($id, 3 , '_', true) ;
71
	            $id = wordwrap($id, 3 , '_', true) ;
72
	
72
	
73
	            $id_fichier = $id.".jpg" ;
73
	            $id_fichier = $id.".jpg" ;
74
	
74
	
75
	            $niveauDossier = explode("_", $id) ;
75
	            $niveauDossier = explode("_", $id) ;
76
	
76
	
77
	            $dossierNiveau1 = $niveauDossier[0] ;
77
	            $dossierNiveau1 = $niveauDossier[0] ;
78
	            $dossierNiveau2 = $niveauDossier[1] ;
78
	            $dossierNiveau2 = $niveauDossier[1] ;
79
	
79
	
80
	            $chemin_sur_serveur_final = $chemin_sur_serveur.'/'.$dossierNiveau1.'/'.$dossierNiveau2 ;
80
	            $chemin_sur_serveur_final = $chemin_sur_serveur.'/'.$dossierNiveau1.'/'.$dossierNiveau2 ;
81
	
81
	
82
	            $chemin_fichier = $chemin_sur_serveur_final.'/L/'.$id."_L.jpg" ;
82
	            $chemin_fichier = $chemin_sur_serveur_final.'/L/'.$id."_L.jpg" ;
83
	            $chemin_fichier_s = $chemin_sur_serveur_final.'/M/'.$id."_M.jpg" ;
83
	            $chemin_fichier_s = $chemin_sur_serveur_final.'/M/'.$id."_M.jpg" ;
84
	
84
	
85
	            $html .= '<div class="item_resume_cel">';
85
	            $html .= '<div class="item_resume_cel">';
86
	
86
	
87
	           	$html .= '<h4><a href="'.$chemin_fichier.'">'.$obs['nom_ret'].'</a></h4>'.
87
	           	$html .= '<h4><a href="'.$chemin_fichier.'">'.$obs['nom_ret'].'</a></h4>'.
88
	          	'<img src="'.$chemin_fichier_s.'" alt="'.$premiere_image_liee['nom_original'].'" height="'.$tailleXY[1].'px" width="'.$tailleXY[0].'px"></img><br/>';
88
	          	'<img src="'.$chemin_fichier_s.'" alt="'.$premiere_image_liee['nom_original'].'" height="'.$tailleXY[1].'px" width="'.$tailleXY[0].'px"></img><br/>';
89
	            $html .= '<span>Datée du '.$obs['date_modification'].'<br/>'  ;
89
	            $html .= '<span>Datée du '.$obs['date_modification'].'<br/>'  ;
90
	            $html .= 'Lieu : '.trim($obs['zone_geo'],'000null').' ('.trim($obs['ce_zone_geo'],'000null').') '.trim($obs['station'],'000null').' '.trim($obs['lieudit'],'000null').'<br/></p>'  ;
90
	            $html .= 'Lieu : '.trim($obs['zone_geo'],'000null').' ('.trim($obs['ce_zone_geo'],'000null').') '.trim($obs['station'],'000null').' '.trim($obs['lieudit'],'000null').'<br/></p>'  ;
91
				$html .= '</span>';
91
				$html .= '</span>';
92
	
92
	
93
	         	$html .= '</div>';
93
	         	$html .= '</div>';
94
			}
94
			}
95
        }
95
        }
96
 
96
 
97
        $html.= '</div>';
97
        $html.= '</div>';
98
 
98
 
99
        header("Content-Type: text/html; charset=UTF-8");
99
        header("Content-Type: text/html; charset=UTF-8");
100
        print $html;
100
        print $html;
101
        exit;
101
        exit;
102
    }
102
    }
103
 
103
 
104
    private function calculerDimensions($tailleXY) {
104
    private function calculerDimensions($tailleXY) {
105
 
105
 
106
        $tailleOr = 75 ;
106
        $tailleOr = 75 ;
107
 
107
 
108
        if($tailleXY[1] == 0) {
108
        if($tailleXY[1] == 0) {
109
            $tailleXY[1] = $tailleOr;
109
            $tailleXY[1] = $tailleOr;
110
        }
110
        }
111
 
111
 
112
        if($tailleXY[0] == 0) {
112
        if($tailleXY[0] == 0) {
113
            $tailleXY[0] = $tailleOr;
113
            $tailleXY[0] = $tailleOr;
114
        }
114
        }
115
 
115
 
116
        $maxTaille = max($tailleXY[1],$tailleXY[0]) ;
116
        $maxTaille = max($tailleXY[1],$tailleXY[0]) ;
117
 
117
 
118
        if($maxTaille == $tailleXY[1]) {
118
        if($maxTaille == $tailleXY[1]) {
119
 
119
 
120
            $rapport = $tailleXY[1]/$tailleXY[0] ;
120
            $rapport = $tailleXY[1]/$tailleXY[0] ;
121
            $tailleXY[1] = 75 ;
121
            $tailleXY[1] = 75 ;
122
            $tailleXY[0] = round($tailleXY[1]/$rapport,0) ;
122
            $tailleXY[0] = round($tailleXY[1]/$rapport,0) ;
123
 
123
 
124
        }else {
124
        }else {
125
            $rapport = $tailleXY[0]/$tailleXY[1] ;
125
            $rapport = $tailleXY[0]/$tailleXY[1] ;
126
            $tailleXY[0] = 75 ;
126
            $tailleXY[0] = 75 ;
127
            $tailleXY[1] = round($tailleXY[0]/$rapport,0) ;
127
            $tailleXY[1] = round($tailleXY[0]/$rapport,0) ;
128
        }
128
        }
129
 
129
 
130
        return $tailleXY ;
130
        return $tailleXY ;
131
    }
131
    }
132
 
132
 
133
}
133
}
134
?>
134
?>