98,14 → 98,18 |
private function obtenirLois(Array $id_lois) { |
$id_lois = array_map(array($this->bdd, 'proteger'), $id_lois); |
$requete = "SELECT * FROM ".Config::get('bdd_table_lois').' '. |
"WHERE id IN (".implode(',',$id_lois).") "; |
return $this->bdd->recupererTous($requete); |
"WHERE id IN (".implode(',',$id_lois).") ORDER BY zone_application ASC"; |
$lois = $this->bdd->recupererTous($requete, 'ASSOC'); |
foreach ($lois as $loi) { |
$retour[$loi['id']] = $loi; |
} |
return $retour; |
} |
|
private function obtenirLoisZoneGeo(Array $id_lois) { |
$id_lois = array_map(array($this->bdd, 'proteger'), $id_lois); |
$requete = "SELECT DISTINCT zone_application, code_zone_application FROM ".Config::get('bdd_table_lois').' '. |
"WHERE id IN (".implode(',',$id_lois).") "; |
"WHERE id IN (".implode(',',$id_lois).") ORDER BY zone_application ASC"; |
return $this->bdd->recupererTous($requete); |
} |
|
113,7 → 117,7 |
if ($this->nn_demande != null) { |
$conditions_taxons = array(); |
$conditions_taxons = $this->obtenirNumNomTaxonsSuperieurs(Config::get('referentiel'), $this->nn_demande); |
$conditions_taxons[] = $this->bdd->proteger($this->nn_demande); |
$conditions_taxons[] = $this->nn_demande; |
} |
|
$requete = "SELECT * FROM ".Config::get('bdd_table_especes'); |
126,7 → 130,7 |
$requete .= ' -- ' . __FILE__ . ':' . __LINE__; |
//echo "REQ: $requete\n"; |
|
$statuts = $this->bdd->recuperer($requete); |
$statuts = $this->bdd->recupererTous($requete, 'ASSOC'); |
//echo "STATUTS: " . print_r($statuts, true) . "\n"; |
//echo "CPT: " . count($statuts) . "\n"; |
$statuts = $this->formaterRetour($statuts); |
135,13 → 139,35 |
//+---------------------------FONCTIONS DE FORMATAGE---------------------------------------------------------+ |
|
private function formaterRetour($statuts_taxon) { |
$retour = ""; |
if ($statuts_taxon) { |
foreach ($statuts_taxon as $nom) { |
$f[$nom['cd_protection']][$nom['num_nom']] = $nom['nom_sci']; |
$lois_statuts[] = $nom['cd_protection']; |
} |
switch($this->retour_format) { |
case 'zone_geo': |
$retour = $this->formaterStatutsTaxonZoneGeo($statuts_taxon); |
$retour = $this->obtenirLoisZoneGeo($lois_statuts); |
break; |
|
case 'nom': |
$lois = $this->obtenirLois($lois_statuts); |
foreach ($statuts_taxon as $nom) { |
$retour[$nom['num_nom']]['num_nom'] = $nom['num_nom']; |
$retour[$nom['num_nom']]['nom_sci'] = $nom['nom_sci']; |
$retour[$nom['num_nom']]['lois'][$nom['cd_protection']] = $lois[$nom['cd_protection']]; |
|
} |
break; |
case 'complet': |
$retour = $this->formaterStatutsTaxon($statuts_taxon); |
$lois = $this->obtenirLois($lois_statuts); |
foreach ($lois as $id => $loi) { |
$retour[$loi['zone_application']][$id] = $loi; |
foreach ($f[$id] as $num_nom => $nom_sci) { |
$retour[$loi['zone_application']][$id]['nom_sci'][$num_nom] = $nom_sci; |
} |
|
} |
break; |
|
default: |
148,43 → 174,12 |
$retour = $this->formaterStatutsTaxon(); |
break; |
} |
return $retour; |
} |
|
private function formaterStatutsTaxonZoneGeo($statuts_taxon) { |
$lois_statuts = array(); |
// cas ou la requĂȘte (obtenirStatuts()) ne retourne rien |
if(!$statuts_taxon) return array(); |
|
foreach ($statuts_taxon as $champ => $statut) { |
if($statut == "1") { |
$lois_statuts[] = $champ; |
} |
} |
|
$zones_geo_lois = (!empty($lois_statuts)) ? $this->obtenirLoisZoneGeo($lois_statuts) : array(); |
|
return $zones_geo_lois; |
return $retour; |
} |
|
private function formaterStatutsTaxon($statuts_taxon) { |
$statuts_formates = array(); |
$lois_statuts = array(); |
|
if(is_array($statuts_taxon)) { |
unset($statuts_taxon['num_nom']); |
unset($statuts_taxon['num_nom_retenu']); |
unset($statuts_taxon['nom_sci']); |
foreach ($statuts_taxon as $champ => $statut) { |
if($statut == "1") { |
$lois_statuts[] = $champ; |
} |
} |
} |
|
$statuts_formates = (!empty($lois_statuts)) ? $this->obtenirLois($lois_statuts) : array(); |
|
return $statuts_formates; |
} |
} |
?> |