Subversion Repositories Applications.referentiel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 jpm 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Modèle d'accès à la base de données des Référentiels.
37 jpm 5
 * Permet d'accèder au données des référentiels.
6 jpm 6
 *
7
 * @package		Referentiel
8
 * @category	Php 5.2
9
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
10
 * @copyright	2010 Tela-Botanica
11
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
13
 * @version		SVN: $Id$
14
 *
15
 */
20 jpm 16
class ReferentielDao extends Dao {
22 jpm 17
	const SERVICE = 'Referentiel';
51 jpm 18
	const SERVICE_ARCHIVAGE = 'ArchiverReferentiel';
37 jpm 19
 
20
	/**
21
	 * Retourne des infos sur l'ensemble des référentiels disponibles.
22
	 *
23
	 * @return array un tableau contenant les informations sur les référentiels disponibles.
24
	 */
25
	public function getReferentielsDispo() {
26
		$url = $this->url_jrest.self::SERVICE."/Dispo";
38 jpm 27
		$json = $this->envoyerRequeteConsultation($url);
37 jpm 28
		$noms = json_decode($json, true);
29
		return $noms;
30
	}
6 jpm 31
 
32
	/**
38 jpm 33
	 * Retourne l'ensemble des information sur les noms d'un référentiel.
6 jpm 34
	 *
38 jpm 35
	 * @param string le code du référentiel.
36
	 * @return array un tableau contenant les informations sur les noms du référentiel.
6 jpm 37
	 */
38
	public function getTout($code_projet) {
39
		$url = $this->url_jrest.self::SERVICE."/Tout/$code_projet";
38 jpm 40
		$nbre = $this->getNombre($code_projet);
41
		$noms = array();
67 delphine 42
		$pas = 5000;
38 jpm 43
		for ($i = 0; $i < $nbre ; $i += $pas) {
44
			$this->setLimitation($i, $pas);
45
			$json = $this->envoyerRequeteConsultation($url);
46
			$noms_partiel = json_decode($json, true);
62 jpm 47
			Tableau::etendre($noms, $noms_partiel);
38 jpm 48
		}
6 jpm 49
		return $noms;
50
	}
51
 
52
	/**
53
	 * Retourne le nombre de noms présents dans la table de travail du référentiel.
54
	 *
55
	 * @param string le code du référentiel.
56
	 * @return int le nombre de noms.
57
	 */
58
	public function getNombre($code_projet) {
59
		$url = $this->url_jrest.self::SERVICE."/Nombre/$code_projet";
38 jpm 60
		$json = $this->envoyerRequeteConsultation($url);
6 jpm 61
		$nbre = json_decode($json, true);
62
		return $nbre;
63
	}
51 jpm 64
 
65
	/**
170 delphine 66
	 * Retourne le titre du projet dans la table des meta-données du référentiel.
67
	 *
68
	 * @param string le code du référentiel.
69
	 * @return int le nombre de noms.
70
	 */
71
	public function getNom($code_projet) {
72
		$url = $this->url_jrest.self::SERVICE."/Nom/$code_projet";
73
		$json = $this->envoyerRequeteConsultation($url);
74
		$nbre = json_decode($json, true);
75
		return $nbre;
76
	}
77
 
78
	/**
288 gduche 79
	 * Retourne la date de mise à jour dans la table des meta-données du référentiel.
80
	 *
81
	 * @param string le code du référentiel.
82
	 * @return int le nombre de noms.
83
	 */
84
	public function getDateMiseAJour($code_projet) {
85
		$url = $this->url_jrest.self::SERVICE."/DateMiseAJour/$code_projet";
86
		$json = $this->envoyerRequeteConsultation($url);
87
		$nbre = json_decode($json, true);
88
		return $nbre;
89
	}
90
 
91
	/**
51 jpm 92
	 * Copie la table de travail du référentiel pour l'archiver avec une numéro de version.
93
	 *
94
	 * @param string le code du référentiel.
95
	 * @param string la version du référentiel.
96
	 * @return bool true en cas de succé ou false en cas d'échec.
97
	 */
98
	public function archiver($code_projet, $version) {
99
		$url = $this->url_jrest.self::SERVICE_ARCHIVAGE;
100
		// Préparation des données à passer par POST
101
		$donnees['code'] = $code_projet;
102
		$donnees['version'] = $version;
103
 
104
		// Envoie des données et récupération du retour
105
		$json = $this->envoyerRequeteAjout($url, $donnees);
106
		$ok = json_decode($json, true);
107
		return $ok;
108
	}
6 jpm 109
}
110
?>