Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 471 | Rev 478 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 471 Rev 476
Line 1... Line 1...
1
<?php
1
<?php
2
class Index {
2
class Index {
Line 3... Line 3...
3
 
3
 
4
	const DOSSIER_V0 = '../../../donnees/coste/0.00/';
4
	const DOSSIER_V0 = '../../../donnees/coste/0.00/';
5
	const DOSSIER_V2 = '../../../donnees/coste/2.00/';
-
 
Line 6... Line 5...
6
	const DOSSIER_LOG = 'log/';
5
	const DOSSIER_V2 = '../../../donnees/coste/2.00/';
7
 
6
 
8
	private $conteneur = null;
7
	private $conteneur = null;
9
	private $outils = null;
8
	private $outils = null;
Line 59... Line 58...
59
		$this->creerFichierCsvIndexFinal();
58
		$this->creerFichierCsvIndexFinal();
60
	}
59
	}
Line 61... Line 60...
61
 
60
 
62
	private function chargerIndexSp() {
61
	private function chargerIndexSp() {
63
		$spIndexFichier = $this->dossierBase.self::DOSSIER_V0.'index_general_sp.tsv';
62
		$spIndexFichier = $this->dossierBase.self::DOSSIER_V0.'index_general_sp.tsv';
64
		$index = $this->transformerTxtTsvEnTableau($spIndexFichier);
63
		$index = $this->outils->transformerTxtTsvEnTableau($spIndexFichier);
65
		$index = $this->reindexerParNumNomCoste($index);
64
		$index = $this->reindexerParNumNomCoste($index);
66
		foreach ($index as $numNomCoste => $infos) {
65
		foreach ($index as $numNomCoste => $infos) {
67
			$numTaxSup = '';
66
			$numTaxSup = '';
68
			if ($infos['num_nom_coste'] == $infos['num_nom_retenu_coste']) {
67
			if ($infos['num_nom_coste'] == $infos['num_nom_retenu_coste']) {
Line 81... Line 80...
81
			$nouvelIndex[$infos['num_nom_coste']] = $infos;
80
			$nouvelIndex[$infos['num_nom_coste']] = $infos;
82
		}
81
		}
83
		return $nouvelIndex;
82
		return $nouvelIndex;
84
	}
83
	}
Line 85... Line -...
85
 
-
 
86
	/**
-
 
87
	 * @link http://gist.github.com/385876
-
 
88
	 */
-
 
89
	private function transformerTxtTsvEnTableau($file = '', $delimiter = "\t") {
-
 
90
		$str = file_get_contents($file);
-
 
91
		$lines = explode("\n", $str);
-
 
92
		$field_names = explode($delimiter, array_shift($lines));
-
 
93
		foreach ($lines as $line) {
-
 
94
			// Skip the empty line
-
 
95
			if (empty($line)) continue;
-
 
96
			$fields = explode($delimiter, $line);
-
 
97
			$_res = array();
-
 
98
			foreach ($field_names as $key => $f) {
-
 
99
				$_res[$f] = isset($fields[$key]) ? $fields[$key] : '';
-
 
100
			}
-
 
101
			$res[] = $_res;
-
 
102
		}
-
 
103
		return $res;
-
 
104
	}
-
 
105
 
84
 
106
	private function chargerIndexSupraSp() {
85
	private function chargerIndexSupraSp() {
107
		$infraSpIndexFichier = $this->dossierBase.self::DOSSIER_V0.'index_general.tsv';
86
		$infraSpIndexFichier = $this->dossierBase.self::DOSSIER_V0.'index_general.tsv';
108
		$this->supraSpIndex = $this->transformerTxtTsvEnTableau($infraSpIndexFichier);
87
		$this->supraSpIndex = $this->outils->transformerTxtTsvEnTableau($infraSpIndexFichier);
109
		foreach ($this->supraSpIndex as $cle => $infos) {
88
		foreach ($this->supraSpIndex as $cle => $infos) {
110
			$this->supraSpIndex[$cle]['num_nom_retenu_coste'] = $infos['num_nom_coste'];
89
			$this->supraSpIndex[$cle]['num_nom_retenu_coste'] = $infos['num_nom_coste'];
111
		}
90
		}
Line 149... Line 128...
149
				$nomRetenu = $this->indexFinal[$infos['num_nom_retenu_coste']];
128
				$nomRetenu = $this->indexFinal[$infos['num_nom_retenu_coste']];
150
				$infos['num_nom_retenu'] = $nomRetenu['num_nom'];
129
				$infos['num_nom_retenu'] = $nomRetenu['num_nom'];
151
			}
130
			}
152
			$infos['image'] = $this->obtenirNomFichierImg($nomRetenu);
131
			$infos['image'] = $this->obtenirNomFichierImg($nomRetenu);
153
			$infos['nbre_taxons'] = $this->obtenirNbreTaxon($infos);
132
			$infos['nbre_taxons'] = $this->obtenirNbreTaxon($infos);
154
			$infos['nbre_taxons'] = $infos['nbre_taxons'];
133
			$nomRetenu['nbre_taxons'] = $infos['nbre_taxons'];
155
			$infos['page_wiki_dsc'] = $this->genererPageWikiDsc($nomRetenu);
134
			$infos['page_wiki_dsc'] = $this->genererPageWikiDsc($nomRetenu);
156
			$infos['page_wiki_cle'] = $this->genererPageWikiCle($nomRetenu);
135
			$infos['page_wiki_cle'] = $this->genererPageWikiCle($nomRetenu);
Line 157... Line 136...
157
 
136
 
158
			$this->indexFinal[$nnc] = $infos;
137
			$this->indexFinal[$nnc] = $infos;
Line 239... Line 218...
239
		$txt = implode("\n", $lignes);
218
		$txt = implode("\n", $lignes);
Line 240... Line 219...
240
 
219
 
241
		$fichierTsvIndexFinal = $this->dossierBase.self::DOSSIER_V2.'index.tsv';
220
		$fichierTsvIndexFinal = $this->dossierBase.self::DOSSIER_V2.'index.tsv';
242
		file_put_contents($fichierTsvIndexFinal, $txt);
221
		file_put_contents($fichierTsvIndexFinal, $txt);
243
	}
-
 
244
 
-
 
245
 
222
	}
246
}
223
}
247
?>
224
?>