Subversion Repositories eFlore/Applications.del

Rev

Rev 1794 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1794 Rev 1795
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Supprime un mot clé par son identifiant
4
 * Supprime un mot clé par son identifiant
5
 *
5
 *
6
 * @category	php 5.2
6
 * @category   DEL
7
 * @package	del
7
 * @package    Services
8
 * @subpackage images
8
 * @subpackage MotsCles
-
 
9
 * @version    0.1
9
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
10
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
10
 * @copyright	Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
11
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
11
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
12
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
13
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
13
 * @version	$Id$
14
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
14
 * @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images
15
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
15
 */
16
 */
16
 
-
 
17
require_once('MotClePictoflora.php');
-
 
18
 
17
 
19
class SupprimerMotCle {
18
class SupprimerMotCle {
20
 
19
 
21
	private $conteneur;
20
	private $conteneur;
22
	private $navigation;
-
 
23
	private $bdd;
21
	private $bdd;
24
	private $parametres = array();
-
 
25
	private $ressources = array();
22
	private $ressources = array();
26
 
-
 
27
	private $motCleId;
23
	private $motCleId;
28
 
24
 
29
	public function __construct(Conteneur $conteneur = null) {
25
	public function __construct(Conteneur $conteneur = null) {
30
		$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
26
		$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
31
		$this->navigation = $conteneur->getNavigation();
-
 
32
		$this->bdd = $this->conteneur->getBdd();
27
		$this->bdd = $this->conteneur->getBdd();
33
	}
28
	}
34
 
29
 
35
	/**
30
	/**
36
	 * Supprime un mot-clé si les objets fournis en paramètres sont valides
31
	 * Supprime un mot-clé si les données fournis en paramètres sont valides.
37
	 * pour l'afficher.
32
	 *
38
	 * @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
33
	 * @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
39
	 * @param array $parametres les paramètres situés après le ? dans l'url
-
 
40
	 * */
34
	 */
41
	public function supprimer($ressources, $parametres) {
35
	public function supprimer($ressources) {
42
		$this->initialiserRessourcesEtParametres($ressources, $parametres);
36
		$this->ressources = $ressources;
-
 
37
		$this->verifierRessources();
43
 
38
 
44
		// Gestion des configuration du script
39
		$this->motCleId = $this->ressources[0];
45
		$this->verifierConfiguration();
40
		$this->supprimerMotCle();
46
		$insertion = $this->supprimerMotCle($this->motCleId);
41
		TelaBotanica\Del\Commun\MotsClesImage::updateStats($this->bdd, $this->motCleId);
47
 
42
 
48
		// Mettre en forme le résultat et l'envoyer pour affichage
43
		// Mettre en forme le résultat et l'envoyer pour affichage
49
		$resultat = new ResultatService();
44
		$resultat = new ResultatService();
50
 
-
 
51
		return $resultat;
45
		return $resultat;
52
	}
46
	}
53
 
-
 
54
	private function initialiserRessourcesEtParametres($ressources, $parametres) {
-
 
55
		$this->ressources = $ressources;
-
 
56
		$this->parametres = $parametres;
-
 
57
	}
-
 
58
 
-
 
59
	/*-------------------------------------------------------------------------------
-
 
60
	 							CONFIGURATION DU SERVICE
-
 
61
	 --------------------------------------------------------------------------------*/
-
 
62
	/**
-
 
63
	 * Vérifier que le service est bien configuré
-
 
64
	 * */
47
 
65
	public function verifierConfiguration() {
48
	private function verifierRessources() {
66
		$erreurs = array();
49
		$erreurs = array();
67
 
50
 
68
		if (!isset($this->ressources[0])) {
51
		if (!isset($this->ressources[0])) {
69
			$erreurs[] = ' - impossible de supprimer un mot clé sans l\'identifiant associé ;';
52
			$erreurs[] = " - impossible de supprimer un mot clé sans l'identifiant associé ;";
70
		} else if(!is_numeric($this->ressources[0])) {
53
		} else if(!is_numeric($this->ressources[0])) {
71
			$erreurs[] = ' - l\'identifiant de mot clé doit être un entier ;';
54
			$erreurs[] = " - l'identifiant de mot clé doit être un entier ;";
72
		}
55
		}
73
 
56
 
74
		if (!empty($erreurs)) {
57
		if (!empty($erreurs)) {
75
			$e = 'Erreur de configuration :';
58
			$msg = "Erreur de configuration :\n".implode("\n", $erreurs);
76
			$e = implode("\n", $erreurs);
-
 
77
			echo var_dump($e);
-
 
78
			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
59
			throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR);
79
		} else {
-
 
80
			$this->motCleId = $this->ressources[0];
-
 
81
		}
60
		}
82
	}
61
	}
83
 
-
 
84
	/*-------------------------------------------------------------------------------
-
 
85
							   SUPPRESSION DES MOTS CLES
-
 
86
	--------------------------------------------------------------------------------*/
-
 
87
	/**
62
 
88
	 * Supprime un mot clé dans la table
-
 
89
	 * @param $id_mot_cle string identifiant de mot clé
-
 
90
	 * */
63
	private function supprimerMotCle() {
91
	private function supprimerMotCle($id_mot_cle) {
64
		$idMotCleP = $this->bdd->proteger($this->motCleId);
92
		$retour = $this->bdd->requeter(sprintf('UPDATE del_image_tag '.
65
		$requete = 'UPDATE del_image_tag '.
93
											   'SET actif = 0, date_modification = NOW() '.
66
			'SET actif = 0, date_modification = NOW() '.
94
											   'WHERE id_tag = %d',
67
			"WHERE id_tag = $idMotCleP ".
95
											   intval($id_mot_cle)));
-
 
-
 
68
			' -- '.__FILE__.' : '.__LINE__;
96
 
69
		$retour = $this->bdd->executer($requete);
97
		if ($retour == null) {
70
		if ($retour == null) {
98
			$e = 'Erreur inopinée lors de la suppression';
71
			$msg = "Erreur lors de la suppression du mot-clé d'id $idMotCleP";
99
			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
72
			throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR);
100
		}
-
 
101
 
-
 
102
		MotClePictoflora::updateStats($this->bdd, $id_mot_cle);
73
		}
103
		return null;
74
		return $retour;
104
	}
-
 
105
}
-
 
106
?>
75
	}
-
 
76
}
107
77