Subversion Repositories eFlore/Projets.eflore-projets

Rev

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