Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1111 Rev 1123
Line 31... Line 31...
31
					$this->debug[] = 'Courriel : ok';
31
					$this->debug[] = 'Courriel : ok';
32
					extract($utilisateur);
32
					extract($utilisateur);
33
					$this->utilisateur_id = $courriel;
33
					$this->utilisateur_id = $courriel;
34
					$ordre = $this->getMaxOrdre($courriel);
34
					$ordre = $this->getMaxOrdre($courriel);
35
					if (!is_null($ordre)) {
35
					if (!is_null($ordre)) {
-
 
36
						$requeteDonnees = $this->supprimerSlashesProfond($requeteDonnees);
Line 36... Line 37...
36
 
37
 
37
						// Triage et manipulation des données
38
						// Triage et manipulation des données
38
						$observations = array();
39
						$observations = array();
39
						foreach ($requeteDonnees as $cle => $obs) {
40
						foreach ($requeteDonnees as $cle => $obs) {
Line 73... Line 74...
73
									$imgAAjouter = array();
74
									$imgAAjouter = array();
74
									$imgAAjouter['id_utilisateur'] = $courriel;
75
									$imgAAjouter['id_utilisateur'] = $courriel;
75
									$imgAAjouter['id_obs'] = $idObs;
76
									$imgAAjouter['id_obs'] = $idObs;
76
									$imgAAjouter['nom'] = $obs['image_nom'];
77
									$imgAAjouter['nom'] = $obs['image_nom'];
77
									$imgAAjouter['b64'] = $obs['image_b64'];
78
									$imgAAjouter['b64'] = $obs['image_b64'];
-
 
79
									$this->debug[] = 'Contient B64 : '.(empty($obs['image_b64']) ? 'non' : 'oui');
78
								}
80
								}
Line 79... Line 81...
79
 
81
 
80
								$observations[$idObs] = array(
82
								$observations[$idObs] = array(
81
									'obs' => $this->protegerTableau($obsAAjouter),
83
									'obs' => $this->protegerTableau($obsAAjouter),
Line 93... Line 95...
93
 
95
 
94
							// si le formulaire contient une image on la traite
96
							// si le formulaire contient une image on la traite
95
							if ($img != null) {
97
							if ($img != null) {
96
								$this->nettoyerImagesUploades();
98
								$this->nettoyerImagesUploades();
-
 
99
								$nomFichierImg = $this->traiterNomFichierImage($img['nom']);
97
								$nomFichierImg = $this->traiterNomFichierImage($img['nom']);
100
								$cheminImage = $this->config['cel_db']['chemin_stockage_temp']."/$nomFichierImg";
98
								// Si l'image est transmise en base 64
101
								// Si l'image est transmise en base 64
99
								if (empty($img['b64']) === false) {
102
								if (empty($img['b64']) === false) {
100
									$this->transformerBase64enFichier($nomFichierImg, $img['b64']);
103
									$this->transformerBase64enFichier($cheminImage, $img['b64']);
-
 
104
								}
101
								}
105
 
102
								$cheminImage = $this->config['cel_db']['chemin_stockage_temp']."/$nomFichierImg";
106
								$this->debug[] = 'Nom fichier img debut :'.$nomFichierImg;
103
								$idImg = $this->ajouterImageSurDdEtBdd($img['id_utilisateur'], $cheminImage, $nomFichierImg);
107
								$idImg = $this->ajouterImageSurDdEtBdd($img['id_utilisateur'], $cheminImage, $nomFichierImg);
104
								if ($idImg !== false) {
108
								if ($idImg !== false) {
105
									$this->lierObsEtImg($idImg, $img['id_utilisateur'], $img['id_obs']);
109
									$this->lierObsEtImg($idImg, $img['id_utilisateur'], $img['id_obs']);
106
								}
110
								}
Line 143... Line 147...
143
		$msg = (count($this->messages) > 0) ? 'erreur' : 'ok';
147
		$msg = (count($this->messages) > 0) ? 'erreur' : 'ok';
144
		$retour = (object) array('msg' => $msg);
148
		$retour = (object) array('msg' => $msg);
145
		$this->envoyerJson($retour);
149
		$this->envoyerJson($retour);
146
	}
150
	}
Line -... Line 151...
-
 
151
 
-
 
152
	private function supprimerSlashesProfond($valeur) {
-
 
153
		$valeur = is_array($valeur) ? array_map(array($this, 'supprimerSlashesProfond'), $valeur) : stripslashes($valeur);
-
 
154
		return $valeur;
-
 
155
	}
-
 
156
 
147
 
157
 
148
	private function getMaxOrdre($identifiant) {
158
	private function getMaxOrdre($identifiant) {
149
		$ordre = null;
159
		$ordre = null;
150
		$identifiant = $this->bdd->quote($identifiant);
160
		$identifiant = $this->bdd->quote($identifiant);
151
		$requete = 	"SELECT MAX(ordre) AS ordre ".
161
		$requete = 	"SELECT MAX(ordre) AS ordre ".
Line 193... Line 203...
193
 
203
 
194
	/**
204
	/**
195
	* Décode l'image en base64,enregistre celle-ci sous forme de fichier du type de l'image
205
	* Décode l'image en base64,enregistre celle-ci sous forme de fichier du type de l'image
196
	*  dans un dossier temporaire.
206
	*  dans un dossier temporaire.
197
	*/
207
	*/
198
	private function transformerBase64enFichier($fichierNom, $imageInfosB64) {
208
	private function transformerBase64enFichier($cheminImage, $imageInfosB64) {
199
		// Enleve la partie data:image qui permet la previsalisation pour firefox de l'image en base64
209
		// Enleve la partie data:image qui permet la previsalisation pour firefox de l'image en base64
200
		$imageBase64 = explode(';', $imageInfosB64);
-
 
201
		$type = explode('/',$imageBase64[0]);
210
		$imageBase64 = explode(';', $imageInfosB64);
202
		$dataBase64 = explode(',',$imageBase64[1]);
211
		$dataBase64 = explode(',',$imageBase64[1]);
Line 203... Line -...
203
		$dataImg = base64_decode($dataBase64[1]);
-
 
204
 
212
		$dataImg = base64_decode($dataBase64[1]);
205
		$cheminImage = $this->config['cel_db']['chemin_stockage_temp'].'/'.$fichierNom.'.'.$type[1];
213
 
206
		$imageRessource = fopen($cheminImage, 'wb');
214
		$imageRessource = fopen($cheminImage, 'wb');
Line 207... Line 215...
207
		fwrite($imageRessource, $dataImg);
215
		fwrite($imageRessource, $dataImg);
Line 268... Line 276...
268
					$infosImage['ci_ordre'] = $nouvelOrdre;
276
					$infosImage['ci_ordre'] = $nouvelOrdre;
269
					$infosImage['ci_publiable_eflore'] = 'false';
277
					$infosImage['ci_publiable_eflore'] = 'false';
270
					$infosImage['ci_nom_original'] = $nomFichierImage;
278
					$infosImage['ci_nom_original'] = $nomFichierImage;
271
					$infosImage['ci_ce_utilisateur'] = $idUtilisateur;
279
					$infosImage['ci_ce_utilisateur'] = $idUtilisateur;
272
					$infosImage['ci_md5'] = md5_file($cheminImage);
280
					$infosImage['ci_md5'] = md5_file($cheminImage);
273
 
-
 
-
 
281
					$this->debug[] = 'Nom fichier img meta :'.$nomFichierImage;
274
					$requete = $this->construireRequeteInsertionImage($infosImage);
282
					$requete = $this->construireRequeteInsertionImage($infosImage);
275
					$resultat = $this->executerRequeteSimple($requete);
283
					$resultat = $this->executerRequeteSimple($requete);
276
					if ($resultat !== false) {
284
					if ($resultat !== false) {
277
						$idImage = $this->obtenirIdImagePourIdentifiantEtOrdre($idUtilisateur, $nouvelOrdre);
285
						$idImage = $this->obtenirIdImagePourIdentifiantEtOrdre($idUtilisateur, $nouvelOrdre);
278
						if ($idImage !== false) {
286
						if ($idImage !== false) {
Line 313... Line 321...
313
		$requete = 'SELECT MAX(ci_ordre) as max_ordre '.
321
		$requete = 'SELECT MAX(ci_ordre) as max_ordre '.
314
			'FROM cel_images '.
322
			'FROM cel_images '.
315
			"WHERE ci_ce_utilisateur = $id_utilisateur ";
323
			"WHERE ci_ce_utilisateur = $id_utilisateur ";
316
		$resultat = $this->executerRequete($requete);
324
		$resultat = $this->executerRequete($requete);
Line 317... Line 325...
317
 
325
 
318
		$ordre = ($resultat) ? $resultat[0]['max_ordre']++ : 0;
326
		$ordre = ($resultat) ? ++$resultat[0]['max_ordre'] : 0;
319
		return $ordre;
327
		return $ordre;
Line 320... Line 328...
320
	}
328
	}
321
 
329