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 643... Line 643...
643
			// fonction du pauvre pour palier aux "." remplacés accidentellement par des "_"
643
			// fonction du pauvre pour palier aux "." remplacés accidentellement par des "_"
644
			$index = str_replace('masque_','masque.',$masque[0]);
644
			$index = str_replace('masque_','masque.',$masque[0]);
645
			//$resultat = $this->trierRechercheFloue($this->parametres[$index], $resultat, $masque[1]);
645
			//$resultat = $this->trierRechercheFloue($this->parametres[$index], $resultat, $masque[1]);
646
		}
646
		}
Line -... Line 647...
-
 
647
 
-
 
648
		// Tri à la mode du CeL : lexicographique puis noms retenus (retour.tri = "alpharet")
-
 
649
		if (isset($this->parametres['retour.tri']) && ($this->parametres['retour.tri'] == "alpharet")) {
-
 
650
			usort($resultat, array($this, 'genrePuisNomsRetenusEnTete'));
-
 
651
		}
647
 
652
 
648
		$table_retour_json['entete'] = $this->remplirJsonEntete();
653
		$table_retour_json['entete'] = $this->remplirJsonEntete();
649
		$table_retour_json['resultat'] = $this->remplirJsonResultat($resultat);
654
		$table_retour_json['resultat'] = $this->remplirJsonResultat($resultat);
650
		return $table_retour_json;
655
		return $table_retour_json;
Line -... Line 656...
-
 
656
	}
-
 
657
 
-
 
658
	// Trie les éléments du tableau de résultats : le genre en tête, puis les noms retenus, puis le reste
-
 
659
	// mais à partir du jeu de données retourné par SQL (indépendents du statut "retenu") 
-
 
660
	private function genrePuisNomsRetenusEnTete($a, $b) {
-
 
661
		// On pourrait utiliser l'indice ['retenu'] mais il contient parfois "absent", qui est dur à traiter
-
 
662
		$aEstRetenu = ($a['num_nom'] == $a['num_nom_retenu']);
-
 
663
		$bEstRetenu = ($b['num_nom'] == $b['num_nom_retenu']);
-
 
664
		$retour = 0;
-
 
665
 
-
 
666
		// les noms retenus en premier ("inférieurs")
-
 
667
		if ($aEstRetenu) {
-
 
668
			if (! $bEstRetenu) {
-
 
669
				$retour = -1;
-
 
670
			}
-
 
671
		}  else {
-
 
672
			if ($bEstRetenu) {
-
 
673
				$retour = 1;
-
 
674
			}
-
 
675
		}
-
 
676
 
-
 
677
		// en cas d'égalité on conserve le tri lexicographique - devrait faire sortir le genre en première position
-
 
678
		// car il ne contient pas le nom d'auteur
-
 
679
		if ($retour == 0) {
-
 
680
			$retour = strcasecmp($a['nom_sci'], $b['nom_sci']);
-
 
681
		}
-
 
682
 
-
 
683
		return $retour;
651
	}
684
	}
652
 
685
 
653
	public function remplirJsonResultat($resultat) {
686
	public function remplirJsonResultat($resultat) {
654
		$champs = null;
687
		$champs = null;
655
		if (array_key_exists('retour.champs', $this->parametres)) {
688
		if (array_key_exists('retour.champs', $this->parametres)) {