Ajout d'un filtre pour recenser les identifiants de catégorie d'un type de territoire donné.

v0_spip32
Eric Lupinacci 3 years ago
parent 5d2f11e23a
commit 4778c2f812

@ -52,3 +52,46 @@ function territoire_informer_ascendance($iso_territoire, $iso_parent = null, $or
return $ascendance;
}
/**
* Fournit la liste des catégories de territoire pour un type donné ou pour une subdivisision ou infrasubdivision donnée.
*
* @api
* @filtre
*
* @param string $type Type de territoires. Prends les valeurs `zone`, `country`, `subdivision` ou `infrasubdivision`.
* @param string $pays Code ISO 3166-1 alpha2 du pays si le type est `subdivision` ou `infrasubdivision` sinon une chaine vide.
*
* @return array Liste des identifiants de catégorie.
*/
function territoire_lister_categorie($type, $pays = '') {
$categories = array();
// On récupère les identifiants de catégorie d'un type donné ou d'un couple (type, pays).
include_spip('inc/territoires_services');
if (
type_pays_est_valide($type, $pays)
or !$pays
) {
$select = array('categorie');
$group_by = array('categorie');
$where = array(
'type=' . sql_quote($type),
);
if (
include_spip('inc/territoires_utils')
and type_est_subdivision($type)
and $pays
) {
$where[] = 'iso_pays=' . sql_quote($pays);
}
$categories = sql_allfetsel($select, 'spip_territoires', $where, $group_by);
if ($categories) {
$categories = array_column($categories, 'categorie');
}
}
return $categories;
}

Loading…
Cancel
Save