|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|