Ajout d'une saisie des catégories de territoire.

Utilisation de la saisie pour ajouter un filtre dans la caption de la liste des territoires.
Ajout d'items de langue de catégories (subdivisions italiennes)
v0_spip32
Eric Lupinacci 3 years ago
parent 26595405b9
commit 1854c403c4

@ -26,8 +26,10 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'categorie_dependency' => 'dépendance',
'categorie_district' => 'district',
'categorie_federal_district' => 'district fédéral',
'categorie_free_communal_consortia' => 'libre consortium communal',
'categorie_land' => 'land',
'categorie_london_borough' => 'arrondissement de Londres',
'categorie_metropolitan_city' => 'ville métropolitaine',
'categorie_metropolitan_department' => 'département métropolitain',
'categorie_metropolitan_district' => 'district métropolitain',
'categorie_metropolitan_region' => 'région métropolitaine',
@ -55,7 +57,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'champ_nom_usage_label' => 'Nom d\'usage',
'champ_type_label' => 'Type',
'champ_ascendance_label' => 'Ascendance',
'confirmer_supprimer_territoire' => 'Confirmez-vous la suppression de cet territoire ?',
'confirmer_supprimer_territoire' => 'Confirmez-vous la suppression de ce territoire ?',
// I
'icone_creer_territoire' => 'Créer un territoire',

@ -44,6 +44,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'option_peupler_force_action' => 'Peupler avec forçage',
'option_zone_territoire' => 'Toutes les régions du monde',
'option_country_territoire' => 'Tous les pays',
'option_categorie_toute' => 'Toutes les catégories',
'onglet_edite_oui' => 'Edités',
'onglet_edite_non' => 'Non édités',
'onglet_edite_tous' => 'Tous',

@ -1,3 +1,5 @@
#SET{avec_filtre, #ENV{avec_filtre, ''}}
#SET{type_territoire, #ENV{type, ''}}
[(#SET{defaut_tri,#ARRAY{
nom_usage,1,
iso_territoire,1,
@ -11,7 +13,19 @@
#ANCRE_PAGINATION
<div class="liste-objets territoires">
<table class="spip liste">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|objet_afficher_nb{territoires}})</strong></caption>]
[<caption>
<strong class="caption">(#ENV*{titre,#GRAND_TOTAL|objet_afficher_nb{territoires}})</strong>
[(#GET{avec_filtre}|oui)
<div class="filtre">
<form method="GET" action="#SELF" onChange="this.submit(); return true;">
[(#SELF|parametre_url{categorie,''}|form_hidden)]
[(#SAISIE{territoires_categories, categorie,
type=#GET{type_territoire},
option_intro=<:territoires:option_categorie_toute:>,
})]
</form>
</div>]
</caption>]
<thead>
<tr class="first_row">
<th class="titre principale" scope="col">[(#TRI{nom_usage,<:territoire:champ_nom_usage_label:>,ajax})]</th>

@ -1,6 +1,8 @@
[(#AUTORISER{voir,_territoires}|sinon_interdire_acces)]
<h1 class="grostitre"><:territoire:titre_page_territoires:/></h1>
#SET{type_territoire, #ENV{type, ''}}
[(#REM) <!-- Onglets de premier niveau pour le filtrage par type -->]
<B_types>
<div class="onglets_simple">
@ -8,13 +10,15 @@
[<li>
(#SELF
|parametre_url{type, ''}
|lien_ou_expose{<:territoires:onglet_tous:>, #ENV{type, ''}|=={''}, ajax})
|parametre_url{categorie, ''}
|lien_ou_expose{<:territoires:onglet_tous:>, #GET{type_territoire}|=={''}, ajax})
</li>]
<BOUCLE_types(DATA) {source table, #LISTE{zone, country, subdivision, infrasubdivision}}>
[<li>
(#SELF
|parametre_url{type, #VALEUR}
|lien_ou_expose{[(#VAL{territoires:onglet_}|concat{#VALEUR}|_T|ucfirst)], #ENV{type, ''}|=={#VALEUR}, ajax})
|parametre_url{categorie, ''}
|lien_ou_expose{[(#VAL{territoires:onglet_}|concat{#VALEUR}|_T|ucfirst)], #GET{type_territoire}|=={#VALEUR}, ajax})
</li>]
</BOUCLE_types>
</ul>
@ -57,6 +61,7 @@
<INCLURE{fond=prive/objets/liste/territoires,
nb=30,
sinon=<:territoire:info_aucun_territoire:/>,
avec_filtre=oui,
env, ajax}>
[(#AUTORISER{creer,territoire})

@ -40,3 +40,5 @@
/* Liste des territoires */
.liste-objets.territoires td.categorie:first-letter {text-transform: capitalize;}
.liste-objets.territoires strong.caption {display: inline-block;}
.liste-objets.territoires div.filtre {display: inline-block; float: right; padding-top: 4px; padding-right: 5px;}

@ -5,8 +5,8 @@
<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{categories}}{recherche?}{tout}{par valeur}>
[(#SET{libelle, [(#VAL{territoire:categorie_}|concat{#VALEUR}|_T)]})]
<BOUCLE_categories(DATA){source table, #GET{categories}}{par valeur}>
[(#SET{libelle, [(#VAL{territoire:categorie_}|concat{#VALEUR}|_T|ucfirst)]})]
[(#ENV{multiple}|oui)
<option value="#VALEUR"[(#VALEUR|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>#GET{libelle}</option>]
[(#ENV{multiple}|non)

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

Loading…
Cancel
Save