* @author Aurélien PERONNET * @copyright Copyright (c) 2013, Tela Botanica (accueil@tela-botanica.org) * @license Licence CECILL http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt * @license Licence GNU-GPL http://www.gnu.org/licenses/gpl.html * @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images */ class MotsClesImage { // cf: images/VotesImage.php static function updateStats($db, $id_image) { $id_image = intval($id_image); if (!$id_image) { $msg = "Ne peut mettre à jour les statistiques de vote"; throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR); } // on utilise toujours cette table de stats (ListeImages) pour les mots-clef "actif". $requete = 'UPDATE del_image_stat '. "SET nb_tags = (SELECT COUNT(id_tag) FROM del_image_tag WHERE ce_image = $id_image AND actif = 1) ". "WHERE ce_image = $id_image ". ' -- '.__FILE__.' : '.__LINE__; $db->requeter($requete); } //TODO: déplacer les fonctions ci dessus et dessous dans une classe utilitaire static function normaliserMotCle($motCle, $charset='utf-8') { $motCle = trim($motCle); $str = htmlentities($motCle, ENT_NOQUOTES, $charset); $str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str); $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ' $str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères $str = str_replace(array(' ', '-', "'"), '_', $str);// supprime les espaces, tirets et simple-quotes en underscores //TODO Voir si on doit mettre en minuscule : $str = mb_strtolower($str); return $str; } }