58,13 → 58,6 |
'limite' => 100 |
); |
|
/** |
* Vrai tri SQL |
*/ |
protected $tri; |
protected $tri_ordre = 'asc'; |
|
// wtf ? on trie après avoir exécuté la requête ? |
protected $champ_tri = 'code_langue'; |
protected $direction_tri = 'asc'; |
|
93,7 → 86,7 |
/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */ |
protected $total_resultat; |
|
protected $config; |
private $config; |
|
public function __construct($config) { |
$this->config = is_null($config) ? Config::get('NomsVernaculaires') : $config; |
127,14 → 120,6 |
case 'retour.format' : |
$this->retour_format = $valeur; |
break; |
case 'retour.tri' : |
$this->tri = $valeur; |
break; |
case 'retour.ordre' : |
if (in_array(strtolower($valeur), aray('asc', 'desc'))) { |
$this->tri_ordre = $valeur; |
} |
break; |
case 'navigation.depart' : |
$this->limite_requete['depart'] = $valeur; |
break; |
186,7 → 171,6 |
} |
} else { //rajoute distinct pour ne pas avoir plusieurs fois le même nom |
$this->requete_champ = array('distinct(id)', 'nom_vernaculaire '); |
$this->requete_champ = array_merge($this->requete_champ, $this->champs_supp); |
} |
} |
|
242,17 → 226,15 |
$this->limite_requete['limite']); |
} |
|
$req = sprintf( |
return sprintf( |
'SELECT %s, IF(num_statut="",1,0) AS is_null' . |
' FROM %s WHERE %s ORDER BY %s is_null ASC, num_statut ASC %s -- %s:%d', |
' FROM %s WHERE %s ORDER BY is_null ASC, num_statut ASC %s -- %s:%d', |
|
in_array('*', $this->requete_champ) ? ' * ' : implode(', ', $this->requete_champ), |
$this->table, |
$this->requete_condition ? implode(' AND ', $this->requete_condition) : 'TRUE', |
$this->tri ? ($this->tri . ' ' . $this->tri_ordre . ', ') : '', |
$nolimit ? '' : $limiteClause, |
__FILE__, __LINE__); |
return $req; |
} |
|
//ajout d'une limite seulement pour les listes (pas plus de 100 resultats retournés pr les requetes |
335,12 → 317,8 |
case 'nom_vernaculaire' : $this->table_retour['nom'] = $valeur; break; |
default : break; |
} |
// champs supplémentaires |
if (in_array($key, $this->champs_supp)) { |
$this->table_retour[$key] = $valeur; |
} |
} |
} |
if ($this->retour_format == 'max') $this->table_retour['href'] = $this->ajouterHref('noms-vernaculaires', $num); |
$resultat_json[$num] = $this->table_retour; |
$this->table_retour = array(); |