Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 1040 Rev 1067
Line 558... Line 558...
558
			// fonction du pauvre pour palier aux "." remplacés accidentellement par des "_"
558
			// fonction du pauvre pour palier aux "." remplacés accidentellement par des "_"
559
			$index = str_replace('masque_','masque.',$masque[0]);
559
			$index = str_replace('masque_','masque.',$masque[0]);
560
			//$resultat = $this->trierRechercheFloue($this->parametres[$index], $resultat, $masque[1]);
560
			//$resultat = $this->trierRechercheFloue($this->parametres[$index], $resultat, $masque[1]);
561
		}
561
		}
Line -... Line 562...
-
 
562
 
-
 
563
		// Tri à la mode du CeL : lexicographique puis noms retenus (retour.tri = "alpharet")
-
 
564
		if (isset($this->parametres['retour.tri']) && ($this->parametres['retour.tri'] == "alpharet")) {
-
 
565
			usort($resultat, array($this, 'genrePuisNomsRetenusEnTete'));
-
 
566
		}
562
 
567
 
563
		$table_retour_json['entete'] = $this->remplirJsonEntete();
568
		$table_retour_json['entete'] = $this->remplirJsonEntete();
564
		$table_retour_json['resultat'] = $this->remplirJsonResultat($resultat);
569
		$table_retour_json['resultat'] = $this->remplirJsonResultat($resultat);
565
		return $table_retour_json;
570
		return $table_retour_json;
Line -... Line 571...
-
 
571
	}
-
 
572
 
-
 
573
	// Trie les éléments du tableau de résultats : le genre en tête, puis les noms retenus, puis le reste
-
 
574
	// mais à partir du jeu de données retourné par SQL (indépendents du statut "retenu") 
-
 
575
	private function genrePuisNomsRetenusEnTete($a, $b) {
-
 
576
		// On pourrait utiliser l'indice ['retenu'] mais il contient parfois "absent", qui est dur à traiter
-
 
577
		$aEstRetenu = ($a['num_nom'] == $a['num_nom_retenu']);
-
 
578
		$bEstRetenu = ($b['num_nom'] == $b['num_nom_retenu']);
-
 
579
		$retour = 0;
-
 
580
 
-
 
581
		// les noms retenus en premier ("inférieurs")
-
 
582
		if ($aEstRetenu) {
-
 
583
			if (! $bEstRetenu) {
-
 
584
				$retour = -1;
-
 
585
			}
-
 
586
		}  else {
-
 
587
			if ($bEstRetenu) {
-
 
588
				$retour = 1;
-
 
589
			}
-
 
590
		}
-
 
591
 
-
 
592
		// en cas d'égalité on conserve le tri lexicographique - devrait faire sortir le genre en première position
-
 
593
		// car il ne contient pas le nom d'auteur
-
 
594
		if ($retour == 0) {
-
 
595
			$retour = strcasecmp($a['nom_sci'], $b['nom_sci']);
-
 
596
		}
-
 
597
 
-
 
598
		return $retour;
566
	}
599
	}
567
 
600
 
568
	public function remplirJsonResultat($resultat) {
601
	public function remplirJsonResultat($resultat) {
569
		$champs = null;
602
		$champs = null;
570
		if (array_key_exists('retour.champs', $this->parametres)) {
603
		if (array_key_exists('retour.champs', $this->parametres)) {