Browse Source

La liste des catégories est mise sous la forme [id]=nom

v0_spip32
Eric Lupinacci 2 years ago
parent
commit
8b505b8762
  1. 4
      prive/objets/liste/territoires.html
  2. 5
      saisies/territoires_categories.html
  3. 2
      saisies/territoires_pays.html
  4. 17
      territoires_fonctions.php

4
prive/objets/liste/territoires.html

@ -18,7 +18,7 @@
[(#GET{avec_filtre}|oui)
<div class="filtre">
[<form method="GET" action="#SELF" onChange="this.submit(); return true;">
[(#SELF|parametre_url{categorie,''}|parametre_url{iso_pays,''}|form_hidden)]
[(#SELF|parametre_url{categorie,''}|form_hidden)]
(#SAISIE{territoires_categories, categorie,
type=#GET{type_territoire},
pays=#ENV{iso_pays, ''},
@ -29,7 +29,7 @@
[<div class="filtre">
(#GET{type_territoire}|in_array{#LISTE{subdivision, infrasubdivision}}|or{#ENV{type}|non}|oui)
[<form method="GET" action="#SELF" onChange="this.submit(); return true;">
[(#SELF|parametre_url{categorie,''}|parametre_url{iso_pays,''}|form_hidden)]
[(#SELF|parametre_url{iso_pays,''}|form_hidden)]
(#SAISIE{territoires_pays, iso_pays,
type=#GET{type_territoire},
categorie=#ENV{categorie, ''},

5
saisies/territoires_categories.html

@ -6,10 +6,9 @@
[(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
<option value="">[(#ENV{option_intro})]</option>]
<BOUCLE_categories(DATA){source table, #GET{categories}}{par valeur}>
[(#SET{libelle, [(#VAL{territoire:categorie_}|concat{#VALEUR}|_T|spip_ucfirst)]})]
[(#ENV{multiple}|oui)
<option value="#VALEUR"[(#VALEUR|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>#GET{libelle}</option>]
<option value="#CLE"[(#CLE|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>[(#VALEUR|spip_ucfirst)]</option>]
[(#ENV{multiple}|non)
<option value="#VALEUR"[(#VALEUR|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>#GET{libelle}</option>]
<option value="#CLE"[(#CLE|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>[(#VALEUR|spip_ucfirst)]</option>]
</BOUCLE_categories>
</select>

2
saisies/territoires_pays.html

@ -5,7 +5,7 @@
<select name="#ENV{nom}[(#ENV{multiple}|?{\[\]})]" id="champ_[(#ENV{nom}|saisie_nom2classe)]"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple" size="#ENV{size,10}"][ disabled="(#ENV{disable})"]>
[(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
<option value="">[(#ENV{option_intro})]</option>]
<BOUCLE_categories(DATA){source table, #GET{pays}}{par valeur}>
<BOUCLE_categories(DATA){source table, #GET{pays}}{par cle}>
[(#ENV{multiple}|oui)
<option value="#CLE"[(#CLE|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>#CLE[ - (#VALEUR|extraire_multi)]</option>]
[(#ENV{multiple}|non)

17
territoires_fonctions.php

@ -68,9 +68,6 @@ function territoire_informer_ascendance($iso_territoire, $iso_parent = null, $or
*/
function territoire_lister_pays($type = '', $categorie = '') {
// Initialisation d'un retour en erreur
$pays = array();
// Filtre sur la catégorie et le type si demandé
$where = array();
if ($categorie) {
@ -109,13 +106,16 @@ function territoire_lister_pays($type = '', $categorie = '') {
* @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.
* ou chaine vide pour ne pas tenir compte du type.
* @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 = '') {
// Initialisation de la sortie en erreur
$categories = array();
// 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');
@ -128,9 +128,12 @@ 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');
$ids_categorie = sql_allfetsel($select, 'spip_territoires', $where, $group_by);
if ($ids_categorie) {
foreach ($ids_categorie as $_id_categorie) {
$categorie = $_id_categorie['categorie'];
$categories[$categorie] = _T("territoire:categorie_${categorie}");
}
}
return $categories;

Loading…
Cancel
Save