/trunk/interfaces/controleurs/Traitement.php |
---|
14,6 → 14,7 |
*/ |
class Traitement extends AppliControleur { |
private $referentiel = null; |
private $traitementId = null; |
private $traitementDao = null; |
private $resultatDao = null; |
25,6 → 26,9 |
if (isset($_GET['id-t'])) { // id du traitement courant |
$this->traitementId = strtolower($_GET['id-t']); |
} |
if (isset($_GET['ref'])) { // code du projet courrant |
$this->referentiel = strtolower($_GET['ref']); |
} |
// Chargement des DAO nécessaires |
if (isset($this->traitementId)) { |
62,14 → 66,9 |
$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'); |
$resultat['url'] = $this->obtenirUrlFicheResultat($this->referentiel, $resultat['id_resultat']); |
} |
$this->url->unsetVariablesRequete(array('module')); |
$donnees['resultats'] = $infos; |
} |
} else { |
79,6 → 78,8 |
$donnees['messages'] = $this->getMessages(); |
$this->traiterEsperluette($donnees); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('traitement', $donnees), false); |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel, $this->traitementId); |
} |
} |
?> |
/trunk/interfaces/controleurs/Test.php |
---|
62,13 → 62,9 |
$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'); |
$traitement['url'] = $this->obtenirUrlFicheTraitement($this->referentiel, $traitement['id_traitement']); |
} |
$this->url->unsetVariableRequete('module'); |
$donnees['traitements_termines'] = $resultat; |
} |
} else { |
77,6 → 73,8 |
$donnees['messages'] = $this->getMessages(); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('form_traitement', $donnees), false); |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel); |
} |
/** |
/trunk/interfaces/controleurs/Versionnage.php |
---|
New file |
0,0 → 1,39 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe Controleur du module Versionnage. |
* Permet de publier une nouvelle version d'un référentiel de travail. |
* |
* @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 Versionnage extends AppliControleur { |
private $referentiel = 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']); |
} |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// Méthodes |
/** |
* Fonction d'affichage par défaut |
*/ |
public function executerActionParDefaut() { |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel); |
$this->setSortie(self::RENDU_CORPS, '<p>En cours de réalisation...</p>', false); |
} |
} |
?> |
/trunk/interfaces/controleurs/AppliControleur.php |
---|
16,6 → 16,8 |
const RENDU_TETE = 'tete'; |
const RENDU_CORPS = 'corps'; |
const RENDU_PIED = 'pied'; |
const RENDU_NAVIGATION = 'navigation'; |
const RENDU_MENU = 'menu'; |
// FIXME : voir s'il est plus intéressant d'utiliser une méthode dans les classes filles |
protected $url = null; |
84,7 → 86,9 |
$existe = true; |
if ($position != self::RENDU_TETE && |
$position != self::RENDU_CORPS && |
$position != self::RENDU_PIED) { |
$position != self::RENDU_PIED && |
$position != self::RENDU_NAVIGATION && |
$position != self::RENDU_MENU) { |
trigger_error("La position '$position' n'est pas une valeur prédéfinie.", E_USER_WARNING); |
$existe = false; |
} |
139,5 → 143,120 |
$txt = preg_replace('/&(?!([a-z]+|#[0-9]+|#x[0-9a-f]+);)/i', '&', $txt, -1); |
return $txt; |
} |
/** |
* Construction du menu et stockage dans le conteneur de sortie RENDU_MENU. |
* |
* @param string $referentiel code du référentiel. |
*/ |
protected function construireMenu($referentiel) { |
$menu['nom'] = 'Accueil'; |
$menu['url'] = $this->obtenirUrlMenuAccueil(); |
$donnees['menus'][] = $menu; |
$menu['nom'] = 'Tests'; |
$menu['url'] = $this->obtenirUrlMenuTest($referentiel); |
$donnees['menus'][] = $menu; |
$menu['nom'] = 'Versionnage'; |
$menu['url'] = $this->obtenirUrlMenuVersionnage($referentiel); |
$donnees['menus'][] = $menu; |
$menu['nom'] = 'Consultation'; |
$menu['url'] = $this->obtenirUrlMenuConsultation($referentiel); |
$donnees['menus'][] = $menu; |
$this->setSortie(self::RENDU_MENU, $this->getVue('menu', $donnees), false); |
} |
/** |
* Construction du fil d'ariane et stockage dans le conteneur de sortie RENDU_NAVIGATION. |
* |
* @param $referentiel code du référentiel |
* @param $id_traitement id du traitement |
* @param $id_resultat id du résultat |
*/ |
protected function construireFilAriane($referentiel = null, $id_traitement = null, $id_resultat = null) { |
$entree['nom'] = 'Accueil'; |
$entree['url'] = $this->obtenirUrlMenuAccueil(); |
$donnees['entrees'][] = $entree; |
if (isset($referentiel)) { |
$entree['nom'] = strtoupper($referentiel); |
$entree['url'] = $this->obtenirUrlDetailReferentiel($referentiel); |
$donnees['entrees'][] = $entree; |
$module = Referentiel::getModule(); |
if ($module != 'Accueil') { |
$entree['nom'] = $module; |
$entree['url'] = $this->obtenirUrlMenu($module, $referentiel); |
$donnees['entrees'][] = $entree; |
} |
if (isset($id_traitement)) { |
$entree['nom'] = "Traitement #$id_traitement"; |
$entree['url'] = $this->obtenirUrlFicheTraitement($referentiel, $id_traitement); |
$donnees['entrees'][] = $entree; |
} |
if (isset($id_resultat)) { |
$entree['nom'] = "Résultat #$id_resultat"; |
$entree['url'] = $this->obtenirUrlFicheResultat($referentiel, $id_resultat); |
$donnees['entrees'][] = $entree; |
} |
} |
$this->setSortie(self::RENDU_NAVIGATION, $this->getVue('fil_ariane', $donnees), false); |
} |
protected function obtenirUrlDetailReferentiel($referentiel) { |
$this->url->setRequete(false); |
$this->url->setVariableRequete('module', 'Accueil'); |
$this->url->setVariableRequete('action', 'afficherDetail'); |
$this->url->setVariableRequete('ref', $referentiel); |
$url = $this->url->getURL(); |
$this->url->unsetVariablesRequete(array('module', 'action', 'ref')); |
return $url; |
} |
protected function obtenirUrlMenuAccueil() { |
return $this->obtenirUrlMenu('Accueil'); |
} |
protected function obtenirUrlMenuTest($referentiel) { |
return $this->obtenirUrlMenu('Test', $referentiel); |
} |
protected function obtenirUrlMenuVersionnage($referentiel) { |
return $this->obtenirUrlMenu('Versionnage', $referentiel); |
} |
protected function obtenirUrlMenuConsultation($referentiel) { |
return $this->obtenirUrlMenu('Consultation', $referentiel); |
} |
private function obtenirUrlMenu($menu, $referentiel = null) { |
$this->url->setRequete(false); |
$this->url->setVariableRequete('module', $menu); |
if (isset($referentiel)) { |
$this->url->setVariableRequete('ref', $referentiel); |
} |
$url = $this->url->getURL(); |
$this->url->unsetVariablesRequete(array('module', 'ref')); |
return $url; |
} |
protected function obtenirUrlFicheTraitement($referentiel, $id_traitement) { |
$this->url->setRequete(false); |
$this->url->setVariableRequete('module', 'Traitement'); |
$this->url->setVariableRequete('id-t', $id_traitement); |
$this->url->setVariableRequete('ref', $referentiel); |
$url = $this->url->getURL(); |
$this->url->unsetVariablesRequete(array('module', 'id-t', 'ref')); |
return $url; |
} |
protected function obtenirUrlFicheResultat($referentiel, $id_resultat) { |
$this->url->setRequete(false); |
$this->url->setVariableRequete('module', 'Resultat'); |
$this->url->setVariableRequete('id-r', $id_resultat); |
$this->url->setVariableRequete('ref', $referentiel); |
$url = $this->url->getURL(); |
$this->url->unsetVariablesRequete(array('module', 'id-r', 'ref')); |
return $url; |
} |
} |
/trunk/interfaces/controleurs/Consultation.php |
---|
New file |
0,0 → 1,39 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe Controleur du module Consultation. |
* Permet de consultation la version de travail d'un référentiel. |
* |
* @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 Consultation extends AppliControleur { |
private $referentiel = 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']); |
} |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// Méthodes |
/** |
* Fonction d'affichage par défaut |
*/ |
public function executerActionParDefaut() { |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel); |
$this->setSortie(self::RENDU_CORPS, '<p>En cours de réalisation...</p>', false); |
} |
} |
?> |
/trunk/interfaces/controleurs/Resultat.php |
---|
14,6 → 14,8 |
*/ |
class Resultat extends AppliControleur { |
private $referentiel = null; |
private $traitementId = null; |
private $resultatId = null; |
private $resultatDao = null; |
24,6 → 26,9 |
if (isset($_GET['id-r'])) { // id du resultat courant |
$this->resultatId = strtolower($_GET['id-r']); |
} |
if (isset($_GET['ref'])) { // code du projet courrant |
$this->referentiel = strtolower($_GET['ref']); |
} |
// Chargement des DAO nécessaires |
if (isset($this->resultatId)) { |
51,7 → 56,8 |
// Recherche d'info sur le résultat |
$infos = $this->resultatDao->getInfos($this->resultatId); |
if ($infos != false) { |
$donnees['resultat'] = $infos; |
$donnees['resultat'] = $infos; |
$this->traitementId = $infos['ce_traitement']; |
} else { |
$this->addMessage("L'identifiant de résultat n'est pas indexé dans la base de données."); |
} |
62,6 → 68,8 |
$donnees['messages'] = $this->getMessages(); |
$this->traiterEsperluette($donnees); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $donnees), false); |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel, $this->traitementId, $this->resultatId); |
} |
} |
?> |
/trunk/interfaces/controleurs/Referentiel.php |
---|
32,9 → 32,9 |
*/ |
public function __construct() { |
$meta = array('titre' => '', 'description' => '', 'tags' => ''); |
$sortie = array('metadonnees' => $meta, 'corps' => '', 'tete' => '', 'pied' => '', 'navigation' => ''); |
$sortie = array('metadonnees' => $meta, 'corps' => '', 'tete' => '', 'pied' => '', 'navigation' => '', 'menu' => ''); |
$url = new Url(Config::get('url_base_index')); |
self::$parametres = array( 'module' => 'Test', |
self::$parametres = array( 'module' => 'Accueil', |
'action' => 'executerActionParDefaut', |
'sortie' => $sortie, |
'url' => $url); |
95,6 → 95,13 |
} |
/** |
* Retourne le module courrant. |
*/ |
public static function getModule() { |
return self::$parametres['module']; |
} |
/** |
* Retourne le titre du contenu de l'application. |
*/ |
public static function getMetaTitre() { |
160,6 → 167,17 |
} |
/** |
* Retourne le menu de l'application. |
*/ |
public static function getContenuMenu() { |
$sortie = self::$parametres['sortie']['menu']; |
if (Config::get('sortie_encodage') != Config::get('appli_encodage')) { |
$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage')); |
} |
return $sortie; |
} |
/** |
* Retourne les chronos pris dans l'appli |
*/ |
public static function getChrono() { |
/trunk/interfaces/controleurs/Accueil.php |
---|
New file |
0,0 → 1,90 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe Controleur du module Accueil. |
* Affichage les infos sur l'ensemble des référentiels disponibles. |
* |
* @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 Accueil extends AppliControleur { |
private $referentiel = null; |
private $referentielDao = null; |
public function __construct() { |
parent::__construct(); |
// Récupération de paramêtres |
if (isset($_GET['ref'])) { // code du projet courrant |
$this->referentiel = strtolower(strip_tags($_GET['ref'])); |
} |
// Chargement des DAO nécessaires |
$this->referentielDao = new ReferentielDao(); |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// Méthodes |
/** |
* Fonction d'affichage par défaut |
*/ |
public function executerActionParDefaut() { |
return $this->afficherAccueil(); |
} |
/** |
* Affiche la liste des référentiels |
*/ |
public function afficherAccueil() { |
$donnees = array(); |
$infos = $this->referentielDao->getReferentielsDispo(); |
if ($infos != false) { |
$referentiel = array(); |
foreach ($infos as $info) { |
$referentiel['nom'] = $info; |
$referentiel['url'] = $this->obtenirUrlDetailReferentiel($info); |
} |
$donnees['referentiels'][] = $referentiel; |
} else { |
$this->addMessage("Aucun référentiel n'est disponible."); |
} |
$donnees['messages'] = $this->getMessages(); |
$this->traiterEsperluette($donnees); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('accueil', $donnees), false); |
$this->construireFilAriane(); |
} |
/** |
* Affiche le détail d'un référentiel et la liste des actions possibles |
*/ |
public function afficherDetail() { |
$donnees = array(); |
// Traitement de l'info sur le code du référentiel |
if (isset($this->referentiel)) { |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel); |
$donnees['referentiel'] = $this->referentiel; |
$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel); |
$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel); |
$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel); |
} else { |
$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdnff)."); |
} |
$donnees['messages'] = $this->getMessages(); |
$this->traiterEsperluette($donnees); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false); |
} |
} |
?> |