Subversion Repositories eFlore/Applications.cel

Rev

Rev 2446 | Rev 2462 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2446 Rev 2461
Line 11... Line 11...
11
 * Sortie = Type de sortie : html ou json. Par défaut : html
11
 * Sortie = Type de sortie : html ou json. Par défaut : html
12
 *
12
 *
13
 * Utilisateur :
13
 * Utilisateur :
14
 * identifiant (= courriel) de l'utilisateur récupéré via une identification HTTP.
14
 * identifiant (= courriel) de l'utilisateur récupéré via une identification HTTP.
15
 *
15
 *
-
 
16
 * @internal   Mininum PHP version : 5.2
-
 
17
 * @category   CEL
-
 
18
 * @package    Services
-
 
19
 * @subpackage Images
-
 
20
 * @version    0.1
-
 
21
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
16
 * @author Jean-Pascal MILCENT <jpm@clapas.org>
22
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
-
 
23
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
17
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
24
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
18
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
25
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
19
 * @version $Id$
-
 
20
 * @copyright © 2010, Jean-Pascal MILCENT
26
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
21
 */
27
 */
22
class CelImageDoublon extends Cel {
28
class CelImageDoublon extends Cel {
Line 23... Line 29...
23
 
29
 
24
	/**
30
	/**
Line 65... Line 71...
65
 
71
 
66
	/**
72
	/**
67
	 * Carte par défaut
73
	 * Carte par défaut
68
	 */
74
	 */
69
	private function getDoublonHtml($parametres) {
-
 
70
 
75
	private function getDoublonHtml($parametres) {
71
		$widget = null;
76
		$widget = null;
72
		$utilisateur_mail = Cel::getAuthIdentifiant();
77
		$utilisateur_mail = Cel::getAuthIdentifiant();
73
		$utilisateur_infos = new User($this->config);
78
		$utilisateur_infos = new User($this->config);
74
		$utilisateur = $utilisateur_infos->obtenirUtilisateurSiExiste($utilisateur_mail);
79
		$utilisateur = $utilisateur_infos->obtenirUtilisateurSiExiste($utilisateur_mail);
Line 86... Line 91...
86
	/**
91
	/**
87
	 * Images en doublon d'un utilisateur
92
	 * Images en doublon d'un utilisateur
88
	 */
93
	 */
89
	private function getImagesDoublon($utilisateur) {
94
	private function getImagesDoublon($utilisateur) {
90
		$doublons = null;
95
		$doublons = null;
91
 
-
 
92
		if (isset($utilisateur)) {
96
		if (isset($utilisateur)) {
93
			// Un utilisateur en particulier
97
			// Un utilisateur en particulier
-
 
98
			$idUtilisateurP = Cel::db()->proteger($utilisateur);
94
			$requete = 	'SELECT id_image, ordre, nom_original, md5 '.
99
			$requete = 'SELECT id_image, ordre, nom_original, md5 '.
95
						'FROM cel_images '.
100
				'FROM cel_images '.
96
						"WHERE ce_utilisateur = '$utilisateur' ";
101
				"WHERE ce_utilisateur = $idUtilisateurP ".
97
 
-
 
-
 
102
				' -- '.__FILE__.':'.__LINE__;
98
			$images = Cel::db()->requeter($requete);
103
			$images = Cel::db()->requeter($requete);
Line 99... Line 104...
99
 
104
 
100
			// Traitement
105
			// Traitement
101
			$doublons = array();
106
			$doublons = array();
Line 110... Line 115...
110
						'img_id' => $img['id_image']);
115
						'img_id' => $img['id_image']);
111
				} else {
116
				} else {
112
					if (!isset($doublons[$img['md5']])) {
117
					if (!isset($doublons[$img['md5']])) {
113
						$id_img = $md5[$img['md5']]['img_id'];
118
						$id_img = $md5[$img['md5']]['img_id'];
114
						$doublons[$img['md5']][$id_img] = $md5[$img['md5']];
119
						$doublons[$img['md5']][$id_img] = $md5[$img['md5']];
115
						$images_doublons_id[] = Cel::db()->quote($id_img);
120
						$images_doublons_id[] = Cel::db()->proteger($id_img);
116
					}
121
					}
Line 117... Line 122...
117
 
122
 
118
					$doublons[$img['md5']][$img['id_image']] = array(
123
					$doublons[$img['md5']][$img['id_image']] = array(
119
							'url' => $this->getUrlImage($img['id_image'], 'CXS'),
124
						'url' => $this->getUrlImage($img['id_image'], 'CXS'),
120
							'obs_ordre' => array(),
125
						'obs_ordre' => array(),
121
							'img_ordre' => $img['ordre'],
126
						'img_ordre' => $img['ordre'],
122
							'img_id' => $img['id_image']);
127
						'img_id' => $img['id_image']);
123
					$images_doublons_id[] = Cel::db()->quote($img['id_image']);
128
					$images_doublons_id[] = Cel::db()->quote($img['id_image']);
124
				}
129
				}
Line 125... Line 130...
125
			}
130
			}
-
 
131
 
126
 
132
			if (count($images_doublons_id) > 0) {
127
			if (count($images_doublons_id) > 0) {
133
				$idsImgConcat = implode(',', $images_doublons_id);
128
				$requete = 	'SELECT cim.id_image, nom_original, md5, co.ordre AS ordre_obs '.
134
				$requete = 'SELECT cim.id_image, nom_original, md5, co.ordre AS ordre_obs '.
129
							'FROM cel_images AS cim '.
135
					'FROM cel_images AS cim '.
130
							'	LEFT JOIN cel_obs AS co '.
136
					'	LEFT JOIN cel_obs AS co '.
131
							'		ON (cim.ce_observation = co.id_observation) '.
137
					'		ON (cim.ce_observation = co.id_observation) '.
132
							"WHERE cim.ce_utilisateur = '$utilisateur' ".
-
 
-
 
138
					"WHERE cim.ce_utilisateur = $idUtilisateurP ".
133
							'	AND cim.id_image IN ('.implode(',', $images_doublons_id).')';
139
					"AND cim.id_image IN ($idsImgConcat) ".
Line 134... Line 140...
134
 
140
					' -- '.__FILE__.':'.__LINE__;
135
				$infos = Cel::db()->requeter($requete);
141
				$infos = Cel::db()->requeter($requete);
136
 
142
 
137
				foreach ($infos as $info) {
143
				foreach ($infos as $info) {
138
					if (isset($doublons[$info['md5']][$info['id_image']]) && ! $this->etreNull($info['ordre_obs'])) {
144
					if (isset($doublons[$info['md5']][$info['id_image']]) && ! $this->etreNull($info['ordre_obs'])) {
139
						$doublons[$info['md5']][$info['id_image']]['obs_ordre'][] = $info['ordre_obs'];
145
						$doublons[$info['md5']][$info['id_image']]['obs_ordre'][] = $info['ordre_obs'];
140
					}
146
					}
141
				}
-
 
142
			}
147
				}
143
		}
148
			}
144
 
149
		}
145
		return $doublons;
150
		return $doublons;