Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1436 Rev 1796
Line 1... Line 1...
1
<?php
1
<?php
-
 
2
namespace TelaBotanica\Del\Commun;
2
/**
3
/**
3
 * @author		Raphaël Droz <raphael@tela-botanica.org>
4
 * @author		Raphaël Droz <raphael@tela-botanica.org>
4
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
5
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
5
 * @copyright	Copyright (c) 2013, Tela Botanica (accueil@tela-botanica.org)
6
 * @copyright	Copyright (c) 2013, Tela Botanica (accueil@tela-botanica.org)
6
 * @license		Licence CECILL http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt
7
 * @license		Licence CECILL http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt
7
 * @license		Licence GNU-GPL http://www.gnu.org/licenses/gpl.html
8
 * @license		Licence GNU-GPL http://www.gnu.org/licenses/gpl.html
8
 * @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images
9
 * @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images
9
 */
10
 */
10
class MotClePictoflora {
11
class MotsClesImage {
Line 11... Line 12...
11
 
12
 
12
	// cf: images/VotesImage.php
13
	// cf: images/VotesImage.php
13
	static function updateStats($db, $id_image) {
14
	static function updateStats($db, $id_image) {
-
 
15
		$id_image = intval($id_image);
14
		$id_image = intval($id_image);
16
		if (!$id_image) {
15
		if(!$id_image) throw new Exception("Ne peut mettre à jour les statistiques de vote",
17
			$msg = "Ne peut mettre à jour les statistiques de vote";
-
 
18
			throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR);
Line 16... Line 19...
16
										   RestServeur::HTTP_CODE_ERREUR);
19
		}
-
 
20
 
17
 
21
		// on utilise toujours cette table de stats (ListeImages) pour les mots-clef "actif".
-
 
22
		$requete = 'UPDATE del_image_stat '.
-
 
23
			"SET nb_tags = (SELECT COUNT(id_tag) FROM del_image_tag WHERE ce_image = $id_image AND actif = 1) ".
-
 
24
			"WHERE ce_image = $id_image ".
18
		// on utilise toujours cette table de stats (ListeImages) pour les mots-clef "actif".
25
			' -- '.__FILE__.' : '.__LINE__;
Line 19... Line 26...
19
		$db->requeter(sprintf('UPDATE del_image_stat SET nb_tags = (select COUNT(id_tag) FROM del_image_tag WHERE ce_image = %1$d AND actif = 1) WHERE ce_image = %1$d', $id_image));
26
		$db->requeter($requete);
20
	}
-
 
21
 
27
	}
-
 
28
 
22
	//TODO: déplacer les fonctions ci dessus et dessous dans une classe
29
	//TODO: déplacer les fonctions ci dessus et dessous dans une classe utilitaire
23
	// utilitaire
-
 
24
	static function normaliserMotCle($str, $charset='utf-8') {
30
	static function normaliserMotCle($motCle, $charset='utf-8') {
25
		$str = htmlentities($str, ENT_NOQUOTES, $charset);
31
		$motCle = trim($motCle);
26
	
32
		$str = htmlentities($motCle, ENT_NOQUOTES, $charset);
27
		$str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
33
		$str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
28
		$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. '&oelig;'
34
		$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. '&oelig;'
29
		$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
-
 
30
		// supprime les espaces, tirets et simple-quotes en underscores
35
		$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
31
		return str_replace(array(" ", "-", "'"),
-
 
32
						   array('_', '_', '_'),
-
 
33
						   $str);
36
		$str = str_replace(array(' ', '-', "'"), '_', $str);// supprime les espaces, tirets et simple-quotes en underscores
34
	
37
		//TODO Voir si on doit mettre en minuscule : $str = mb_strtolower($str);
35
		return mb_strtolower($str);
38
		return $str;