Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 838 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 838 Rev 839
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');
-
 
117
require_once('Graphiques.php');
116
require_once('Graphiques.php');
118
require_once('Syntaxons.php');
117
require_once('Syntaxons.php');
119
 
118
 
120
// pour repartition
119
// pour repartition
121
require_once('Cartes.php'); // TODO
120
require_once('Cartes.php'); // TODO
122
 
121
 
123
// way 1
122
// way 1
124
foreach($classes as $c) {
123
foreach($classes as $c) {
125
	$a->onglet = $c;
124
	$a->onglet = $c;
126
	$b = $a->obtenirDonnees();
125
	$b = $a->obtenirDonnees();
127
	var_dump($b);die();
126
	var_dump($b);die();
128
}
127
}
129
 
128
 
130
 
129
 
131
// non-nécessaire si l'on peut récupérer le conteneur
130
// non-nécessaire si l'on peut récupérer le conteneur
132
// initialisé par new Fiche()
131
// initialisé par new Fiche()
133
// $conteneur = new Conteneur($a->parametres);
132
// $conteneur = new Conteneur($a->parametres);
134
 
133
 
135
// description
134
// description
136
$onglet = new Description($a->conteneur);
135
$onglet = new Description($a->conteneur);
137
$onglet->obtenirDonnees();
136
$onglet->obtenirDonnees();
138
$onglet->getCoste();
137
$onglet->getCoste();
139
echo implode('; ', $onglet->donnees['wikini']['description']);
138
echo implode('; ', $onglet->donnees['wikini']['description']);
140
echo implode('; ', $onglet->donnees['coste']['description']);
139
echo implode('; ', $onglet->donnees['coste']['description']);
141
 
140
 
142
// bibliographie
141
// bibliographie
143
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
142
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
144
$onglet = new Bibliographie($a->conteneur);
143
$onglet = new Bibliographie($a->conteneur);
145
$onglet->obtenirDonnees();
144
$onglet->obtenirDonnees();
146
echo implode('; ', $onglet->donnees['flores']['liste_flores']);
145
echo implode('; ', $onglet->donnees['flores']['liste_flores']);
147
echo implode('; ', $onglet->donnees['bibliobota']['references']);
146
echo implode('; ', $onglet->donnees['bibliobota']['references']);
148
 
147
 
149
// ethnobota
148
// ethnobota
150
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
149
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
151
$onglet = new Ethnobotanique($a->conteneur);
150
$onglet = new Ethnobotanique($a->conteneur);
152
$onglet->obtenirDonnees();
151
$onglet->obtenirDonnees();
153
echo implode('; ', array_map(function($v) { return $v['nom_vernaculaire']; }, $onglet->donnees['nvjfl']['noms'])) . '; ' .
152
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']));
153
	implode('; ', array_map(function($v) { return $v['nom_vernaculaire']; }, $onglet->donnees['nvps']['noms']));
155
 
154
 
156
// ecologie
155
// ecologie
157
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
156
Config::charger(_DIR_CONSULT . '/configurations/bdtfx.ini');
158
$onglet = new Ecologie($a->conteneur);
157
$onglet = new Ecologie($a->conteneur);
159
// $onglet->obtenirDonnees(); // slow !
158
// $onglet->obtenirDonnees(); // slow !
160
// var_dump($onglet->donnees['baseflor']['legende']);
159
// var_dump($onglet->donnees['baseflor']['legende']);
161
 
160
 
162
 
161
 
163
 
162
 
164
/*
163
/*
165
  API: TODO:
164
  API: TODO:
166
  - Chaque service de /consultation/formateur/ doit définir en en-tête:
165
  - Chaque service de /consultation/formateur/ doit définir en en-tête:
167
  * référentiels supportés
166
  * référentiels supportés
168
  * fichiers/directives de configuration nécessaire
167
  * fichiers/directives de configuration nécessaire
169
  * class utilisées (namespace "use")
168
  * class utilisées (namespace "use")
170
 
169
 
171
  - obtenirDonnees() doit prendre ses paramètres [optionnels] par argument, sans compter
170
  - obtenirDonnees() doit prendre ses paramètres [optionnels] par argument, sans compter
172
  sur l'instanciation et la définition d'attributs
171
  sur l'instanciation et la définition d'attributs
173
  - obtenirDonnees() doit retourner les valeurs générées
172
  - obtenirDonnees() doit retourner les valeurs générées
174
  - obtenirDonnees() ne doit pas traiter le formattage des résultats (getBloc() oui)
173
  - 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
174
  - si $this->données reste nécessaire pour une quelconque raison, celui-ci doit être public
176
 
175
 
177
  - pour Fiche.php
176
  - pour Fiche.php
178
  - onglets ne doit plus être un attribut (pas même public)
177
  - onglets ne doit plus être un attribut (pas même public)
179
  - executerFiche(), executerOnglet() et obtenirDonnees() doivent prendre un $onglet comme paramètre
178
  - executerFiche(), executerOnglet() et obtenirDonnees() doivent prendre un $onglet comme paramètre
180
  - $parametre et $conteneur doivent être "public"
179
  - $parametre et $conteneur doivent être "public"
181
 
180
 
182
 */
181
 */