Rev 322 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Modèle d'accès à la base de données des Référentiels.* Permet d'accèder au données des référentiels.** @package Referentiel* @category Php 5.2* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>* @copyright 2010 Tela-Botanica* @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 SVN: $Id$**/class ReferentielDao extends Dao {const SERVICE = 'Referentiel';const SERVICE_ARCHIVAGE = 'ArchiverReferentiel';/*** Retourne des infos sur l'ensemble des référentiels disponibles.** @return array un tableau contenant les informations sur les référentiels disponibles.*/public function getReferentielsDispo() {$url = $this->url_jrest.self::SERVICE."/Dispo";$json = $this->envoyerRequeteConsultation($url);$noms = json_decode($json, true);return $noms;}/*** Retourne l'ensemble des information sur les noms d'un référentiel.** @param string le code du référentiel.* @return array un tableau contenant les informations sur les noms du référentiel.*/public function getTout($code_projet) {$url = $this->url_jrest.self::SERVICE."/Tout/$code_projet";$nbre = $this->getNombre($code_projet);$noms = array();$pas = 5000;for ($i = 0; $i < $nbre ; $i += $pas) {$this->setLimitation($i, $pas);$json = $this->envoyerRequeteConsultation($url);$noms_partiel = json_decode($json, true);Tableau::etendre($noms, $noms_partiel);}return $noms;}/*** Retourne le nombre de noms présents dans la table de travail du référentiel.** @param string le code du référentiel.* @return int le nombre de noms.*/public function getNombre($code_projet) {$url = $this->url_jrest.self::SERVICE."/Nombre/$code_projet";$json = $this->envoyerRequeteConsultation($url);$nbre = json_decode($json, true);return $nbre;}/*** Retourne le titre du projet dans la table des meta-données du référentiel.** @param string le code du référentiel.* @return int le nombre de noms.*/public function getNom($code_projet) {$url = $this->url_jrest.self::SERVICE."/Nom/$code_projet";$json = $this->envoyerRequeteConsultation($url);$nbre = json_decode($json, true);return $nbre;}/*** Retourne la date de mise à jour dans la table des meta-données du référentiel.** @param string le code du référentiel.* @return int le nombre de noms.*/public function getDateMiseAJour($code_projet) {$url = $this->url_jrest.self::SERVICE."/DateMiseAJour/$code_projet";$json = $this->envoyerRequeteConsultation($url);$nbre = json_decode($json, true);return $nbre;}/*** Copie la table de travail du référentiel pour l'archiver avec une numéro de version.** @param string le code du référentiel.* @param string la version du référentiel.* @return bool true en cas de succé ou false en cas d'échec.*/public function archiver($code_projet, $version) {$url = $this->url_jrest.self::SERVICE_ARCHIVAGE;// Préparation des données à passer par POST$donnees['code'] = $code_projet;$donnees['version'] = $version;// Envoie des données et récupération du retour$json = $this->envoyerRequeteAjout($url, $donnees);$ok = json_decode($json, true);return $ok;}/*** Créer un fichier csv d'export d'une version d'un ref en sélectionnant les champs et filtrant en fonction de paramètres* @return l'url de stockage*/public function exporter($parametres) {$this->ordre['nom_sci'] = 'ASC';$url = $this->construireUrlExport($parametres);$json = $this->envoyerRequeteConsultation($url);$donnees = json_decode($json, true);return $donnees;}private function construireUrlExport($parametres) {$url = $this->url_jrest.self::SERVICE.'/Export';$params_a_passer = array('ref', 'version', 'champs', 'filtres', 'encodage');foreach ($params_a_passer as $param_cle) {if (isset($parametres[$param_cle]) && $parametres[$param_cle] != '') {$valeur = urlencode(trim($parametres[$param_cle]));$url .= '/'.$valeur;} else {$url .= '/*';}}return $url;}/*** Modifie un référentiel pour ajouter une colonne famille* @param integer l'id du traitement* @return boolean true en cas de succés sinon false.*/public function preparerTablePrChpFamille($referentiel) {$url = $this->url_jrest.self::SERVICE.'/TablePrChpFamille/'.$referentiel;$json = $this->envoyerRequeteConsultation($url);$donnees = json_decode($json, true);return $donnees;/*$donnees['referentiel'] = $referentiel;$donnees['action'] = 'TablePrChpFamille';// Envoie des données et récupération du retour$json = $this->envoyerRequeteModif($url, $donnees);$ok = json_decode($json, true);return $ok;*/}public function remplirChpFamille($referentiel, $noms) {$url = $this->url_jrest.self::SERVICE.'/ChpFamille/';$donnees['referentiel'] = $referentiel;$donnees['noms'] = $noms;// Envoie des données et récupération du retour$json = $this->envoyerRequeteModif($url, $donnees);$ok = json_decode($json, true);return $ok;}}?>