Browse Source

Liste des pays est renvoyé pour la langue courante.

On passe en insertq au lieu de objet_inserer pour gagner un facteur 10 sur l'import.
Nombre de territoires dans le titre pour la liste des enfants
master
Eric Lupinacci 11 months ago
parent
commit
4fdf532908
  1. 6
      inc/territoire.php
  2. 5
      prive/objets/liste/territoires.html
  3. 4
      saisies/territoires_pays.html
  4. 22
      territoires_fonctions.php

6
inc/territoire.php

@ -129,7 +129,7 @@ function territoire_peupler($type, $pays, $options = array()) {
$territoire['edite'] = 'oui';
}
if ($id = objet_inserer('territoire', null, $territoire)) {
if ($id = sql_insertq('spip_territoires', $territoire)) {
// On consigne le couple (iso, id) pour rétablir les liens si besoin
$ids[$territoire['iso_territoire']] = $id;
@ -229,9 +229,9 @@ function territoire_peupler($type, $pays, $options = array()) {
// Log du traitement pour debug
$duree = $timestamp['fin'] - $timestamp['debut'];
spip_log("Les territoires (Type '${type}' - Pays '${pays}') ont été chargées en ${duree} s", 'territoires' . _LOG_DEBUG);
spip_log("Les territoires (Type '${type}' - Pays '${pays}') ont été chargées en ${duree} s", 'territoires' . _LOG_INFO_IMPORTANTE);
if (
defined(_LOG_FILTRE_GRAVITE)
defined('_LOG_FILTRE_GRAVITE')
and (_LOG_FILTRE_GRAVITE >= _LOG_DEBUG)
) {
$timestamp_debut = $timestamp['debut'];

5
prive/objets/liste/territoires.html

@ -14,7 +14,10 @@
<div class="liste-objets territoires">
<table class="spip liste">
[<caption>
<strong class="caption">(#ENV*{titre,#GRAND_TOTAL|objet_afficher_nb{territoires}})</strong>
<strong class="caption">
(#ENV*{titre,#GRAND_TOTAL|objet_afficher_nb{territoires}})
[(#ENV{titre}|oui) \(#GRAND_TOTAL\)]
</strong>
[(#GET{avec_filtre}|oui)
<div class="filtre">
[<form method="GET" action="#SELF" onChange="this.submit(); return true;">

4
saisies/territoires_pays.html

@ -7,8 +7,8 @@
<option value="">[(#ENV{option_intro})]</option>]
<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>]
<option value="#CLE"[(#CLE|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>#CLE[ - (#VALEUR)]</option>]
[(#ENV{multiple}|non)
<option value="#CLE"[(#CLE|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>#CLE[ - (#VALEUR|extraire_multi)]</option>]
<option value="#CLE"[(#CLE|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>#CLE[ - (#VALEUR)]</option>]
</BOUCLE_categories>
</select>

22
territoires_fonctions.php

@ -68,6 +68,9 @@ function territoire_informer_ascendance($iso_territoire, $iso_parent = null, $or
*/
function territoire_lister_pays($type = '', $categorie = '') {
// Initialisation de la sortie en erreur
$pays = array();
// Filtre sur la catégorie et le type si demandé
$where = array();
if ($categorie) {
@ -82,17 +85,20 @@ function territoire_lister_pays($type = '', $categorie = '') {
// -- ou simplement tous les pays (type = country).
if ($type === 'country') {
$select = array('t1.iso_territoire as pays', 't1.nom_usage');
$pays = sql_allfetsel($select, 'spip_territoires as t1', $where);
$liste = sql_allfetsel($select, 'spip_territoires as t1', $where);
} else {
$from = array('spip_territoires as t1', 'spip_territoires as t2');
$select = array('t1.iso_pays as pays', 't2.nom_usage');
$where[] = 't1.iso_pays = t2.iso_territoire';
$group_by = array('t1.iso_pays');
$pays = sql_allfetsel($select, $from, $where, $group_by);
$liste = sql_allfetsel($select, $from, $where, $group_by);
}
if ($pays) {
$pays = array_column($pays, 'nom_usage', 'pays');
if ($liste) {
include_spip('inc/filtres');
foreach ($liste as $_pays) {
$pays[$_pays['pays']] = extraire_multi($_pays['nom_usage']);
}
}
return $pays;
@ -128,10 +134,10 @@ function territoire_lister_categorie($type = '', $pays = '') {
$where[] = 'iso_pays=' . sql_quote($pays);
}
$ids_categorie = sql_allfetsel($select, 'spip_territoires', $where, $group_by);
if ($ids_categorie) {
foreach ($ids_categorie as $_id_categorie) {
$categorie = $_id_categorie['categorie'];
$liste = sql_allfetsel($select, 'spip_territoires', $where, $group_by);
if ($liste) {
foreach ($liste as $_categorie) {
$categorie = $_categorie['categorie'];
$categories[$categorie] = _T("territoire:categorie_${categorie}");
}
}

Loading…
Cancel
Save