Skip to content
Extraits de code Groupes Projets
Valider 4a5a2560 rédigé par Eric Lupinacci's avatar Eric Lupinacci
Parcourir les fichiers

Suivre les modifications de ezmashup.

Première mise en place du formulaire d'édition.
parent da356ef2
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<?php
/**
* Ce fichier contient les fonctions de service nécessitées par le plugin Cache Factory.
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Renvoie la configuration spécifique des caches gérés par REST Factory si les fonctions de collection des données
* sont directement codés en PHP.
*
* Dans le cas où les données JSON sont créées via des squelettes SPIP, le cache est déjà géré par SPIP.
*
* @param string $plugin Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
* un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
*
* @return array<string, mixed> Tableau de la configuration brute du plugin Taxonomie.
*/
function territoires_stats_cache_configurer(string $plugin) : array {
// Initialisation du tableau de configuration avec les valeurs par défaut du plugin Cache.
$configuration = [
'config' => [
'racine' => '_DIR_ETC',
'sous_dossier' => true,
'nom_prefixe' => 'config',
'nom_obligatoire' => [],
'nom_facultatif' => [],
'extension' => '.yaml',
'securisation' => false,
'serialisation' => false,
'decodage' => true,
'separateur' => '',
'conservation' => 0,
'administration' => false
],
'source' => [
'racine' => '_DIR_ETC',
'sous_dossier' => true,
'nom_prefixe' => 'source_1',
'nom_obligatoire' => [],
'nom_facultatif' => [],
'extension' => '.json',
'securisation' => false,
'serialisation' => false,
'decodage' => true,
'separateur' => '-',
'conservation' => 0,
'administration' => false
],
];
return $configuration;
}
......@@ -7,6 +7,8 @@ title: ''
description: ''
# Catégorisation du feed
# -- Les feeds, qui sont créés par l'utilisateur, sont éditables
is_editable: true
# -- Pour le plugin, la catégorie des feeds est toujours la même, `territory_data`
category: 'territory_data'
# -- Le plugin utilise les tags pour définir le type de territoire, le pays et le code territoire utilisé dans le jeu de données
......
......@@ -313,7 +313,7 @@ function formulaires_creer_feed_territoires_traiter() : array {
// On considère que toutes les vérifications ont été faites et que donc les variables saisies sont cohérentes
// -- identification
$description_yaml['title'] = $titre_feed;
// -- catégorisation : seuls les tags sont à mettre à jour
// -- catégorisation : seuls les tags sont à mettre à jour (category imposée, édition autorisée)
$description_yaml['tags']['type'] = $type;
$description_yaml['tags']['pays'] = $pays;
$description_yaml['tags']['type_id'] = $type_code;
......
<?php
/**
* Gestion du formulaire de d'édition de carte_territoires.
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/actions');
include_spip('inc/editer');
/**
* Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité.
*
* @param int|string $id_carte Identifiant du carte_territoires. 'new' pour un nouveau carte_territoires.
* @param string $retour URL de redirection après le traitement
* @param int $lier_trad Identifiant éventuel d'un carte_territoires source d'une traduction
* @param string $config_fonc Nom de la fonction ajoutant des configurations particulières au formulaire
* @param array $row Valeurs de la ligne SQL de l'objet carte_territoires, si connu
* @param string $hidden Contenu HTML ajouté en même temps que les champs cachés du formulaire.
*
* @return string Hash du formulaire
*/
function formulaires_editer_carte_territoires_identifier_dist($id_carte = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
return serialize([(int) $id_carte]);
}
/**
* Chargement du formulaire d'édition de carte_territoires.
*
* Déclarer les champs postés et y intégrer les valeurs par défaut
*
* @uses formulaires_editer_objet_charger()
*
* @param int|string $id_carte Identifiant du carte_territoires. 'new' pour un nouveau carte_territoires.
* @param string $retour URL de redirection après le traitement
* @param int $lier_trad Identifiant éventuel d'un carte_territoires source d'une traduction
* @param string $config_fonc Nom de la fonction ajoutant des configurations particulières au formulaire
* @param array $row Valeurs de la ligne SQL de l'objet carte_territoires, si connu
* @param string $hidden Contenu HTML ajouté en même temps que les champs cachés du formulaire.
*
* @return array Environnement du formulaire
*/
function formulaires_editer_carte_territoires_charger_dist($id_carte = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
// Charger l'objet Carte de territoires de façon standard
$valeurs = formulaires_editer_objet_charger('carte_territoires', $id_carte, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
// Rajouter la liste des territoires et des exclusions si la carte est de type 'territoire'
if (
$valeurs
and !empty($valeurs['type_carte'])
and ($valeurs['type_carte'] === 'territoire')
) {
// -- liste des territoires inclus
include_spip('inc/carte_territoires');
$territoires_inclus = carte_territoires_detourer($valeurs['id_carte'], 'iso_territoire');
// -- liste des territoires exclus si il y en a
$parametres = json_decode($valeurs['parametres'], true);
$territoires_exclus = $parametres['exclusions'] ?? [];
// -- Construire la liste de tous les territoires avec leur nom
$territoires = array_merge($territoires_inclus, $territoires_exclus);
$territoires = sql_allfetsel('iso_territoire, nom_usage', 'spip_territoires', sql_in('iso_territoire', $territoires), '');
$territoires = array_column($territoires, 'nom_usage', 'iso_territoire');
asort($territoires);
$valeurs['_exclusions'] = $territoires;
$valeurs['_exclusions_defaut'] = $territoires_exclus;
}
return $valeurs;
}
/**
* Vérifications du formulaire d'édition de carte_territoires.
*
* Vérifier les champs postés et signaler d'éventuelles erreurs
*
* @uses formulaires_editer_objet_verifier()
*
* @param int|string $id_carte Identifiant du carte_territoires. 'new' pour un nouveau carte_territoires.
* @param string $retour URL de redirection après le traitement
* @param int $lier_trad Identifiant éventuel d'un carte_territoires source d'une traduction
* @param string $config_fonc Nom de la fonction ajoutant des configurations particulières au formulaire
* @param array $row Valeurs de la ligne SQL de l'objet carte_territoires, si connu
* @param string $hidden Contenu HTML ajouté en même temps que les champs cachés du formulaire.
*
* @return array Tableau des erreurs
*/
function formulaires_editer_carte_territoires_verifier_dist($id_carte = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
return formulaires_editer_objet_verifier('carte_territoires', $id_carte);
}
/**
* Traitement du formulaire d'édition de carte_territoires.
*
* Traiter les champs postés
*
* @uses formulaires_editer_objet_traiter()
*
* @param int|string $id_carte Identifiant du carte_territoires. 'new' pour un nouveau carte_territoires.
* @param string $retour URL de redirection après le traitement
* @param int $lier_trad Identifiant éventuel d'un carte_territoires source d'une traduction
* @param string $config_fonc Nom de la fonction ajoutant des configurations particulières au formulaire
* @param array $row Valeurs de la ligne SQL de l'objet carte_territoires, si connu
* @param string $hidden Contenu HTML ajouté en même temps que les champs cachés du formulaire.
*
* @return array Retours des traitements
*/
function formulaires_editer_carte_territoires_traiter_dist($id_carte = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
return formulaires_editer_objet_traiter('carte_territoires', $id_carte, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
}
<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_carte}'>
<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{feed_id}'>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method="post" action="#ENV{action}"><div>
#ACTION_FORMULAIRE
<input type="hidden" name="id_carte" value="#ENV{id_carte}" />
<input type="hidden" name="feed_id" value="#ENV{feed_id}" />
<div class="editer-groupe">
[(#SAISIE{input, titre,
label=<:carte_territoires:champ_titre_label:>
......@@ -16,16 +16,6 @@
rows=5,
class=inserer_barre_edition
})]
[(#ENV{type_carte}|=={carte}|non)
[(#SAISIE{checkbox_flex, exclusions,
explication=<:cartes_territoires:explication_etape_2_complement:>,
data=#ENV{_exclusions},
defaut=#ENV{_exclusions_defaut},
extraire_multi=oui,
conteneur_class=pleine_largeur,
})]
]
</div>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
......
<?php
/**
* Gestion du formulaire de d'édition d'un feed de territoires.
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/actions');
include_spip('inc/editer');
/**
* Chargement du formulaire d'édition d'un feed de territoires.
*
* @param string $id_feed Identificant du feed servant à l'affichage du bloc de détails
* @param string $redirect URL de redirection suite à la demande d'édition (inutile pour les autres actions)
*
* @return array Environnement du formulaire
*/
function formulaires_editer_feed_territoires_charger_dist(string $id_feed, string $redirect) {
$valeurs = [];
return $valeurs;
}
/**
* Vérifications du formulaire d'édition d'un feed de territoires.
*
* @param string $feed_id Identificant du feed servant à l'affichage du bloc de détails
* @param string $redirect URL de redirection suite à la demande d'édition (inutile pour les autres actions)
*
* @return array Tableau des erreurs
*/
function formulaires_editer_feed_territoires_verifier_dist(string $id_feed, string $redirect) {
$erreurs = [];
return $erreurs;
}
/**
* Traitement du formulaire d'édition d'un feed de territoires.
*
* @param string $feed_id Identificant du feed servant à l'affichage du bloc de détails
* @param string $redirect URL de redirection suite à la demande d'édition (inutile pour les autres actions)
*
* @return array Retours des traitements
*/
function formulaires_editer_feed_territoires_traiter_dist(string $id_feed, string $redirect) {
$retour = [];
return $retour;
}
......@@ -25,6 +25,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// I
'icone_creer_feed' => 'Créer un jeu de données',
'icone_modifier_feed' => 'Modifier le jeu de données',
'info_0_feed' => 'Aucun jeu de données',
'info_1_feed' => '1 jeu de données',
'info_feed_aucun' => 'Utilisez les boutons pour créer des jeux de données',
......
[(#AUTORISER{creer, feedterritoires}|sinon_interdire_acces)]
[(#AUTORISER{creer, feed, '', #NULL, #ARRAY{plugin, territoires_stats}}|sinon_interdire_acces)]
<h1 class="grostitre"><:territoires_stats:titre_page_creer:></h1>
[<div class="noajax">
......
[(#AUTORISER{actionner, feed, #ENV{feed_id}, #NULL, #ARRAY{plugin, territoires_stats}}|sinon_interdire_acces)]
#SET{redirect, #URL_ECRIRE{peupler_statistiques}}
<div class="cadre-formulaire-editer">
<div class="entete-formulaire">
[(#ENV{feed_id}|oui)
[(#GET{redirect}|icone_verticale{<:icone_retour:/>,territoires_feed,'',left retour[(#ENV{retourajax,''}|oui)ajax preload]})]
]
<:territoires_stats:icone_modifier_feed:>
<BOUCLE_info_feed(FEEDS) {feed_id}>
[<h1>(#TITLE)</h1>]
</BOUCLE_info_feed>
</div>
[(#ENV{retourajax,''}|oui)
#SET{redirect,'javascript:if (window.jQuery) jQuery(".entete-formulaire .retour a").followLink();'}
<div class="ajax">
]
[(#FORMULAIRE_EDITER_FEED_TERRITOIRES{#ENV{feed_id}, #GET{redirect}})]
[(#ENV{retourajax,''}|oui)
</div>
<script type="text/javascript">/*<!\[CDATA\[*/reloadExecPage('#ENV{exec}');/*\]\]>*/</script>
]
</div>
[(#AUTORISER{voir, _feeds}|sinon_interdire_acces)]
#SET{categorie, territory_data}
#SET{redirect, #URL_ECRIRE{feed_territoires_edit}|parametre_url{feed_id, #ENV{feed_id}}}
<h1 class="grostitre">
<:territoires_stats:titre_page_peupler:>
......@@ -12,7 +13,7 @@
[(#REM) <!-- Affichage du formulaire d'admin des feeds filtré sur la catégorie des statistiques des territoires --> ]
[<div class="ajax noscroll">
(#FORMULAIRE_ADMIN_FEEDS{territoires_stats, #GET{categorie}, #ENV{feed_id}, territoires_stats})
(#FORMULAIRE_ADMIN_FEEDS{territoires_stats, #GET{categorie}, #ENV{feed_id}, territoires_stats, #GET{redirect}})
</div>]
[(#AUTORISER{creer, feed, '', #NULL, #ARRAY{plugin, territoires_stats}})
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter