Subversion Repositories Applications.referentiel

Rev

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

Rev 401 Rev 402
Line 29... Line 29...
29
class Algolia extends ScriptCommande {
29
class Algolia extends ScriptCommande {
Line 30... Line 30...
30
 
30
 
Line 31... Line 31...
31
	const SCRIPT_NOM = 'algolia';
31
	const SCRIPT_NOM = 'algolia';
32
 
32
 
-
 
33
	public $parametres = array(
33
	public $parametres = array(
34
		'-ref' => array(false, false, 'Celui qui lit ça est un con'),
Line 34... Line 35...
34
		'-ref' => array(false, false, 'Celui qui lit ça est un con')
35
		'-update' => array(false, false, 'Timestamp de la dernière mise à jour (YYYY-MM-DD)')
35
	);
36
	);
Line 62... Line 63...
62
		));
63
		));
63
		var_dump(count($idsexistants));
64
		var_dump(count($idsexistants));
64
		var_dump($idsexistants);
65
		var_dump($idsexistants);
65
		exit;*/
66
		exit;*/
Line -... Line 67...
-
 
67
 
-
 
68
		if ($this->getParam('update')) {
-
 
69
			$this->miseAJourPartielle($this->getParam('update'));
-
 
70
		}
66
 
71
 
67
		// Réglages de l'index @TODO tenir à jour
72
		// Réglages de l'index @TODO tenir à jour
68
		if ($this->confirmer("Charger les réglages par défaut (index_settings.json) dans la configuration de l'index Algolia ?")) {
73
		if ($this->confirmer("Charger les réglages par défaut (index_settings.json) dans la configuration de l'index Algolia ?")) {
69
			// Chargement des réglages par défaut
74
			// Chargement des réglages par défaut
70
			$reglagesJson = file_get_contents(dirname(__FILE__) . '/index_settings.json');
75
			$reglagesJson = file_get_contents(dirname(__FILE__) . '/index_settings.json');
Line 276... Line 281...
276
					'cultivar' => $cultivar,
281
					'cultivar' => $cultivar,
277
					'cultivar_groupe' => $cultivar_groupe
282
					'cultivar_groupe' => $cultivar_groupe
278
				);
283
				);
279
				// dans le cas de BDTFX, ajout de l'illustration de Coste et de
284
				// dans le cas de BDTFX, ajout de l'illustration de Coste et de
280
				// la carte Chorodep pour illustrer les résultats de recherche
285
				// la carte Chorodep pour illustrer les résultats de recherche
281
				if ($ref == "bdtfx" && (Config::get("activer_image_coste") == "1")) {
286
				if (Config::get("activer_image_cel") == "1") {
282
					$this->ajouterImagesEflore($nn, $donneesRef);
287
					$this->ajouterImagesEflore($nn, $donneesRef);
283
				}
288
				}
Line 284... Line 289...
284
 
289
 
285
				$nouveauTaxon[$ref] = $donneesRef;
290
				$nouveauTaxon[$ref] = $donneesRef;
Line 349... Line 354...
349
			//var_dump($tranche);
354
			//var_dump($tranche);
350
			$this->indexAlgolia->addObjects($tranche);
355
			$this->indexAlgolia->addObjects($tranche);
351
		}
356
		}
352
	}
357
	}
Line -... Line 358...
-
 
358
 
-
 
359
	/**
-
 
360
	 * Met à jour les images d'illustration
-
 
361
	 */
-
 
362
	protected function miseAJourPartielle($date) {
-
 
363
		try {
-
 
364
			$date = new DateTime($date);
-
 
365
			$date = $date->format('Y-m-d');
-
 
366
		} catch (Exception $e) {
-
 
367
			die($e->getMessage());
-
 
368
		}
-
 
369
 
-
 
370
		// récupération des nn mis à jour
-
 
371
		$sql = 'SELECT DISTINCT nn FROM del_image_top WHERE date_vote > ' . $date . ';';
-
 
372
		$requete = $this->requete($sql);
-
 
373
		$nns = $requete->fetchAll();
-
 
374
		// var_dump($nns); die();
-
 
375
 
-
 
376
		$donnees = array();
-
 
377
		foreach ($nns as $nn) {
-
 
378
			// récup des infos depuis le service d'images du cel
-
 
379
			$retour = @file_get_contents($sprintf(Config::get('url_template_cel'), $nn));
-
 
380
			if ($retour) {
-
 
381
				try {
-
 
382
					$infosCel = json_decode($retour, true);
-
 
383
					if (! empty($infosCel['resultat']) && is_array($infosCel['resultat'])) {
-
 
384
						foreach($infosCel['resultat'] as $organe => $imageSrc) {
-
 
385
							$donnees[$nn]['thumbnails']['cel'][$organe] = $imageSrc;
-
 
386
						}
-
 
387
						// var_dump($donnees); die();
-
 
388
 
-
 
389
						$response = $index->getObjects([$nn], ['objectID', 'nomenclatural_number', 'thumbnails']);
-
 
390
						$response = json_decode($response, true);
-
 
391
						// var_dump($response); die();
-
 
392
						if (isset($response['results'])) {
-
 
393
							$results = array_reduce($response['results'], function($carry, $item) use ($nn) {
-
 
394
								if ($item['nomenclatural_number'] == $nn) {
-
 
395
									$carry[] = $item;
-
 
396
								}
-
 
397
								return $carry;
-
 
398
							});
-
 
399
							// var_dump($results); die();
-
 
400
 
-
 
401
							if (count($results) == 1) {
-
 
402
								unset($results['thumbnails']['cel']);
-
 
403
								$results = array_merge($results, $donnees[$nn]);
-
 
404
								$index->partialUpdateObject([
-
 
405
									'thumbnails' => $results['thumbnails'],
-
 
406
									'objectID' => $results['objectID']
-
 
407
								]);
-
 
408
							}
-
 
409
 
-
 
410
						}
-
 
411
					}
-
 
412
				} catch (Exception $e) {
-
 
413
					die(var_dump($e));
-
 
414
				}
-
 
415
			}
-
 
416
		}
-
 
417
 
-
 
418
	}
353
 
419
 
Line 354... Line 420...
354
	// ---------------- utilitaires --------------------------------------------
420
	// ---------------- utilitaires --------------------------------------------
355
 
421
 
356
	protected function extrait($index, $clefsOuNombre) {
422
	protected function extrait($index, $clefsOuNombre) {