Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 827 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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