/trunk/applications/saisie/controleurs/Individu.php |
---|
41,6 → 41,10 |
public function getFormulaireSaisieIndividu($donnees = array()) { |
if($donnees == array()) { |
$donnees['individu_nom'] = ''; |
} |
$donnees['id_station'] = $_GET['id_station']; |
if(!isset($donnees['id_espece'])) { |
53,8 → 57,21 |
return $this->getVue('formulaires/individu_saisie',$donnees); |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// METHODES GENERIQUES |
public function afficherFormulaireModificationIndividu($donnees = array()) { |
$individu_dao = new IndividuDao(); |
$id_individu = $_GET['id_individu']; |
$donnees['infos_individu'] = $individu_dao->getInformationsIndividu($id_individu); |
$donnees['id_station'] = $_GET['id_station']; |
$donnees['id_espece'] = $_GET['id_espece']; |
$espece_dao = new EspeceDao(); |
$donnees['informations_espece'] = $espece_dao->getInformationsEspece($donnees['id_espece']); |
$this->setSortie(self::RENDU_CORPS,$this->getVue('formulaires/individu_modification',$donnees)); |
} |
public function afficherListeIndividu() { |
$this->setSortie(self::RENDU_CORPS, $this->getListeIndividu()); |
82,6 → 99,10 |
$observation = new Observation(); |
if(trim($individu['nom']) == '') { |
$individu['nom'] = 'Individu sans nom'; |
} |
$individu['observations'] = $observation->getListeObservationsPourIndividu($individu['id_individu']); |
$individu['url'] = Liens::getUrlConsultationFicheIndividu($id_station, $id_espece, $individu['id_individu']); |
} |
94,7 → 115,7 |
return $this->getVue('listes/evenement_liste', $donnees); |
} |
public function afficherInformationsIndividu() { |
public function afficherInformationsIndividu($donnees = array()) { |
$id_individu = $_GET['id_individu']; |
$id_espece = $_GET['id_espece']; |
113,8 → 134,21 |
// METHODES DE VALIDATION DE FORMULAIRE |
public function validerFormulaireSaisieIndividu() { |
$valeurs_verifiees = $this->collecterValeursFormulaireSaisieIndividu(); |
$valeurs_collectees = $this->collecterValeursFormulaireSaisieIndividu(); |
$verification_ou_erreurs = $this->verifierValeursIndividu($valeurs_collectees); |
if($verification_ou_erreurs !== true) { |
$donnees = $valeurs_collectees; |
$donnees['erreurs'] = $verification_ou_erreurs; |
$this->afficherFormulaireSaisieIndividu($donnees); |
return; |
} |
$valeurs_verifiees = $valeurs_collectees; |
$individu_dao = new IndividuDao(); |
$retour_ajout_individu = $individu_dao->ajouterIndividu($valeurs_verifiees); |
122,7 → 156,7 |
$this->afficherListeIndividu(); |
$this->setNavigation(); |
} else { |
$this->afficherFormulaireSaisieIndividu(); |
$this->afficherFormulaireSaisieIndividu($donnees); |
} |
} |
141,12 → 175,89 |
$valeurs_verifiees['id_espece'] = $_POST['espece']; |
$valeurs_verifiees['individu_nom'] = $_POST['individu_nom']; |
//TODO: verifier valeurs plus complètement |
return $valeurs_verifiees; |
} |
private function collecterValeursFormulaireModificationIndividu() { |
$valeurs_verifiees['id_station'] = $_POST['id_station']; |
$valeurs_verifiees['id_espece'] = $_POST['id_espece']; |
$valeurs_verifiees['individu_nom'] = $_POST['individu_nom']; |
$valeurs_verifiees['id_individu'] = $_POST['id_individu']; |
return $valeurs_verifiees; |
} |
private function verifierValeursIndividu($valeurs_a_verifier) { |
$erreurs = array(); |
foreach($valeurs_a_verifier as $champ => $valeur) { |
if(trim($valeur) == '') { |
$erreurs[$champ] .= ' Ce champ ne peut pas être vide'; |
} |
} |
if(!empty($erreurs)) { |
return $erreurs; |
} |
return true; |
} |
public function validerFormulaireModificationIndividu() { |
$valeurs_collectees = $this->collecterValeursFormulaireModificationIndividu(); |
$verification_ou_erreurs = $this->verifierValeursIndividu($valeurs_collectees); |
if($verification_ou_erreurs !== true) { |
$donnees = $valeurs_collectees; |
$donnees['erreurs'] = $verification_ou_erreurs; |
$this->afficherFormulaireModificationIndividu($donnees); |
return; |
} |
$valeurs_verifiees = $valeurs_collectees; |
$id_individu = $valeurs_collectees['id_individu']; |
$individu_dao = new IndividuDao(); |
$retour_modification_individu = $individu_dao->modifierIndividu($id_individu, $valeurs_verifiees); |
$this->afficherInformationsIndividu(); |
} |
public function supprimerIndividu() { |
$id_individu_a_supprimer = $_POST['id_individu_a_supprimer']; |
$observations_individu = $this->getObservationsPourIndividu($id_individu_a_supprimer); |
if(count($observations_individu) > 0) { |
$donnees = array(); |
$donnees['erreurs'] = 'Impossible de supprimer un individu pour lequel on a saisi des données'; |
$this->id_individu_en_cours = $id_individu_a_supprimer; |
$this->afficherInformationsIndividu($donnees); |
} else { |
$individu_dao = new IndividuDao(); |
$individu_dao->supprimerIndividu($id_individu_a_supprimer); |
$gestion_station = new Station(); |
$_GET['id_station'] = $_POST['id_station']; |
$this->setSortie(self::RENDU_CORPS, $gestion_station->getFicheInformationsStation()); |
} |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// METHODES POUR FABRIQUER LE MENU |
public function setNavigation() { |
/trunk/applications/saisie/controleurs/AppControleur.php |
---|
105,6 → 105,11 |
self::$utilisateur = new $classe_utilisateur(); |
if(self::$utilisateur->estAdmin()) { |
if($nouvelle_identite = self::changementIdentiteDemande()) { |
self::getUtilisateur()->setIdentite($nouvelle_identite); |
} |
self::afficherBarreAdmin(); |
} |
} |
124,6 → 129,15 |
return self::getUtilisateur()->estIdentifie(); |
} |
public static function changementIdentiteDemande() { |
if(self::getUtilisateur()->estAdmin() && isset($_POST['identite_utilisateur'])) { |
return $_POST['identite_utilisateur']; |
} |
return false; |
} |
private static function afficherFormulaireIdentification() { |
$donnees['formulaire_identification'] = self::getUtilisateur()->getFormulaireidentification(); |
/trunk/applications/saisie/controleurs/Export.php |
---|
New file |
0,0 → 1,88 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe de gestion des epeces. |
* |
* @package Collection |
* @category Php 5.2 |
* @author Aurélien PERONNET <aurelien@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: Espece.php 152 2010-09-06 16:19:12Z jpm $ |
*/ |
class Export extends aControleur { |
public function __construct() { |
parent::__construct(); |
$this->initialiser(); |
} |
public function executerActionParDefaut() { |
return $this->envoyerFichierCSVExportObservation(); |
} |
public function initialiser() { |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// METHODES D'AFFICHAGE DE FORMULAIRE |
public function envoyerFichierCSVExportObservation() { |
$donnees = array(); |
$export_dao = new ExportDao(); |
$export = $export_dao->getExportObservations(); |
$csv = $this->convertirTableauAssocVersCSV($export); |
$this->envoyerFichier($csv); |
} |
public function convertirTableauAssocVersCSV($tableau) { |
$csv = ''; |
$colonnes = array_keys($tableau[0]); |
$csv .= implode(';',$colonnes).";\n"; |
foreach($tableau as $elements) { |
$csv .= implode(';',$elements).";\n"; |
} |
return $csv; |
} |
public function envoyerFichier($contenu) { |
$nom_fichier = "observations_export.csv"; |
$chemin_fichier = Config::get('chemin_fichiers_temp').'/'.$nom_fichier; |
file_put_contents($chemin_fichier, $contenu); |
$contenu = file_get_contents($chemin_fichier); |
$taille_fichier = filesize($chemin_fichier); |
unlink($chemin_fichier); |
ini_set('zlib.output_compression','Off'); |
header('Pragma: public'); |
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); |
header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0'); |
header('Content-Tranfer-Encoding: none'); |
header('Content-Type: application/octetstream; name="'.$nom_fichier.'"'); |
header('Content-Disposition: attachement; filename="'.$nom_fichier.'"'); |
header('Content-Length: '.$taille_fichier); |
echo $contenu; |
exit(); |
} |
} |
?> |
/trunk/applications/saisie/controleurs/Station.php |
---|
162,6 → 162,28 |
} |
public function supprimerStation() { |
$id_station_a_supprimer = $_POST['id_station_a_supprimer']; |
$individus_station = $this->getIndividusStation($id_station_a_supprimer); |
if(count($individus_station) > 0) { |
$donnees = array(); |
$donnees['erreurs'] = 'Impossible de supprimer une station qui contient des données'; |
$this->id_station_en_cours = $id_station_a_supprimer; |
$this->afficherInformationsStation($donnees); |
} else { |
$station_dao = new StationDao(); |
$retour_suppression = $station_dao->supprimerStation($id_station_a_supprimer); |
$this->setNavigation(); |
$this->executerActionParDefaut(); |
} |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// METHODES D'AFFICHAGES D'INFORMATION |
public function afficherlisteStation($param = null) { |
172,18 → 194,27 |
$this->setSortie(self::RENDU_CORPS, $this->getVue('listes/station_liste', $donnees)); |
} |
public function afficherInformationsStation() { |
public function getFicheInformationsStation($donnees = array()) { |
$id_station = $this->id_station_en_cours; |
$donnees['id_station'] = $id_station; |
$donnees['infos_station'] = $this->getInformationsStation($id_station); |
$donnees['milieux'] = $this->getListeMilieux(); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiches/station_fiche', $donnees)); |
return $this->getVue('fiches/station_fiche', $donnees); |
} |
public function afficherInformationsStation($donnees = array()) { |
$infos_station = $this->getFicheInformationsStation($donnees); |
$this->setSortie(self::RENDU_CORPS, $infos_station); |
} |
// +---------------------------------------------------------------------------------------------------------------+ |
// METHODES POUR FABRIQUER LE MENU |
public function construireMenuNavigation($id_espece_en_cours = null) { |
/trunk/applications/saisie/controleurs/DrupalUtilisateur.php |
---|
1,10 → 1,16 |
<?php |
class DrupalUtilisateur extends Utilisateur { |
public function getNomUtilisateurPourId($id) { |
return db_result(db_query("SELECT name FROM {users} WHERE uid = %d", $id)); |
} |
public function getIdUtilisateurPourNom($nom) { |
return db_result(db_query("SELECT uid FROM {users} WHERE name = '%s'", $nom)); |
} |
public function getIdentifiantNumerique() { |
return $GLOBALS['user']->uid; |
} |
public function getEmail() { |
20,7 → 26,7 |
} |
public function estAdmin() { |
return in_array('3',array_keys($GLOBALS['user']->roles)); |
return in_array('3',array_keys($GLOBALS['user']->roles)) || in_array('3',array_keys($GLOBALS['user']->roles)) ; |
} |
public function estIdentifie() { |
/trunk/applications/saisie/controleurs/Liens.php |
---|
101,6 → 101,12 |
return 'http://'.$_SERVER['SERVER_NAME'].str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin())).'/'; |
} |
public static function getUrlDefaut() { |
$params = array(); |
return self::construireUrl($params); |
} |
public static function getUrlConsultationFicheStation($id_station) { |
$params = array( |
147,6 → 153,15 |
return self::construireUrl($params); |
} |
public static function getUrlFormulaireSuppressionStation() { |
$params = array( |
'module' => 'Station', |
'action' => 'supprimerStation' |
); |
return self::construireUrl($params); |
} |
public static function getUrlFormulaireAjoutEspece($id_station) { |
$params = array( |
206,6 → 221,40 |
return self::construireUrl($params); |
} |
public static function getUrlFormulaireModificationIndividu($id_station, $id_espece, $id_individu) { |
$params = array( |
'module' => 'Individu', |
'action' => 'afficherFormulaireModificationIndividu', |
'id_station' => $id_station, |
'id_espece' => $id_espece, |
'id_individu' => $id_individu |
); |
return self::construireUrl($params); |
} |
public static function getUrlValidationFormulaireModificationIndividu($id_station, $id_espece, $id_individu) { |
$params = array( |
'module' => 'Individu', |
'action' => 'validerFormulaireModificationIndividu', |
'id_station' => $id_station, |
'id_espece' => $id_espece, |
'id_individu' => $id_individu |
); |
return self::construireUrl($params); |
} |
public static function getUrlSuppressionIndividu($id_station, $id_espece, $id_individu) { |
$params = array( |
'module' => 'Individu', |
'action' => 'supprimerIndividu', |
'id_station' => $id_station |
); |
return self::construireUrl($params); |
} |
public static function getUrlConsultationEspeceStation($id_station, $id_espece, $annee = null) { |
if($annee == null) { |
259,6 → 308,21 |
return self::construireUrl($params); |
} |
public static function getUrlExportDonneesObservations() { |
return Config::get('url_jrest').'OdsExport/FichierExportObservationCSV/'; |
} |
public static function getUrlExportDonneesObservationsPourUtilisateur() { |
$params = array( |
'module' => 'Export', |
'action' => 'envoyerFichierCSVExportObservation' |
); |
return self::construireUrl($params); |
} |
public static function renvoyerStylesInclus() { |
$styles = ''; |
272,11 → 336,18 |
public static function renvoyerScriptsInclus() { |
$scripts = ''; |
$scripts = '<script type="text/javascript" language="javascript">'. |
' var urlBaseJrest = "'.Config::get('url_jrest').'"; '. |
'</script>'; |
$scripts .= '<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>'; |
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery-1.4.4.min.js"></script>'; |
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery_ui/jquery-ui-1.8.6.custom.min.js"></script>'; |
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'saisie.js"></script>'; |
if(AppControleur::getUtilisateur()->estAdmin()) { |
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'saisie_admin.js"></script>'; |
} |
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery_ui/jquery.ui.datepicker.js"></script>'; |
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery_ui/jquery.ui.datepicker-fr.js"></script>'; |
/trunk/applications/saisie/controleurs/Utilisateur.php |
---|
2,8 → 2,15 |
abstract class Utilisateur extends aControleur { |
public function setIdentite($identite) { |
$_SESSION['ods_saisie']['identite'] = $identite; |
$id_identite = $this->getIdUtilisateurPourNom($identite); |
if($id_identite) { |
$_SESSION['ods_saisie']['identite'] = $id_identite; |
} else { |
$_SESSION['ods_saisie']['identite'] = $this->getIdentifiantNumerique(); |
} |
} |
public function getIdentite() { |
if($this->estAdmin()) { |
16,6 → 23,25 |
} |
} |
public function getIdentiteNom() { |
if($this->estAdmin()) { |
if(!isset($_SESSION['ods_saisie']['identite']) || $_SESSION['ods_saisie']['identite'] == '') { |
return $this->getNom(); |
} |
return $this->getNomUtilisateurPourId($_SESSION['ods_saisie']['identite']); |
} else { |
return $this->getNom(); |
} |
} |
public function getNomUtilisateurPourId($id) { |
return ''; |
} |
public function getIdUtilisateurPourNom($nom) { |
return 0; |
} |
public function getIdentifiantNumerique() { |
return 0; |
} |