|
|
|
@ -66,36 +66,29 @@ function territoire_informer_ascendance($iso_territoire, $iso_parent = null, $or
|
|
|
|
|
*
|
|
|
|
|
* @return array Liste des pays sous la forme [iso_pays] = nom usuel.
|
|
|
|
|
*/
|
|
|
|
|
function territoire_lister_pays($type = 'country', $categorie = '') {
|
|
|
|
|
function territoire_lister_pays($type = '', $categorie = '') {
|
|
|
|
|
|
|
|
|
|
// Initialisation d'un retour en erreur
|
|
|
|
|
$pays = array();
|
|
|
|
|
|
|
|
|
|
// Gestion du cas où type est chaine vide
|
|
|
|
|
if (!$type){
|
|
|
|
|
$type = 'country';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Filtre sur la catégorie si demandé
|
|
|
|
|
// Filtre sur la catégorie et le type si demandé
|
|
|
|
|
$where = array();
|
|
|
|
|
if ($categorie) {
|
|
|
|
|
$where[] = 't1.categorie=' . sql_quote($categorie);
|
|
|
|
|
}
|
|
|
|
|
if ($type) {
|
|
|
|
|
$where[] = 't1.type=' . sql_quote($type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// On récupère :
|
|
|
|
|
// -- les pays possédant des subdivisions en base de donnés (type = subdivision ou infrasubdivision)
|
|
|
|
|
// -- ou simplement tous les pays (type = country).
|
|
|
|
|
if ($type === 'country') {
|
|
|
|
|
$select = array('t1.iso_territoire as pays', 't1.nom_usage');
|
|
|
|
|
$where = 't1.type=' . sql_quote($type);
|
|
|
|
|
$pays = sql_allfetsel($select, 'spip_territoires as t1', $where);
|
|
|
|
|
} elseif (
|
|
|
|
|
include_spip('inc/territoires_utils')
|
|
|
|
|
and type_est_subdivision($type)
|
|
|
|
|
) {
|
|
|
|
|
} else {
|
|
|
|
|
$from = array('spip_territoires as t1', 'spip_territoires as t2');
|
|
|
|
|
$select = array('t1.iso_pays as pays', 't2.nom_usage');
|
|
|
|
|
$where[] = 't1.type=' . sql_quote($type);
|
|
|
|
|
$where[] = 't1.iso_pays = t2.iso_territoire';
|
|
|
|
|
$group_by = array('t1.iso_pays');
|
|
|
|
|
$pays = sql_allfetsel($select, $from, $where, $group_by);
|
|
|
|
@ -110,44 +103,29 @@ function territoire_lister_pays($type = 'country', $categorie = '') {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Fournit la liste des catégories de territoire pour un type donné ou pour une subdivisision ou infrasubdivision donnée.
|
|
|
|
|
* Fournit la liste des catégories de territoire filtreé sur le type et/ou sur le pays.
|
|
|
|
|
*
|
|
|
|
|
* @api
|
|
|
|
|
* @filtre
|
|
|
|
|
*
|
|
|
|
|
* @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.
|
|
|
|
|
* @param string $pays Code ISO 3166-1 alpha2 du pays sinon une chaine vide.
|
|
|
|
|
*
|
|
|
|
|
* @return array Liste des identifiants de catégorie.
|
|
|
|
|
*/
|
|
|
|
|
function territoire_lister_categorie($type = '', $pays = '') {
|
|
|
|
|
|
|
|
|
|
// On récupère les identifiants de catégorie d'un type donné, d'un couple (type, pays) ou de tous les territoires.
|
|
|
|
|
// On récupère les identifiants de catégorie d'un type donné, d'un pays donné, d'un couple (type, pays) ou de
|
|
|
|
|
// tous les territoires.
|
|
|
|
|
$select = array('categorie');
|
|
|
|
|
$where = array();
|
|
|
|
|
$group_by = array('categorie');
|
|
|
|
|
if (
|
|
|
|
|
$type
|
|
|
|
|
and (
|
|
|
|
|
!$pays
|
|
|
|
|
or (
|
|
|
|
|
include_spip('inc/territoires_services')
|
|
|
|
|
and type_pays_est_valide($type, $pays)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
) {
|
|
|
|
|
$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);
|
|
|
|
|
}
|
|
|
|
|
if ($type) {
|
|
|
|
|
$where[] = 'type=' . sql_quote($type);
|
|
|
|
|
}
|
|
|
|
|
if ($pays) {
|
|
|
|
|
$where[] = 'iso_pays=' . sql_quote($pays);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$categories = sql_allfetsel($select, 'spip_territoires', $where, $group_by);
|
|
|
|
@ -159,6 +137,7 @@ function territoire_lister_categorie($type = '', $pays = '') {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Fournit, pour un territoire donné, tout ou partie des informations extras disponibles dans la table
|
|
|
|
|
* spip_territoires_extras.
|
|
|
|
|