343 |
jpm |
1 |
<?php
|
|
|
2 |
// Encodage : UTF-8
|
|
|
3 |
// +-------------------------------------------------------------------------------------------------------------------+
|
|
|
4 |
/* Importation des fichiers excel de Bonnier pour créer une version HTML pour PDA.
|
|
|
5 |
* Utilisation au préalable des utillitaire de traitement de fichier mdb sous Unix (voir ci après)
|
|
|
6 |
*
|
|
|
7 |
* Pré-requis :
|
|
|
8 |
* 1. Installer le paquet pour Perl nommé ParseExcel : urpmi perl-spreadsheet-parseexcel
|
|
|
9 |
* 2. Télécharger les fichiers Excel de Bonnier : http://www.tela-botanica.org/projets/74/documents/16211
|
|
|
10 |
* 3. Créer un dossier où vous dézipperez l'archive des fichiers Excel
|
|
|
11 |
* 4. Copier dans ce dossier les fichier xls2sql.pl et generer_sql.sh que vous trouverez dans le dossier shell de ce module
|
|
|
12 |
* 5. Donner les droits d'execution au fichier generer_sql.sh et lancer le : ./generer_sql.sh
|
|
|
13 |
* 6. Vous devez obtenir un fichier SQL par fichier Excel.
|
|
|
14 |
*
|
|
|
15 |
* Pour lancer ce script fichier par fichier :
|
|
|
16 |
* 1. Ouvrir une console et se positionner dans le dossier "scripts"
|
|
|
17 |
* 2. Pour charger le 1er fichier Excel, taper la commande : /opt/lampp/bin/php script.php bonnier -p bonnier -a charger -table renonculacees
|
|
|
18 |
* 3. Pour generer le html issu du chargement precedent :
|
|
|
19 |
* /opt/lampp/bin/php script.php bonnier -p bonnier -a html -dossier "menus/001-Renonculacees" -table renonculacees
|
|
|
20 |
*
|
|
|
21 |
* // Auteur original :
|
|
|
22 |
* @author David DELON <david@clapas.net>
|
|
|
23 |
* @copyright David DELON 2009
|
|
|
24 |
* @link http://www.tela-botanica.org/wikini/eflore
|
|
|
25 |
* @licence GPL v3 & CeCILL v2
|
|
|
26 |
* @version $Id$
|
|
|
27 |
*/
|
|
|
28 |
// +-------------------------------------------------------------------------------------------------------------------+
|
|
|
29 |
class Bonnier extends ScriptCommandeEflore {
|
|
|
30 |
|
|
|
31 |
/**
|
|
|
32 |
* Paramêtres disponible pour la ligne de commande
|
|
|
33 |
* le tableau se construit de la forme suivnate :
|
|
|
34 |
* - clé = nom du paramêtre '-foo'
|
|
|
35 |
* - value = contient un nouveau tableau composé de cette façaon :
|
|
|
36 |
* - booléen: true si le paramêtre est obligatoire
|
|
|
37 |
* - booléen ou var : true si le paramêtre nécessite un valeur à sa suite ou la valeur par défaut
|
|
|
38 |
* - string: description du contenu du paramêtre
|
|
|
39 |
* Les paramêtres optionels devraient être déclaré à la fin du tableau.
|
|
|
40 |
* Le dernier parametre du tableau peut avoir la valeur '...',
|
|
|
41 |
* il contiendra alors l'ensemble des paramêtres suivant trouvés sur la ligne de commande.
|
|
|
42 |
* @var array
|
|
|
43 |
*/
|
|
|
44 |
public $parametres = array( '-table' => array(true, true, "Nom de la table où seront stockées les données d'une famille"),
|
|
|
45 |
'-dossier' => array(true, true, "Dossier où sont générés les fichiers html pour la table"));
|
|
|
46 |
|
|
|
47 |
public function executer() {
|
|
|
48 |
|
|
|
49 |
error_reporting(E_ALL & ~E_DEPRECATED );
|
|
|
50 |
|
|
|
51 |
$table = $this->getParam('table');
|
|
|
52 |
$dossier = $this->getParam('dossier');
|
|
|
53 |
|
|
|
54 |
@mkdir($this->getIni('chemin_fichier_sortie').$dossier);
|
|
|
55 |
|
|
|
56 |
$cmd = $this->getParam('a');
|
|
|
57 |
switch ($cmd) {
|
|
|
58 |
// chargement des fichiers sql issus de la transformation xls dans la base de donnee, une table par fichir sql, 2 tables par
|
|
|
59 |
// familles : texte (navigation / clef) et plantes : description des plantes.
|
|
|
60 |
case 'charger' :
|
|
|
61 |
$this->creerTableBonnier($this->version, $table);
|
|
|
62 |
$this->chargerDonnees($table);
|
|
|
63 |
break;
|
|
|
64 |
case 'html' :
|
|
|
65 |
// tranformation sql vers html : pour la famille considerée : parcours de l'ensemble de ses clef et generation html pour
|
|
|
66 |
// les feuilles.
|
|
|
67 |
|
|
|
68 |
$this->realiserHtml($dossier, $table);
|
|
|
69 |
break;
|
|
|
70 |
default :
|
|
|
71 |
trigger_error('Erreur : la commande "'.$cmd.'" n\'existe pas!'."\n", E_USER_ERROR);
|
|
|
72 |
}
|
|
|
73 |
}
|
|
|
74 |
|
|
|
75 |
private function realiserHtml($dossier, $table) {
|
|
|
76 |
// Parcours de l'ensemble des données ? ou famille par famille ?
|
|
|
77 |
|
|
|
78 |
// on charge plante et texte dans des tableaux
|
|
|
79 |
|
|
|
80 |
$this->type_donnee = $table.'_texte';
|
|
|
81 |
|
|
|
82 |
$requete = 'SELECT * '.
|
|
|
83 |
'FROM '.$this->projet_nom.'_v'.$this->version.'_'.$this->sous_version.'_'.$this->type_donnee.' '.
|
|
|
84 |
'ORDER BY uid';
|
|
|
85 |
|
|
|
86 |
$lignesTexte = $this->retournerDonneesRequete($requete);
|
|
|
87 |
|
|
|
88 |
// Analyse des données
|
|
|
89 |
echo "Analyse des données : ".$this->type_donnee."\n";
|
|
|
90 |
foreach ($lignesTexte as $ligneTexte) {
|
|
|
91 |
if (!isset($aso_lignes[$ligneTexte['identifiant']])) {
|
|
|
92 |
$aso_lignes[$ligneTexte['identifiant']] = $ligneTexte;
|
|
|
93 |
} else {
|
|
|
94 |
echo "identifiant en double : ".$ligneTexte['identifiant']."\n";
|
|
|
95 |
}
|
|
|
96 |
}
|
|
|
97 |
|
|
|
98 |
$this->type_donnee = $table.'_plante';
|
|
|
99 |
|
|
|
100 |
$requete = 'SELECT * '.
|
|
|
101 |
'FROM '.$this->projet_nom.'_v'.$this->version.'_'.$this->sous_version.'_'.$this->type_donnee.' '.
|
|
|
102 |
'ORDER BY uid';
|
|
|
103 |
|
|
|
104 |
$lignesPlante = $this->retournerDonneesRequete($requete);
|
|
|
105 |
|
|
|
106 |
foreach ($lignesPlante as $lignePlante) {
|
|
|
107 |
if (!isset($aso_lignes[$lignePlante['identifiant']])) {
|
|
|
108 |
$aso_lignes[$lignePlante['identifiant']] = $lignePlante;
|
|
|
109 |
} else {
|
|
|
110 |
echo "identifiant en double : ".$lignePlante['identifiant']."\n";
|
|
|
111 |
}
|
|
|
112 |
}
|
|
|
113 |
|
|
|
114 |
//print_r($aso_lignes_texte[$lignesTexte[0]['identifiant']] ['titre']);
|
|
|
115 |
|
|
|
116 |
// $ariane : tableau des identifiants parcourus dans la branche
|
|
|
117 |
// $niveau : niveau dans l'arbre
|
|
|
118 |
|
|
|
119 |
$ariane = array();
|
|
|
120 |
$niveau = 0;
|
|
|
121 |
|
|
|
122 |
// Parcours de l'arbre des clefs depuis la racine
|
|
|
123 |
|
|
|
124 |
$this->genererHtmlTexte($lignesTexte[1]['identifiant'], $aso_lignes, $ariane, $niveau, $dossier);
|
|
|
125 |
}
|
|
|
126 |
|
|
|
127 |
|
|
|
128 |
// Generation des elements de navigation (clef)
|
|
|
129 |
|
|
|
130 |
private function genererHtmlTexte($identifiant, $lignesTexteIdentifiant, $ariane, $niveau, $dossier) {
|
|
|
131 |
|
|
|
132 |
|
|
|
133 |
$ariane[] = $identifiant;
|
|
|
134 |
$niveau++;
|
|
|
135 |
|
|
|
136 |
if (isset ($lignesTexteIdentifiant[$identifiant])) { // Si des identifiants sont en doubles
|
|
|
137 |
$ligneIdentifiant = $lignesTexteIdentifiant[$identifiant];
|
|
|
138 |
}
|
|
|
139 |
else {
|
|
|
140 |
// initialiser valeur par defaut indiquant une erreur
|
|
|
141 |
}
|
|
|
142 |
|
|
|
143 |
|
|
|
144 |
$f_html = fopen($this->getIni('chemin_fichier_sortie').$dossier.'/'.$identifiant.'.html', 'wb');
|
|
|
145 |
|
|
|
146 |
$html =
|
|
|
147 |
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n".
|
|
|
148 |
'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">'."\n".
|
|
|
149 |
'<head>'."\n".
|
|
|
150 |
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'."\n".
|
|
|
151 |
'<title>Flore BONNIER sur PDA</title>'."\n".
|
|
|
152 |
'<link rel="stylesheet" type="text/css" href="../../style/style640.css" media="screen" />'."\n".
|
|
|
153 |
'</head>'."\n";
|
|
|
154 |
|
|
|
155 |
$html .= '<body>'."\n";
|
|
|
156 |
$html .= '<div class="titre">'."\n";
|
|
|
157 |
$html .= '<p id="titre">';
|
|
|
158 |
if (isset($ligneIdentifiant)) {
|
|
|
159 |
$html .= $ligneIdentifiant['titre'];
|
|
|
160 |
}
|
|
|
161 |
$html .= '</p>'."\n";
|
|
|
162 |
$html .= '</div>'."\n";
|
|
|
163 |
// print "identifiant : ".$ligneIdentifiant['identifiant']."\n";
|
|
|
164 |
|
|
|
165 |
// Destinations
|
|
|
166 |
// Branche niveau inferieur
|
|
|
167 |
|
|
|
168 |
$html.='<div class="fenetreMenu">'."\n";
|
|
|
169 |
|
|
|
170 |
for ($i = 1; $i < 6; $i++) {
|
|
|
171 |
if (isset($ligneIdentifiant['texte_'.$i]) && $ligneIdentifiant['texte_'.$i] != "") {
|
|
|
172 |
$html .= '<div class="menu'.($i-1).'">'."\n";
|
|
|
173 |
$html .= '<a href="'.$ligneIdentifiant['destination_'.$i].'.html">';
|
|
|
174 |
$html .= $ligneIdentifiant['texte_'.$i];
|
|
|
175 |
$html .= '</a>'."\n";
|
|
|
176 |
$html .= '</div>'."\n";
|
|
|
177 |
}
|
|
|
178 |
}
|
|
|
179 |
|
|
|
180 |
$html .= '</div>'."\n";
|
|
|
181 |
$html .= '<div class="espace" style="top:518px;">'."\n";
|
|
|
182 |
$html .= '</div>'."\n";
|
|
|
183 |
$html .= '<div class="navigation">'."\n";
|
|
|
184 |
$html .= '<p id="navigation">'."\n";
|
|
|
185 |
|
|
|
186 |
|
|
|
187 |
// Navigation
|
|
|
188 |
|
|
|
189 |
for ($i = 0; $i < $niveau; $i++) {
|
|
|
190 |
if (($ariane[$i]) && $ariane[$i] != '') {
|
|
|
191 |
$html .= '<a href="'.$ariane[$i].'.html">';
|
|
|
192 |
if (isset ($lignesTexteIdentifiant[$ariane[$i]])) { // Si des identifiants sont en doubles
|
|
|
193 |
$html .= $lignesTexteIdentifiant[$ariane[$i]]['titre'];
|
|
|
194 |
}
|
|
|
195 |
$html .= '</a>'."\n";
|
|
|
196 |
}
|
|
|
197 |
}
|
|
|
198 |
|
|
|
199 |
$html .= '</p>'."\n";
|
|
|
200 |
$html .= '</div>'."\n";
|
|
|
201 |
|
|
|
202 |
$html .= '<div class="retour">'."\n";
|
|
|
203 |
$html .= '<p id="retour">'."\n";
|
|
|
204 |
|
|
|
205 |
// Retour niveau superieur
|
|
|
206 |
|
|
|
207 |
if (isset($ariane[$niveau - 2]) && $ariane[$niveau - 2] != '') {
|
|
|
208 |
$html .= '<a href="'.$ariane[$niveau - 2].'.html">';
|
|
|
209 |
$html .= $lignesTexteIdentifiant[$ariane[$niveau - 2]]['titre'];
|
|
|
210 |
$html .= '</a>'."\n";
|
|
|
211 |
}
|
|
|
212 |
|
|
|
213 |
$html .= '</p>'."\n";
|
|
|
214 |
$html .= '</div>'."\n";
|
|
|
215 |
|
|
|
216 |
|
|
|
217 |
$html .= '<div class="glossaire">'."\n";
|
|
|
218 |
$html .= '<p id="glossaire">'."\n";
|
|
|
219 |
$html .= '<a href="../000-general/glossaire0_640.html">'."\n";
|
|
|
220 |
$html .= 'Glossaire'."\n";
|
|
|
221 |
$html .= '</a>'."\n";
|
|
|
222 |
$html .= '</p></div><div class="text">'."\n";
|
|
|
223 |
$html .= '<p id="Text">'."\n";
|
|
|
224 |
$html .= '<a href="../000-general/accueil1_640.html">'."\n";
|
|
|
225 |
$html .= ' Top'."\n";
|
|
|
226 |
$html .= '</a>'."\n";
|
|
|
227 |
$html .= ' </p>'."\n";
|
|
|
228 |
$html .= '</div>'."\n";
|
|
|
229 |
|
|
|
230 |
$html .= '</body>'."\n";
|
|
|
231 |
$html .= '</html>'."\n";
|
|
|
232 |
|
|
|
233 |
fwrite($f_html, $html);
|
|
|
234 |
fclose($f_html);
|
|
|
235 |
|
|
|
236 |
// Ecriture des feuilles (description plantes)
|
|
|
237 |
|
|
|
238 |
for ($i = 1; $i < 6; $i++) {
|
|
|
239 |
if (isset($ligneIdentifiant['destination_'.$i]) && $ligneIdentifiant['destination_'.$i] != '') {
|
|
|
240 |
if (substr($ligneIdentifiant['destination_'.$i], 0, 1) == 'p') {
|
|
|
241 |
$this->genererHtmlPlante($ligneIdentifiant['destination_'.$i], $lignesTexteIdentifiant, $ariane, $niveau, $dossier);
|
|
|
242 |
} else {
|
|
|
243 |
$this->genererHtmlTexte($ligneIdentifiant['destination_'.$i], $lignesTexteIdentifiant, $ariane, $niveau, $dossier);
|
|
|
244 |
}
|
|
|
245 |
}
|
|
|
246 |
}
|
|
|
247 |
}
|
|
|
248 |
|
|
|
249 |
// Plante
|
|
|
250 |
private function genererHtmlPlante($identifiant, $lignesTexteIdentifiant, $ariane, $niveau, $dossier) {
|
|
|
251 |
$ariane[] = $identifiant;
|
|
|
252 |
$niveau++;
|
|
|
253 |
|
|
|
254 |
if (isset ($lignesTexteIdentifiant[$identifiant])) { // Au cas ou des identifiants sont en doubles
|
|
|
255 |
$ligneIdentifiant = $lignesTexteIdentifiant[$identifiant];
|
|
|
256 |
}
|
|
|
257 |
|
|
|
258 |
$nom_latin = '';
|
|
|
259 |
if (isset($ariane[($niveau - 2)]) && isset($lignesTexteIdentifiant[$ariane[($niveau - 2)]]['texte_1'])) {
|
|
|
260 |
$nom_latin = trim(strrchr($lignesTexteIdentifiant[$ariane[($niveau - 2)]]['texte_1'], ':'), ' :');
|
|
|
261 |
}
|
|
|
262 |
|
|
|
263 |
$f_html = fopen($this->getIni('chemin_fichier_sortie').$dossier.'/'.$identifiant.'.html', 'wb');
|
|
|
264 |
$html=
|
|
|
265 |
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n".
|
|
|
266 |
'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">'."\n".
|
|
|
267 |
'<head>'."\n".
|
|
|
268 |
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'."\n".
|
|
|
269 |
'<title>Flore BONNIER sur PDA</title>'."\n".
|
|
|
270 |
'<link rel="stylesheet" type="text/css" href="../../style/style_plante.css" media="screen" />'."\n".
|
|
|
271 |
'</head>'."\n";
|
|
|
272 |
|
|
|
273 |
$html .= '<body>'."\n";
|
|
|
274 |
$html .= '<div class="titre">'."\n";
|
|
|
275 |
$html .= '<p id="titre">';
|
|
|
276 |
$html .= $nom_latin;
|
|
|
277 |
$html .= '</p>'."\n";
|
|
|
278 |
$html .= '</div>'."\n";
|
|
|
279 |
|
|
|
280 |
|
|
|
281 |
$html .= '<div class="famille">'."\n";
|
|
|
282 |
$html .= '<p id="famille1">Famille : </p>'."\n";
|
|
|
283 |
$html .= '<p id="famille2">';
|
|
|
284 |
$html .= $lignesTexteIdentifiant[$ariane[0]]['titre'];
|
|
|
285 |
$html .= '</p>'."\n";
|
|
|
286 |
$html .= '</div>'."\n";
|
|
|
287 |
|
|
|
288 |
$html .= '<div class="genre">'."\n";
|
|
|
289 |
$html .= '<p id="genre1">Genre : </p>'."\n";
|
|
|
290 |
$html .= '<p id="genre2">';
|
|
|
291 |
if (isset($ligneIdentifiant)) {
|
|
|
292 |
$html .= $ligneIdentifiant['genre'];
|
|
|
293 |
}
|
|
|
294 |
$html .= '</p>'."\n";
|
|
|
295 |
$html .= '</div>'."\n";
|
|
|
296 |
|
|
|
297 |
$html .= '<div class="nom_latin">'."\n";
|
|
|
298 |
$html .= '<p id="nom_latin1">Nom Latin : </p>'."\n";
|
|
|
299 |
$html .= '<p id="nom_latin2">';
|
|
|
300 |
$html .= $nom_latin;
|
|
|
301 |
$html .= '</p>'."\n";
|
|
|
302 |
$html .= '</div>'."\n";
|
|
|
303 |
|
|
|
304 |
$html .= '<div class="nom_francais">'."\n";
|
|
|
305 |
$html .= '<p id="nom_francais1">Nom Francais : </p>'."\n";
|
|
|
306 |
$html .= '<p id="nom_francais2">';
|
|
|
307 |
if (isset($ligneIdentifiant)) {
|
|
|
308 |
$html .= $ligneIdentifiant['nom_francais'];
|
|
|
309 |
}
|
|
|
310 |
$html .= '</p>'."\n";
|
|
|
311 |
$html .= '</div>'."\n";
|
|
|
312 |
|
|
|
313 |
$html .= '<div class="nom_commun">'."\n";
|
|
|
314 |
$html .= '<p id="nom_commun1">Nom Vulgaire : </p>'."\n";
|
|
|
315 |
$html .= '<p id="nom_commun2">';
|
|
|
316 |
if (isset($ligneIdentifiant)) {
|
|
|
317 |
$html .= $ligneIdentifiant['nom_vulgaire'];
|
|
|
318 |
}
|
|
|
319 |
$html .= '</p>'."\n";
|
|
|
320 |
$html .= '</div>'."\n";
|
|
|
321 |
|
|
|
322 |
$html .= '<div class="caracteres">'."\n";
|
|
|
323 |
$html .= '<p id="caracteres1">Caractéristiques spécifiques : </p>'."\n";
|
|
|
324 |
$html .= '<p id="caracteres2">';
|
|
|
325 |
if (isset($ligneIdentifiant)) {
|
|
|
326 |
$html .= $ligneIdentifiant['description'];
|
|
|
327 |
}
|
|
|
328 |
$html .= '</p>'."\n";
|
|
|
329 |
$html .= '</div>'."\n";
|
|
|
330 |
|
|
|
331 |
$html .= '<div class="habitat">'."\n";
|
|
|
332 |
$html .= '<p id="habitat1">Habitat / taille / floraison : </p>'."\n";
|
|
|
333 |
$html .= '<p id="habitat2">';
|
|
|
334 |
if (isset($ligneIdentifiant)) {
|
|
|
335 |
$html .= $ligneIdentifiant['habitat'];
|
|
|
336 |
}
|
|
|
337 |
$html .= '</p>'."\n";
|
|
|
338 |
$html .= '</div>'."\n";
|
|
|
339 |
|
|
|
340 |
$html .= '<div class="aire">'."\n";
|
|
|
341 |
$html .= '<p id="aire1">Aire géographique : </p>'."\n";
|
|
|
342 |
$html .= '<p id="aire2">';
|
|
|
343 |
if (isset($ligneIdentifiant)) {
|
|
|
344 |
$html .= $ligneIdentifiant['geographie'];
|
|
|
345 |
}
|
|
|
346 |
$html .= '</p>'."\n";
|
|
|
347 |
$html .= '</div>'."\n";
|
|
|
348 |
|
|
|
349 |
$html .= '<div class="identifiant">'."\n";
|
|
|
350 |
$html .= '<p id="identifiant">';
|
|
|
351 |
$html .= 'Bonnier : '.$identifiant;
|
|
|
352 |
$html .= '</p>'."\n";
|
|
|
353 |
$html .= '</div>'."\n";
|
|
|
354 |
|
|
|
355 |
$html .= '<div class="planche">'."\n";
|
|
|
356 |
$html .= '<p id="planche">';
|
|
|
357 |
$html .= '</p>'."\n";
|
|
|
358 |
$html .= '</div>'."\n";
|
|
|
359 |
|
|
|
360 |
$html .= '<div class="retour">'."\n";
|
|
|
361 |
$html .= '<p id="retour">'."\n";
|
|
|
362 |
if (($ariane[$niveau - 2]) && $ariane[$niveau - 2] != '') {
|
|
|
363 |
$html .= '<a href="'.$ariane[$niveau - 2].'.html">';
|
|
|
364 |
$html .= $lignesTexteIdentifiant[$ariane[$niveau - 2]]['titre'];
|
|
|
365 |
$html .= '</a>'."\n";
|
|
|
366 |
}
|
|
|
367 |
$html .= '</p>'."\n";
|
|
|
368 |
$html .= '</div>'."\n";
|
|
|
369 |
|
|
|
370 |
$html .= '<div class="glossaire">'."\n";
|
|
|
371 |
$html .= '<p id="glossaire">'."\n";
|
|
|
372 |
$html .= '<a href="../000-general/glossaire0_640.html">'."\n";
|
|
|
373 |
$html .= 'Glossaire'."\n";
|
|
|
374 |
$html .= '</a>'."\n";
|
|
|
375 |
$html .= '</p></div><div class="text">'."\n";
|
|
|
376 |
$html .= '<p id="Text">'."\n";
|
|
|
377 |
$html .= '<a href="../000-general/accueil1_640.html">'."\n";
|
|
|
378 |
$html .= ' Top'."\n";
|
|
|
379 |
$html .= '</a>'."\n";
|
|
|
380 |
$html .= ' </p>'."\n";
|
|
|
381 |
$html .= '</div>'."\n";
|
|
|
382 |
|
|
|
383 |
$html .= '</body>'."\n";
|
|
|
384 |
$html .= '</html>'."\n";
|
|
|
385 |
|
|
|
386 |
fwrite($f_html, $html);
|
|
|
387 |
fclose($f_html);
|
|
|
388 |
}
|
|
|
389 |
|
|
|
390 |
|
|
|
391 |
private function creerTableBonnier($version, $table) {
|
|
|
392 |
//+------------------------------------------------------------------------------------------------------------+
|
|
|
393 |
// texte
|
|
|
394 |
$this->type_donnee = $table.'_texte';
|
|
|
395 |
$requete = 'DROP TABLE IF EXISTS '.$this->projet_nom.'_v'.$this->version.'_'.$this->sous_version.'_'.$this->type_donnee;
|
|
|
396 |
$this->traiterRequete($requete);
|
|
|
397 |
|
|
|
398 |
$requete = 'CREATE TABLE '.$this->projet_nom.'_v'.$this->version.'_'.$this->sous_version.'_'.$this->type_donnee.' ('.
|
|
|
399 |
'uid int(11) not null auto_increment,'.
|
|
|
400 |
'identifiant varchar(25),'.
|
|
|
401 |
'titre varchar(100),'.
|
|
|
402 |
'texte_1 varchar(255),'.
|
|
|
403 |
'texte_2 varchar(255),'.
|
|
|
404 |
'texte_3 varchar(255),'.
|
|
|
405 |
'texte_4 varchar(255),'.
|
|
|
406 |
'texte_5 varchar(255),'.
|
|
|
407 |
'texte_6 varchar(255),'.
|
|
|
408 |
'destination_1 varchar(25),'.
|
|
|
409 |
'destination_2 varchar(25),'.
|
|
|
410 |
'destination_3 varchar(25),'.
|
|
|
411 |
'destination_4 varchar(25),'.
|
|
|
412 |
'destination_5 varchar(25),'.
|
|
|
413 |
'destination_6 varchar(25),'.
|
|
|
414 |
'planche_croquis varchar(25),'.
|
|
|
415 |
'PRIMARY KEY (uid)'.
|
|
|
416 |
') DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ' ;
|
|
|
417 |
$this->traiterRequete($requete);
|
|
|
418 |
|
|
|
419 |
//+------------------------------------------------------------------------------------------------------------+
|
|
|
420 |
//plante
|
|
|
421 |
$this->type_donnee = $table.'_plante';
|
|
|
422 |
$requete = 'DROP TABLE IF EXISTS '.$this->projet_nom.'_v'.$this->version.'_'.$this->sous_version.'_'.$this->type_donnee;
|
|
|
423 |
$this->traiterRequete($requete);
|
|
|
424 |
$requete = 'CREATE TABLE '.$this->projet_nom.'_v'.$this->version.'_'.$this->sous_version.'_'.$this->type_donnee.' ('.
|
|
|
425 |
'uid int(11) not null auto_increment,'.
|
|
|
426 |
'identifiant varchar(25),'.
|
|
|
427 |
'genre varchar(100),'.
|
|
|
428 |
'nom_francais varchar(100),'.
|
|
|
429 |
'nom_vulgaire varchar(100),'.
|
|
|
430 |
'description varchar(512),'.
|
|
|
431 |
'habitat varchar(255),'.
|
|
|
432 |
'geographie varchar(255),'.
|
|
|
433 |
'planche_croquis varchar(25),'.
|
|
|
434 |
'PRIMARY KEY (uid)'.
|
|
|
435 |
') DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ' ;
|
|
|
436 |
|
|
|
437 |
$this->traiterRequete($requete);
|
|
|
438 |
}
|
|
|
439 |
|
|
|
440 |
protected function chargerDonnees($table) {
|
|
|
441 |
print "Chargements des données ...";
|
|
|
442 |
print "\n";
|
|
|
443 |
|
|
|
444 |
$this->type_donnee = $table.'_texte';
|
|
|
445 |
$this->chargerDonneesSql($table);
|
|
|
446 |
|
|
|
447 |
$this->type_donnee = $table.'_plante';
|
|
|
448 |
$this->chargerDonneesSql($table);
|
|
|
449 |
|
|
|
450 |
return;
|
|
|
451 |
}
|
|
|
452 |
|
|
|
453 |
protected function chargerDonneesSql($table) {
|
|
|
454 |
echo $this->type_donnee."\n";
|
|
|
455 |
$fichier_sql = $this->chemin_fichier_tab.$this->projet_nom.'_v'.$this->version.'_'.$this->sous_version.'_'.$this->type_donnee.'.sql';
|
|
|
456 |
|
|
|
457 |
print $fichier_sql."\n";
|
|
|
458 |
|
|
|
459 |
if (file_exists($fichier_sql)) {
|
|
|
460 |
// Des champs textes sont multilignes, d'ou la boucle sur INSERT, marqueur de fin de la requete precedente.
|
|
|
461 |
if ($lines = file($fichier_sql)) {
|
|
|
462 |
$i = 0;
|
|
|
463 |
$ligne_courante = $lines[$i];
|
|
|
464 |
if (($i + 1) >= count($lines)) {
|
|
|
465 |
$ligne_suivante = 'FIN';
|
|
|
466 |
} else {
|
|
|
467 |
$ligne_suivante = $lines[$i+1];
|
|
|
468 |
}
|
|
|
469 |
while ($i < count($lines)) {
|
|
|
470 |
$line_in = $ligne_courante;
|
|
|
471 |
while (($i < count($lines)) && (substr($ligne_suivante, 0, 6) != 'INSERT') && ($ligne_suivante != 'FIN')) {
|
|
|
472 |
$line_in .= $ligne_suivante;
|
|
|
473 |
$i++;
|
|
|
474 |
$ligne_courante = $lines[$i];
|
|
|
475 |
if (($i + 1) >= count($lines)) {
|
|
|
476 |
$ligne_suivante = 'FIN';
|
|
|
477 |
} else {
|
|
|
478 |
$ligne_suivante = $lines[$i + 1];
|
|
|
479 |
}
|
|
|
480 |
}
|
|
|
481 |
|
|
|
482 |
$requete = $line_in;
|
|
|
483 |
|
|
|
484 |
if (substr($requete, 0, 6) == 'INSERT') {
|
|
|
485 |
$requete = preg_replace('/ VALUES\(/',' VALUES(0,', $requete);
|
|
|
486 |
$this->traiterRequete(utf8_encode($requete));
|
|
|
487 |
}
|
|
|
488 |
|
|
|
489 |
$i++;
|
|
|
490 |
if (($i + 1) >= count($lines)) {
|
|
|
491 |
$ligne_suivante = 'FIN';
|
|
|
492 |
} else {
|
|
|
493 |
$ligne_courante = $lines[$i];
|
|
|
494 |
$ligne_suivante = $lines[$i + 1];
|
|
|
495 |
}
|
|
|
496 |
|
|
|
497 |
|
|
|
498 |
if ($i == (int) $this->getParam('t')) {
|
|
|
499 |
break;
|
|
|
500 |
}
|
|
|
501 |
}
|
|
|
502 |
}
|
|
|
503 |
} else {
|
|
|
504 |
echo 'Fichier sql introuvable'."\n";
|
|
|
505 |
}
|
|
|
506 |
}
|
|
|
507 |
}
|
|
|
508 |
?>
|