Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3361 Rev 3376
Line 32... Line 32...
32
		'projet' => 'projet',
32
		'projet' => 'projet',
33
		'type' => 'type',
33
		'type' => 'type',
34
		'langue' => 'langue',
34
		'langue' => 'langue',
35
		'order' => 'order'
35
		'order' => 'order'
36
	);
36
	);
-
 
37
 
37
	/**
38
	/**
38
	 * Méthode appelée par défaut pour charger ce widget.
39
	 * Méthode appelée par défaut pour charger ce widget.
39
	 */
40
	 */
40
	public function executer() {
41
	public function executer() {
41
		$retour = null;
42
		$retour = null;
Line 93... Line 94...
93
			$this->messages[] = 'La ressource demandée a retourné une valeur nulle.';
94
			$this->messages[] = 'La ressource demandée a retourné une valeur nulle.';
Line 94... Line 95...
94
 
95
 
Line 95... Line 96...
95
		} else {
96
		} else {
96
 
97
 
97
			if ( isset( $retour['donnees'] ) ) {
98
			if ( isset( $retour['donnees'] ) ) {
98
				$retour['donnees']['params']   = '&projet=' . $_POST['projet'] . '&langue=' . $_POST['langue'];
99
				$retour['donnees']['params']        = '&projet=' . $_POST['projet'] . '&langue=' . $_POST['langue'];
99
				$retour['donnees']['prod']     = ( $this->config['parametres']['modeServeur'] === 'prod' );
100
				$retour['donnees']['prod']          = ( $this->config['parametres']['modeServeur'] === 'prod' );
100
				$retour['donnees']['bar']      = $this->bar;
101
				$retour['donnees']['bar']           = $this->bar;
101
				$retour['donnees']['url_base'] = sprintf( $this->config['chemins']['baseURLAbsoluDyn'], '' );
102
				$retour['donnees']['url_base']      = sprintf( $this->config['chemins']['baseURLAbsoluDyn'], '' );
102
				$retour['donnees']['chemin_images'] = sprintf( $this->config['chemins']['baseURLAbsoluDyn'], $this->config['manager']['dossierTmp'] );
103
				$retour['donnees']['chemin_images'] = sprintf( $this->config['chemins']['baseURLAbsoluDyn'], $this->config['manager']['dossierTmp'] );
103
				$retour['donnees']['mode']     = $mode; //print_r($retour);
104
				$retour['donnees']['mode']          = $mode;
104
				$squelette = dirname( __FILE__ ) . self::DS . 'squelettes' . self::DS . $retour['squelette'] . '.tpl.html';
105
				$squelette = dirname( __FILE__ ) . self::DS . 'squelettes' . self::DS . $retour['squelette'] . '.tpl.html';
105
				$contenu   = $this->traiterSquelettePhp( $squelette, $retour['donnees'] );
-
 
106
			} else {
106
				$contenu   = $this->traiterSquelettePhp( $squelette, $retour['donnees'] );
107
 
107
			} else {
108
				$this->messages[] = 'Les données à transmettre au squelette sont nulles.';
108
				$this->messages[] = 'Les données à transmettre au squelette sont nulles.';
109
			}
109
			}
110
		}
110
		}
Line 156... Line 156...
156
		$retour['donnees']['type'] = $tableautype;
156
		$retour['donnees']['type'] = $tableautype;
Line 157... Line 157...
157
 
157
 
158
		return $retour;
158
		return $retour;
Line 159... Line -...
159
	}
-
 
160
 
-
 
161
 
159
	}
162
 
160
 
163
	private function executerModification() {
161
	private function executerModification() {
Line 164... Line 162...
164
		$retour = array();
162
		$retour = array();
Line 178... Line 176...
178
			$retour['donnees']['type'] = $tableautype;
176
			$retour['donnees']['type'] = $tableautype;
179
		}//print_r($retour['donnees']);
177
		}//print_r($retour['donnees']);
Line 180... Line 178...
180
 
178
 
181
		return $retour;
179
		return $retour;
-
 
180
	}
182
	}
181
 
183
	private function traiterParametres() {
182
	private function traiterParametres() {
184
		$parametres_flux = '?';
183
		$parametres_flux = '?';
Line 185... Line 184...
185
		$criteres        = array( 'projet', 'langue', 'titre' );
184
		$criteres        = array( 'projet', 'langue', 'titre' );
Line 215... Line 214...
215
		$files_names = array();
214
		$files_names = array();
216
		$help_files_names = array();
215
		$help_files_names = array();
217
		$error =
216
		$error =
218
			"<div class=\"message-echec container\">Echec du téléchargement : ".
217
			"<div class=\"message-echec container\">Echec du téléchargement : ".
219
			"L\'extention de l\'image pour " . $nom . " n\'est pas bonne".
218
			"L\'extention de l\'image pour " . $nom . " n\'est pas bonne".
220
			", formats acceptés : png, gif, jpg, jpeg, ou csv.".
219
			", formats acceptés : png, gif, jpg, jpeg, csv, ou tsv.".
221
			"</div>";
220
			"</div>";
222
		$image_projet_langue = ( $this->parametres['langue'] !== 'fr' ) ? '_' . $this->parametres['langue'] : '';
221
		$image_projet_langue = ( $this->parametres['langue'] !== 'fr' ) ? '_' . $this->parametres['langue'] : '';
223
		$dossier_url = __DIR__ . '/squelettes/img/images_projets/' . $_POST['projet'] . $image_projet_langue . '/';
222
		$dossier_url = __DIR__ . '/squelettes/img/images_projets/' . $_POST['projet'] . $image_projet_langue . '/';
Line 224... Line 223...
224
 
223
 
Line 237... Line 236...
237
					} else {
236
					} else {
238
						$return[$file] = $_FILES[$file]['type'];
237
						$return[$file] = $_FILES[$file]['type'];
239
						$files_names[$file] = $file .'.' . $extension;
238
						$files_names[$file] = $file .'.' . $extension;
240
					}
239
					}
241
				} else {
240
				} else {
242
					echo (
241
					echo $error;
243
						"<div class=\"message-echec container\">Echec du téléchargement : ".
-
 
244
						"L\'extention de l\'image pour " . $nom . " n\'est pas bonne".
-
 
245
						", formats acceptés : png, gif, jpg, jpeg, ou csv.".
-
 
246
						"</div>"
-
 
247
					);
-
 
248
				}
242
				}
249
			}
243
			}
250
		}
244
		}
Line 251... Line 245...
251
 
245
 
Line 317... Line 311...
317
			//Si le format n'est pas bon
311
			//Si le format n'est pas bon
318
			$erreur =
312
			$erreur =
319
				"<div class=\"message-echec container\">".
313
				"<div class=\"message-echec container\">".
320
					"Echec du téléchargement pour ".
314
					"Echec du téléchargement pour ".
321
					"\"" . $file_name . "\" ".
315
					"\"" . $file_name . "\" ".
322
					", formats acceptés : png, gif, jpg, jpeg, ou csv".
316
					", formats acceptés : png, gif, jpg, jpeg, csv, ou tsv".
323
				"</div>";
317
				"</div>";
324
		}
318
		}
Line 325... Line 319...
325
 
319
 
326
		if ( $taille > $taille_maxi ) {
320
		if ( $taille > $taille_maxi ) {
Line 369... Line 363...
369
			}
363
			}
370
		} elseif ( str_replace( '.csv' , '', $files['name'] ) && substr( strrchr($files['type'], '/' ), 1 ) === 'csv' ) {
364
		} elseif ( str_replace( '.csv' , '', $files['name'] ) && substr( strrchr($files['type'], '/' ), 1 ) === 'csv' ) {
371
			// Pas trouvé mieux pour csv :
365
			// Pas trouvé mieux pour csv :
372
			// Les fonctions qui pourraient utiliser $_FILES[file]["tmp_path"] me répondent "text/plain"...
366
			// Les fonctions qui pourraient utiliser $_FILES[file]["tmp_path"] me répondent "text/plain"...
373
			$format = 'csv';
367
			$format = 'csv';
374
		} elseif ( str_replace( '.tsv' , '', $files['name'] ) && substr( strrchr($files['type'], '/' ), 1 ) === 'tsv' ) {
368
		} elseif ( str_replace( '.tsv' , '', $files['name'] ) && substr( strrchr($files['type'], '/' ), 1 ) === 'tab-separated-values' ) {
375
			$format = 'tsv';
369
			$format = 'tsv';
376
		} else {
370
		} else {
377
			return false;
371
			return false;
378
		}
372
		}
379
		return $format;
373
		return $format;
380
	}
374
	}
-
 
375
 
381
	// En prévision d'un service permettant la suppression/modification champs supp
376
	// En prévision d'un service permettant la suppression/modification champs supp
382
	/* Recherche si un projet a des champs de saisie supplémentaire */
377
	/* Recherche si un projet a des champs de saisie supplémentaire */
383
	private function rechercherChampsSupp() {
378
	private function rechercherChampsSupp() {
384
		$retour = array();
379
		$retour = array();
385
		$projet = $this->parametres['projet'];
380
		$projet = $this->parametres['projet'];
Line 405... Line 400...
405
			}
400
			}
406
			$retour[$projet]['champs-supp'][$key]['mandatory'] = intval( $chsup['mandatory'] );
401
			$retour[$projet]['champs-supp'][$key]['mandatory'] = intval( $chsup['mandatory'] );
407
		}
402
		}
408
		return $retour;
403
		return $retour;
409
	}
404
	}
410
 
-
 
411
	// En prévision d'un service permettant la suppression/modification champs supp
-
 
412
	private function clean_string( $string ) {
-
 
413
		// les fonctions de base de php ne parviennent pas à une conversion satisfaisante des codes ascii
-
 
414
		// qui ont été générés automatiquement lors de la transmission des chaines en json
-
 
415
		// dans le widget cel manager vers la base
-
 
416
		// Pour les mêmes raisons, @apos@ et @quot@ est une autre astuces utilisée dans ce même widget
-
 
417
		// pour permettre la transmission des apostrophes et guillements sans erreur
-
 
418
		$patterns = array( '/\@apos\@/', '/\@quot\@/', '/u00c0/', '/u00c1/', '/u00c2/', '/u00c3/', '/u00c4/', '/u00c5/', '/u00c6/', '/u00c7/', '/u00c8/', '/u00c9/', '/u00ca/', '/u00cb/', '/u00cc/', '/u00cd/', '/u00ce/', '/u00cf/', '/u00d1/', '/u00d2/', '/u00d3/', '/u00d4/', '/u00d5/', '/u00d6/', '/u00d8/', '/u00d9/', '/u00da/', '/u00db/', '/u00dc/', '/u00dd/', '/u00df/', '/u00e0/', '/u00e1/', '/u00e2/', '/u00e3/', '/u00e4/', '/u00e5/', '/u00e6/', '/u00e7/', '/u00e8/', '/u00e9/', '/u00ea/', '/u00eb/', '/u00ec/', '/u00ed/', '/u00ee/', '/u00ef/', '/u00f0/', '/u00f1/', '/u00f2/', '/u00f3/', '/u00f4/', '/u00f5/', '/u00f6/', '/u00f8/', '/u00f9/', '/u00fa/', '/u00fb/', '/u00fc/', '/u00fd/', '/u00ff/' );
-
 
419
		$replacements = array( '&apos;', '&quot;', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý','ÿ' );
-
 
420
 
-
 
421
		$clean_string = preg_replace( $patterns, $replacements, $string );
-
 
422
 
-
 
423
		return $clean_string;
-
 
424
	}
-
 
425
 
-
 
426
	private function remove_accents( $string ) {
-
 
427
		if ( !preg_match( '/[\x80-\xff]/' , $string ) ) {
-
 
428
 
-
 
429
			return $string;
-
 
430
		}
-
 
431
 
-
 
432
		$chars = array(
-
 
433
			// Decompositions for Latin-1 Supplement
-
 
434
			chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
-
 
435
			chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
-
 
436
			chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
-
 
437
			chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
-
 
438
			chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
-
 
439
			chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
-
 
440
			chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
-
 
441
			chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
-
 
442
			chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
-
 
443
			chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
-
 
444
			chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
-
 
445
			chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
-
 
446
			chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
-
 
447
			chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
-
 
448
			chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
-
 
449
			chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
-
 
450
			chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
-
 
451
			chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
-
 
452
			chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
-
 
453
			chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
-
 
454
			chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
-
 
455
			chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
-
 
456
			chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
-
 
457
			chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
-
 
458
			chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
-
 
459
			chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
-
 
460
			chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
-
 
461
			chr(195).chr(191) => 'y',
-
 
462
			// Decompositions for Latin Extended-A
-
 
463
			chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
-
 
464
			chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
-
 
465
			chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
-
 
466
			chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
-
 
467
			chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
-
 
468
			chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
-
 
469
			chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
-
 
470
			chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
-
 
471
			chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
-
 
472
			chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
-
 
473
			chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
-
 
474
			chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
-
 
475
			chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
-
 
476
			chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
-
 
477
			chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
-
 
478
			chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
-
 
479
			chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
-
 
480
			chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
-
 
481
			chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
-
 
482
			chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
-
 
483
			chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
-
 
484
			chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
-
 
485
			chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
-
 
486
			chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
-
 
487
			chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
-
 
488
			chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
-
 
489
			chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
-
 
490
			chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
-
 
491
			chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
-
 
492
			chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
-
 
493
			chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
-
 
494
			chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
-
 
495
			chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
-
 
496
			chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
-
 
497
			chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
-
 
498
			chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
-
 
499
			chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
-
 
500
			chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
-
 
501
			chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
-
 
502
			chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
-
 
503
			chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
-
 
504
			chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
-
 
505
			chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
-
 
506
			chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
-
 
507
			chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
-
 
508
			chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
-
 
509
			chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
-
 
510
			chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
-
 
511
			chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
-
 
512
			chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
-
 
513
			chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
-
 
514
			chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
-
 
515
			chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
-
 
516
			chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
-
 
517
			chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
-
 
518
			chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
-
 
519
			chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
-
 
520
			chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
-
 
521
			chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
-
 
522
			chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
-
 
523
			chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
-
 
524
			chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
-
 
525
			chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
-
 
526
			chr(197).chr(190) => 'z', chr(197).chr(191) => 's'
-
 
527
		);
-
 
528
 
-
 
529
		$string = strtr( $string, $chars );
-
 
530
 
-
 
531
		return preg_replace( '/([^.a-z0-9]+)/i', '-', $string );
-
 
532
	}
-
 
533
}
405
}