/trunk/interfaces/controleurs/Traitement.php |
---|
New file |
0,0 → 1,84 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe Controleur du module Traitement. |
* Affichage les infos sur l'ensemble des résultats d'un traitement. |
* |
* @package Referentiel |
* @category Php5.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 Traitement extends AppliControleur { |
private $traitementId = null; |
private $traitementDao = null; |
private $resultatDao = null; |
public function __construct() { |
parent::__construct(); |
// Récupération de paramêtres |
if (isset($_GET['id-t'])) { // id du traitement courant |
$this->traitementId = strtolower($_GET['id-t']); |
} |
// Chargement des DAO nécessaires |
if (isset($this->traitementId)) { |
$this->traitementDao = new TraitementDao(); |
$this->resultatDao = new ResultatDao(); |
} |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// Méthodes |
/** |
* Fonction d'affichage par défaut, elle appelle la liste des administrateurs |
*/ |
public function executerActionParDefaut() { |
return $this->afficherTraitement(); |
} |
/** |
* Affiche le formulaire de demande de traitement |
*/ |
public function afficherTraitement() { |
$donnees = array(); |
// Traitement de l'info sur le code du référentiel |
if (isset($this->traitementId)) { |
// Recherche d'info sur le traitement |
$infos = $this->traitementDao->getInfos($this->traitementId); |
if ($infos != false) { |
$donnees['traitement'] = $infos; |
} else { |
$this->addMessage("L'identifiant de traitement n'est pas indexé dans la base de données."); |
} |
// Recherche des résultats du traitement |
$infos = $this->resultatDao->getResultatsTraitement($this->traitementId); |
if ($infos != false) { |
// Ajout de l'url vers la fiche du resultat |
$this->url->unsetVariablesRequete(array('action','id-t')); |
$this->url->setVariableRequete('module', 'Resultat'); |
foreach ($infos as &$resultat) { |
$this->url->setVariableRequete('id-r', $resultat['id_resultat']); |
$resultat['url'] = $this->url->getUrl(); |
$this->url->unsetVariableRequete('id-r'); |
} |
$this->url->unsetVariablesRequete(array('module')); |
$donnees['resultats'] = $infos; |
} |
} else { |
$this->addMessage("Aucun identifiant de traitement n'a été indiqué."); |
} |
$donnees['messages'] = $this->getMessages(); |
$this->traiterEsperluette($donnees); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('traitement', $donnees), false); |
} |
} |
?> |
/trunk/interfaces/controleurs/Test.php |
---|
47,7 → 47,8 |
$this->url->unsetVariablesRequete(array('module', 'action', 'ref')); |
$donnees['url_form'] = $this->url->getUrl(); |
$donnees['url_module'] = 'Test'; |
$donnees['url_action'] = 'demanderTraitement'; |
$donnees['url_action_demande'] = 'demanderTraitement'; |
$donnees['url_action_rafraichir'] = 'afficherInterface'; |
// Traitement de l'info sur le code du référentiel |
if (isset($this->referentiel)) { |
54,13 → 55,25 |
$donnees['ref'] = $this->referentiel; |
$resultat = $this->traitementDao->getTraitementsEnCours($this->referentiel); |
if ($resultat != false) { |
$donnees['traitements'] = $resultat; |
} else { |
$this->addMessage("Aucun traitement en cours."); |
$donnees['traitements_en_cours'] = $resultat; |
} |
// Recherche des traitements déjà effectué |
$resultat = $this->traitementDao->getTraitementsTermines($this->referentiel); |
if ($resultat != false) { |
// Ajout de l'url vers la fiche du traitement |
$this->url->setVariableRequete('module', 'Traitement'); |
foreach ($resultat as &$traitement) { |
$this->url->setVariableRequete('id-t', $traitement['id_traitement']); |
$traitement['url'] = $this->url->getUrl(); |
$this->url->unsetVariableRequete('id-t'); |
} |
$this->url->unsetVariableRequete('module'); |
$donnees['traitements_termines'] = $resultat; |
} |
} else { |
$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdnff)."); |
} |
} |
$donnees['messages'] = $this->getMessages(); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('form_traitement', $donnees), false); |
119,7 → 132,7 |
$e = "La fonction 'exec()' fait partie des fonctions désactivées sur ce serveur (voir disable_functions)."; |
$this->addMessage(sprintf($message_erreur_tpl, $e)); |
} else { |
Debug::printr($commande); |
//Debug::printr($commande); |
$this->addMessage("Lancement du script effectuant les traitements."); |
exec($commande); |
} |
/trunk/interfaces/controleurs/AppliControleur.php |
---|
115,7 → 115,7 |
if ($valeur == '') { |
$valeur = ' '; |
} else if (is_string($valeur)) { |
$valeur = preg_replace('/&(?!amp;)/i', '&', $valeur, -1); |
$valeur = $this->remplacerEsperluette($valeur); |
} else if (is_array($valeur)) { |
$this->postraiterDonnees($valeur); |
} |
122,4 → 122,22 |
} |
} |
} |
protected function traiterEsperluette(&$tableau) { |
if (count($tableau) > 0) { |
foreach ($tableau as $cle => &$valeur) { |
if (is_string($valeur)) { |
$valeur = $this->remplacerEsperluette($valeur); |
} else if (is_array($valeur)) { |
$this->traiterEsperluette($valeur); |
} |
} |
} |
} |
private function remplacerEsperluette($txt) { |
$txt = preg_replace('/&(?!([a-z]+|#[0-9]+|#x[0-9a-f]+);)/i', '&', $txt, -1); |
return $txt; |
} |
} |
/trunk/interfaces/controleurs/Resultat.php |
---|
New file |
0,0 → 1,67 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe Controleur du module Resultat. |
* Affichage des infos sur un résultat de traitement. |
* |
* @package Referentiel |
* @category Php5.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 Resultat extends AppliControleur { |
private $resultatId = null; |
private $resultatDao = null; |
public function __construct() { |
parent::__construct(); |
// Récupération de paramêtres |
if (isset($_GET['id-r'])) { // id du resultat courant |
$this->resultatId = strtolower($_GET['id-r']); |
} |
// Chargement des DAO nécessaires |
if (isset($this->resultatId)) { |
$this->resultatDao = new ResultatDao(); |
} |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// Méthodes |
/** |
* Fonction d'affichage par défaut |
*/ |
public function executerActionParDefaut() { |
return $this->afficherResultat(); |
} |
/** |
* Affiche le formulaire de demande de traitement |
*/ |
public function afficherResultat() { |
$donnees = array(); |
// Traitement de l'info sur le code du référentiel |
if (isset($this->resultatId)) { |
// Recherche d'info sur le résultat |
$infos = $this->resultatDao->getInfos($this->resultatId); |
if ($infos != false) { |
$donnees['resultat'] = $infos; |
} else { |
$this->addMessage("L'identifiant de résultat n'est pas indexé dans la base de données."); |
} |
} else { |
$this->addMessage("Aucun identifiant de résultat n'a été indiqué."); |
} |
$donnees['messages'] = $this->getMessages(); |
$this->traiterEsperluette($donnees); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $donnees), false); |
} |
} |
?> |
/trunk/interfaces/controleurs/Referentiel.php |
---|
33,7 → 33,7 |
public function __construct() { |
$meta = array('titre' => '', 'description' => '', 'tags' => ''); |
$sortie = array('metadonnees' => $meta, 'corps' => '', 'tete' => '', 'pied' => '', 'navigation' => ''); |
$url = new Url(Config::get('url_base')); |
$url = new Url(Config::get('url_base_index')); |
self::$parametres = array( 'module' => 'Test', |
'action' => 'executerActionParDefaut', |
'sortie' => $sortie, |