* @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 Test extends AppliControleur { const SCRIPT_A_LANCER = 'tests'; private $referentiel = null; private $referentielDao = null; private $traitementDao = null; public function __construct() { parent::__construct(); // Récupération de paramêtres if (isset($_GET['ref'])) { // code du projet courrant $this->referentiel = strtolower($_GET['ref']); } // Chargement des DAO nécessaires $this->referentielDao = new ReferentielDao(); $this->traitementDao = new TraitementDao(); } //+----------------------------------------------------------------------------------------------------------------+ // Méthodes /** * Fonction d'affichage par défaut, elle appelle la liste des administrateurs */ public function executerActionParDefaut() { return $this->afficherInterface(); } /** * Affiche le formulaire de demande de traitement */ public function afficherInterface() { if ($this->authentifierCoordinateur()) { $donnees = array(); $this->definirCommeModulePrincipal(get_class($this)); $this->url->unsetVariablesRequete(array('module', 'action', 'ref')); $donnees['url_form'] = $this->url->getUrl(); $donnees['url_module'] = 'Test'; $donnees['url_action_demande'] = 'demanderTraitement'; $donnees['url_action_rafraichir'] = 'afficherInterface'; $donnees['url_action_importer'] = 'importerReferentiel'; $donnees['url_importation'] = $donnees['url_form']. '?module='.$donnees['url_module'].'&action='.$donnees['url_action_importer'].'&ref='.$this->referentiel; // Traitement de l'info sur le code du référentiel if (isset($this->referentiel)) { // Récupération du nom du référentiel courrant $donnees['nom_referentiel'] = $this->referentielDao->getNom($this->referentiel); // Récupération du référentiel courrant $donnees['ref'] = $this->referentiel; // Recherche des traitements en attente $donnees['traitements_en_attente'] = $this->traitementDao->getTraitementsEnAttente($this->referentiel, self::SCRIPT_A_LANCER); // Recherche des traitements en cours d'éxecution $donnees['traitements_en_cours'] = $this->traitementDao->getTraitementsEnCours($this->referentiel, self::SCRIPT_A_LANCER); // Recherche des traitements déjà effectué $resultat = $this->traitementDao->getTraitementsTermines($this->referentiel, self::SCRIPT_A_LANCER); if (is_array($resultat)) { // Ajout de l'url vers la fiche du traitement foreach ($resultat as &$traitement) { $traitement['url'] = $this->obtenirUrlFicheTraitement($this->referentiel, $traitement['id_traitement']); } $donnees['traitements_termines'] = $resultat; } } else { $this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx)."); } $donnees['messages'] = $this->getMessages(); $this->setSortie(self::RENDU_CORPS, $this->getVue('form_tests', $donnees), false); $this->construireMenu($this->referentiel); $this->construireFilAriane($this->referentiel); } } /** * Lance l'ajout d'un traitement */ public function demanderTraitement() { $this->ajouterTraitement($this->referentiel, self::SCRIPT_A_LANCER); $this->afficherInterface(); } /** * Lance l'importation d'un référentiel au format taxref dans une table bdnt_taxref */ public function importerReferentiel() { if (isset($_FILES['nom_fichier']) && $_FILES['nom_fichier']['name'] != '') { $destination = Config::get('chemin_tmp').$_FILES['nom_fichier']['name']; move_uploaded_file($_FILES['nom_fichier']['tmp_name'], $destination); $this->ajouterTraitementParametre($this->referentiel, $destination, 'importation'); } else { $this->addMessage("Aucun fichier n'a été précisé."); } $this->afficherInterface(); } } ?>