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. 'œ'
|
34 |
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
|
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;
|