* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org) * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL * @version $Id$ * @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images */ require_once('MotClePictoflora.php'); class SupprimerMotCle { private $conteneur; private $navigation; private $masque; private $gestionBdd; private $bdd; private $parametres = array(); private $ressources = array(); private $motCleId; public function __construct(Conteneur $conteneur = null) { $this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; $this->navigation = $conteneur->getNavigation(); $this->masque = $conteneur->getMasque(); $this->gestionBdd = $conteneur->getGestionBdd(); $this->bdd = $this->gestionBdd->getBdd(); } /** * Supprime un mot-clé si les objets fournis en paramètres sont valides * pour l'afficher. * @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2) * @param array $parametres les paramètres situés après le ? dans l'url * */ public function supprimer($ressources, $parametres) { $this->initialiserRessourcesEtParametres($ressources, $parametres); // Gestion des configuration du script $this->verifierConfiguration(); $insertion = $this->supprimerMotCle($this->motCleId); // Mettre en forme le résultat et l'envoyer pour affichage $resultat = new ResultatService(); return $resultat; } private function initialiserRessourcesEtParametres($ressources, $parametres) { $this->ressources = $ressources; $this->parametres = $parametres; } /*------------------------------------------------------------------------------- CONFIGURATION DU SERVICE --------------------------------------------------------------------------------*/ /** * Vérifier que le service est bien configuré * */ public function verifierConfiguration() { $erreurs = array(); if (!isset($this->ressources[0])) { $erreurs[] = ' - impossible de supprimer un mot clé sans l\'identifiant associé ;'; } else if(!is_numeric($this->ressources[0])) { $erreurs[] = ' - l\'identifiant de mot clé doit être un entier ;'; } if (!empty($erreurs)) { $e = 'Erreur de configuration :'; $e = implode("\n", $erreurs); echo var_dump($e); throw new Exception($e, RestServeur::HTTP_CODE_ERREUR); } else { $this->motCleId = $this->ressources[0]; } } /*------------------------------------------------------------------------------- SUPPRESSION DES MOTS CLES --------------------------------------------------------------------------------*/ /** * Supprime un mot clé dans la table * @param $id_mot_cle string identifiant de mot clé * */ private function supprimerMotCle($id_mot_cle) { $retour = $this->bdd->requeter(sprintf('UPDATE del_image_tag '. 'SET actif = 0, date_modification = NOW() '. 'WHERE id_tag = %d', intval($id_mot_cle))); if ($retour == null) { $e = 'Erreur inopinée lors de la suppression'; throw new Exception($e, RestServeur::HTTP_CODE_ERREUR); } MotClePictoflora::updateStats($this->bdd, $id_mot_cle); return null; } } ?>