Subversion Repositories eFlore/Projets.eflore-projets

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
827 raphael 1
<?php
2
/**
3
 * @category    PHP 5.2
4
 * @package     Framework
5
 * @author	    Raphaël Droz <raphael@tela-botanica.org>
6
 * @copyright   Copyright (c) 2013, Tela Botanica (accueil@tela-botanica.org)
7
 * @license     http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
8
 * @license     http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
9
 */
10
 
11
/*
12
 - bootstrap le framework
13
 - bootstrap une fiche
14
 - puis, pour un ou plusieurs onglet (automatique ou manuellement),
15
 obtient les données correspondante.
16
 
17
 L'objectif est de pouvoir générer un flux de données exhaustive pour une Fiche donnée
18
 tout en restant assez indépendant des (lourds) appels à l'API.
19
 Une finalité est de pouvoir s'orienter vers un cron pour index Sphinx, tout en
20
 permettant d'identifier les limites de l'API.
21
*/
22
 
23
 
24
define('_DIR_FRAMEWORK', '/home/raphael/TBF/trunk/framework');
25
define('_DIR_CONSULT', '/home/raphael/eflore/consultation');
26
define('_DIR_SERVICES', '/home/raphael/eflore/projets/services/modules/0.1');
27
 
28
//require_once __DIR__ . '/../../framework.php';
29
set_include_path(_DIR_FRAMEWORK . PATH_SEPARATOR .
30
				 _DIR_CONSULT . '/controleurs' . PATH_SEPARATOR .
31
				 _DIR_CONSULT . '/bibliotheque' . PATH_SEPARATOR .
32
				 _DIR_CONSULT . '/modules/fiche' . PATH_SEPARATOR .
33
				 _DIR_CONSULT . '/metier/api_0.1' . PATH_SEPARATOR .
34
				 _DIR_SERVICES . '/commun' . PATH_SEPARATOR .
35
				 _DIR_SERVICES . '/bdtfx' . PATH_SEPARATOR .
36
				 _DIR_CONSULT . '/modules/fiche/formateurs' . PATH_SEPARATOR .
37
				 get_include_path());
38
spl_autoload_extensions('.php');
39
spl_autoload_register();
40
 
41
/*require_once _DIR_FRAMEWORK . '/Controleur.php';
42
require_once _DIR_CONSULT . '/controleurs/AppControleur.php';
43
require_once _DIR_CONSULT . '/bibliotheque/AppUrls.php';
44
require_once _DIR_CONSULT . '/controleurs/aControleur.php';
45
require_once _DIR_CONSULT . '/bibliotheque/Conteneur.php';
46
require_once _DIR_CONSULT . '/modules/fiche/Fiche.php';*/
47
 
48
 
49
// require_once _DIR_CONSULT . '/modules/fiche/Fiche.php'
50
require_once('Framework.php');
51
Framework::setCheminAppli(__FILE__);
52
Framework::setInfoAppli(Config::get('info'));
53
// idéalement
54
// $a = new Fiche(new Conteneur(array()));
55
 
56
 
57
require_once('Config.php');
58
require_once('Controleur.php');
59
require_once('aControleur.php');
60
require_once('AppControleur.php');
61
require_once('AppUrls.php');
62
require_once('Conteneur.php');
63
 
64
AppControleur::initialiser();
65
 
66
require_once('Commun.php');
67
require_once('CommunNomsTaxons.php');
68
require_once('Eflore.php');
69
require_once('Taxons.php');
70
require_once('Noms.php');
71
 
72
require_once('NomCourant.php');
73
require_once('Nom.php');
74
 
75
Config::charger(_DIR_FRAMEWORK . '/config.ini');
76
Config::charger(_DIR_CONSULT . '/configurations/config.ini');
77
 
78
 
79
require_once('Fiche.php');
80
$a = new Fiche();
81
$_GET['num_nom'] = 141;
82
$_GET['referentiel'] = 'bdtfx';
83
 
84
$a->initialiser();
85
 
86
$classes = array(
87
	// 'illustrations',
88
	// 'repartition',
89
	// 'ecologie', // fait main (mais peu utile)
90
 
91
	// 'nomenclature', // TODO
92
	// 'description', // fait main
93
	// 'ethnobotanique', // fait main
94
	// 'bibliographie', // fait main
95
	// 'statut', // TODO
96
);
97
 
98
// pour nomenclature
99
require_once('MetaDonnees.php');
100
require_once('Wikini.php');
101
 
102
// pour description
103
require_once('Textes.php');
104
require_once('Informations.php');
105
 
106
// pour ethnobotanique
107
require_once('NomsVernaculaires.php');
108
 
109
// pour bibliographie
110
require_once('BiblioBota.php');
111
 
112
// pour statuts
113
require_once('Statuts.php');
114
 
115
// pour ecologie
838 raphael 116
require_once('Informations.php');
827 raphael 117
require_once('Graphiques.php');
118
require_once('Syntaxons.php');
119
 
120
// pour repartition
121
require_once('Cartes.php'); // TODO
122
 
123
// way 1
124
foreach($classes as $c) {
125
	$a->onglet = $c;
126
	$b = $a->obtenirDonnees();
127
	var_dump($b);die();
128
}
129
 
130
 
131
// non-nécessaire si l'on peut récupérer le conteneur
132
// initialisé par new Fiche()
133
// $conteneur = new Conteneur($a->parametres);
134
 
135
// description
136
$onglet = new Description($a->conteneur);
137
$onglet->obtenirDonnees();
138
$onglet->getCoste();
139
echo implode('; ', $onglet->donnees['wikini']['description']);
140
echo implode('; ', $onglet->donnees['coste']['description']);
141
 
142
// bibliographie
143
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
144
$onglet = new Bibliographie($a->conteneur);
145
$onglet->obtenirDonnees();
146
echo implode('; ', $onglet->donnees['flores']['liste_flores']);
147
echo implode('; ', $onglet->donnees['bibliobota']['references']);
148
 
149
// ethnobota
150
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
151
$onglet = new Ethnobotanique($a->conteneur);
152
$onglet->obtenirDonnees();
153
echo implode('; ', array_map(function($v) { return $v['nom_vernaculaire']; }, $onglet->donnees['nvjfl']['noms'])) . '; ' .
154
	implode('; ', array_map(function($v) { return $v['nom_vernaculaire']; }, $onglet->donnees['nvps']['noms']));
155
 
156
// ecologie
157
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
158
$onglet = new Ecologie($a->conteneur);
159
// $onglet->obtenirDonnees(); // slow !
160
// var_dump($onglet->donnees['baseflor']['legende']);
161
 
162
 
163
 
164
/*
165
  API: TODO:
166
  - Chaque service de /consultation/formateur/ doit définir en en-tête:
167
  * référentiels supportés
168
  * fichiers/directives de configuration nécessaire
169
  * class utilisées (namespace "use")
170
 
171
  - obtenirDonnees() doit prendre ses paramètres [optionnels] par argument, sans compter
172
  sur l'instanciation et la définition d'attributs
173
  - obtenirDonnees() doit retourner les valeurs générées
174
  - obtenirDonnees() ne doit pas traiter le formattage des résultats (getBloc() oui)
175
  - si $this->données reste nécessaire pour une quelconque raison, celui-ci doit être public
176
 
177
  - pour Fiche.php
178
  - onglets ne doit plus être un attribut (pas même public)
179
  - executerFiche(), executerOnglet() et obtenirDonnees() doivent prendre un $onglet comme paramètre
180
  - $parametre et $conteneur doivent être "public"
181
 
182
 */