Eviter une boucle infinie si le type parent n'est pas chargé.

Renommage d'une API
On met une case à cocher pour le forçage plutot qu'une action qui est moins compréhensible
v0_spip32
Eric Lupinacci 3 years ago
parent e5e1eac42f
commit 80de987026

@ -9,15 +9,21 @@
#ACTION_FORMULAIRE{#ENV{action}}
<p><:territoires:explication_peupler_form:></p>
<div class="editer-groupe">
[(#SAISIE{radio, action_peuplement,
[(#SAISIE{radio, actions_territoire,
label=<:territoires:label_peupler_action:>,
data=#ENV{_actions_peuplement},
data=#ENV{_actions_territoire},
defaut=#ENV{_action_defaut},
disable=#ENV{_actions_disable},
conteneur_class=long_label,
obligatoire=oui,
})]
[(#SAISIE{case, forcer,
label_case=<:territoires:label_case_forcer:>,
explication=<:territoires:explication_forcer:>,
conteneur_class=long_label,
})]
[(#SAISIE{checkbox, types,
label=<:territoires:label_peupler_territoire:>,
explication=<:territoires:explication_zone_pays_territoire:>,

@ -9,9 +9,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
/**
* Chargement des données : le formulaire propose les actions possibles sur les tables de codes ISO,
* à savoir, charger ou vider et la liste des tables regroupées par service.
* L'action vider s'appelle décharger car il existe dékà une fonction d'administration de vidage des tables.
* Chargement des données : le formulaire propose les actions possibles sur les territoires,
* à savoir, charger ou vider.
*
* @uses territoire_acquerir()
* @uses territoire_est_peuple()
@ -31,9 +30,8 @@ function formulaires_peupler_territoires_charger() {
$valeurs = array();
// Lister les actions sur les tables
$valeurs['_actions_peuplement'] = array(
$valeurs['_actions_territoire'] = array(
'peupler' => _T('territoires:option_peupler_action'),
'peupler_force' => _T('territoires:option_peupler_force_action'),
'depeupler' => _T('territoires:option_depeupler_action')
);
@ -89,8 +87,8 @@ function formulaires_peupler_territoires_charger() {
function formulaires_peupler_territoires_verifier() {
$erreurs = array();
if (!_request('action_peuplement')) {
$erreurs['action_peuplement'] = _T('info_obligatoire');
if (!_request('actions_territoire')) {
$erreurs['actions_territoire'] = _T('info_obligatoire');
}
if (!_request('pays') and !_request('types')) {
@ -102,11 +100,11 @@ function formulaires_peupler_territoires_verifier() {
}
/**
* Exécution du formulaire : les pays choisis sont soit vidés, soit chargés.
* Exécution du formulaire : les territoires choisis sont soit vidés, soit chargés.
*
* @uses territoire_peupler()
* @uses territoire_depeupler()
* @uses formater_message()
* @uses message_formater()
*
* @return array
* Tableau retourné par le formulaire contenant toujours un message de bonne exécution ou
@ -122,8 +120,7 @@ function formulaires_peupler_territoires_traiter() {
// Acquisition des saisies: comme elles sont obligatoires, il existe toujours une action et un territoire
// à savoir soit un type région ou pays, soit un pays pour une subdivision.
$action = _request('action_peuplement');
$forcer = false;
$action = _request('actions_territoire');
if ($action === 'peupler_force') {
$action = 'peupler';
$forcer = true;
@ -136,6 +133,7 @@ function formulaires_peupler_territoires_traiter() {
// Détermination des options de l'action
$options = array();
$forcer = _request('forcer');
if ($forcer) {
$options['force'] = $forcer;
}

@ -11,17 +11,20 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'cfg_label_objets_associes' => 'Permettre l\'association de territoire à des objets',
// E
'explication_peupler_form' => 'Si les territoires sont déjà chargées ils seront supprimés avant le rechargement. Néanmoins, les éventuelles modifications manuelles faites après le chargement initial et les liens avec les logos et les autres objets seront conservés.
'explication_peupler_form' => 'Si les territoires sont déjà chargées ils seront supprimés avant le rechargement. Néanmoins, les éventuelles modifications manuelles faites après le chargement initial et les liens avec les logos et les autres objets seront conservés.
Le vidage lui ne conserve ni les territoires, ni les extras, ni les liens.',
'explication_zone_pays_territoire' => 'Régions & Pays',
'explication_subdivision_territoire' => 'Subdivisions',
'explication_forcer' => 'Le forçage est utile uniquement pour ajouter après coup des identifiants ou des informations complémentaires sans actionner le vidage au préalable.',
// I
'info_territoire_peuple' => 'chargé',
'info_aucun_parent' => 'aucune',
'info_aucun_enfant' => 'Aucun territoire directement rattaché',
'info_territoire_peuple' => 'chargé',
'info_parent_aucun' => 'Racine de la hiérarchie',
'info_parent_non_disponible' => 'Non disponible',
'info_aucun_enfant' => 'Aucun territoire directement rattaché',
// L
'label_case_forcer' => 'Forcer le peuplement',
'label_case_extra_code' => 'Charger des codes d\'identification supplémentaires pour les territoires choisis',
'label_case_extra_info' => 'Charger des informations complémentaires sur les territoires choisis',
'label_peupler_action' => 'Choisissez une action',
@ -67,11 +70,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'msg_peupler_subdivision_succes' => 'Les subdivisions du ou des pays « @pays@ » ont bien été chargées.',
// T
'territoires_titre' => 'Territoires',
'titre_form_peupler' => 'Données standard',
'titre_page_configurer' => 'Configurer Territoires',
'titre_page_peupler' => 'Peupler Territoires',
'titre_liste_enfant' => 'Territoires directement rattachés',
'territoires_titre' => 'Territoires',
'titre_form_peupler' => 'Données standard',
'titre_page_configurer' => 'Configurer Territoires',
'titre_page_peupler' => 'Peupler Territoires',
'titre_liste_enfant' => 'Territoires directement rattachés',
'titre_liste_extras' => 'Extras du territoire',
'titre_liste_extras_code' => 'Autres identifiants',
'titre_liste_extras_info' => 'Caractéristiques',

@ -2,7 +2,7 @@
[(#SET{ascendance, [(#ISO_TERRITOIRE|territoire_informer_ascendance{#ISO_PARENT, descendant})]})]
<div class="champ contenu_ascendance">
<label><:territoire:champ_ascendance_label:>&nbsp;:</label>
<label><:territoire:champ_ascendance_label:/>&nbsp;:</label>
<ul>
<BOUCLE_ascendance(DATA) {source table, #GET{ascendance}}>
[<li[ class="rang(#CLE|plus{1})"]>
@ -17,7 +17,7 @@
</BOUCLE_ascendance>
<li class="rang1"]>
<span dir="#LANG_DIR">
<:territoires:info_aucun_parent:>
[(#TYPE|=={zone}|?{<:territoires:info_parent_aucun:/>, <:territoires:info_parent_non_disponible:/>})]
</span>
</li>
<//B_ascendance>

@ -34,9 +34,9 @@ function territoire_informer_ascendance($iso_territoire, $iso_parent = null, $or
$ascendance = array();
// Si on ne passe pas le tsn du parent correspondant au taxon pour lequel on cherche l'ascendance
// Si on ne passe pas le parent correspondant au territoire pour lequel on cherche l'ascendance
// alors on le cherche en base de données.
// Le fait de passer ce tsn parent est uniquement une optimisation.
// Le fait de passer le parent est uniquement une optimisation.
if (\is_null($iso_parent)) {
$iso_parent = sql_getfetsel('iso_parent', 'spip_territoires', 'iso_territoire=' . sql_quote($iso_territoire));
}
@ -48,6 +48,9 @@ function territoire_informer_ascendance($iso_territoire, $iso_parent = null, $or
if ($territoire) {
$ascendance[] = $territoire;
$iso_parent = $territoire['iso_parent'];
} else {
// Le parent est d'un autre type qui n'est pas encore peuplé en base : on s'arrête.
$iso_parent = '';
}
}

@ -40,7 +40,7 @@ function territoires_affiche_milieu($flux) {
$territoire = objet_lire('territoire', $id_objet);
// -- tester si les extras 'info' sont chargées pour le type de territoire
include_spip('inc/territoire');
$extra_peuple = territoire_extra_type_est_peuple('info', $territoire['type'], $territoire['iso_pays']);
$extra_peuple = territoire_extra_est_peuple('info', $territoire['type'], $territoire['iso_pays']);
if ($extra_peuple) {
$texte .= recuperer_fond(
'prive/squelettes/inclure/inc-territoire_extras_info',
@ -105,7 +105,7 @@ function territoires_affiche_gauche($flux) {
$territoire = objet_lire('territoire', $id_objet);
// -- tester si les extras 'info' sont chargées pour le type de territoire
include_spip('inc/territoire');
$extra_peuple = territoire_extra_type_est_peuple('code', $territoire['type'], $territoire['iso_pays']);
$extra_peuple = territoire_extra_est_peuple('code', $territoire['type'], $territoire['iso_pays']);
if ($extra_peuple) {
$texte .= recuperer_fond(
'prive/squelettes/inclure/inc-territoire_extras_code',

Loading…
Cancel
Save