@ -60,23 +60,29 @@ function territoire_informer_ascendance($iso_territoire, $iso_parent = null, $or
* @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.
* @param string $type Type de territoires. Prends les valeurs `zone`, `country`, `subdivision` ou `infrasubdivision`
* ou chaine vide pour toutes les catégories sans tenir compte du type.
* @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 = '') {
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 ');
// On récupère les identifiants de catégorie d'un type donné, d'un couple (type, pays) ou de tous les territoires.
$select = array('categorie');
$where = array();
$group_by = array('categorie ');
if (
type_pays_est_valide($type, $pays)
or !$pays
$type
and (
!$pays
or (
include_spip('inc/territoires_services')
and type_pays_est_valide($type, $pays)
)
)
) {
$select = array('categorie');
$group_by = array('categorie');
$where = array(
'type=' . sql_quote($type),
);
@ -87,10 +93,11 @@ function territoire_lister_categorie($type, $pays = '') {
) {
$where[] = 'iso_pays=' . sql_quote($pays);
}
$categories = sql_allfetsel($select, 'spip_territoires', $where, $group_by);
if ($categories) {
$categories = array_column($categories, 'categorie');
}
}
$categories = sql_allfetsel($select, 'spip_territoires', $where, $group_by);
if ($categories) {
$categories = array_column($categories, 'categorie');
}
return $categories;