diff --git a/ezcache/territoires_stats.php b/ezcache/territoires_stats.php deleted file mode 100644 index 34dddeea2806de8e81d320470863bf8a37a3c73f..0000000000000000000000000000000000000000 --- a/ezcache/territoires_stats.php +++ /dev/null @@ -1,54 +0,0 @@ -<?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; -} diff --git a/ezmashup/config.template.yaml b/ezmashup/config.template.yaml index a2387d76bc99640949449920f893e96486d4f9af..d17396cffdae3dd582ecbee65e2109c9bb68d902 100644 --- a/ezmashup/config.template.yaml +++ b/ezmashup/config.template.yaml @@ -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 diff --git a/formulaires/creer_feed_territoires.php b/formulaires/creer_feed_territoires.php index bbbff34610810e682138966f20a5ff57ac59a6ff..ac160db20a49bb3a28e31a74513b6520dce78e92 100644 --- a/formulaires/creer_feed_territoires.php +++ b/formulaires/creer_feed_territoires.php @@ -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; diff --git a/formulaires/editer_carte_territoires.php b/formulaires/editer_carte_territoires.php deleted file mode 100644 index 51d8a52c1013208a6b6e1ae1ee8ae7671e09e556..0000000000000000000000000000000000000000 --- a/formulaires/editer_carte_territoires.php +++ /dev/null @@ -1,111 +0,0 @@ -<?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); -} diff --git a/formulaires/editer_carte_territoires.html b/formulaires/editer_feed_territoires.html similarity index 67% rename from formulaires/editer_carte_territoires.html rename to formulaires/editer_feed_territoires.html index 9753a2853b1c67bd1519707dc46ae35d251a9218..0a86529a5c5c610a5bbe75cba48d5ce97e92efad 100644 --- a/formulaires/editer_carte_territoires.html +++ b/formulaires/editer_feed_territoires.html @@ -1,11 +1,11 @@ -<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--> diff --git a/formulaires/editer_feed_territoires.php b/formulaires/editer_feed_territoires.php new file mode 100644 index 0000000000000000000000000000000000000000..0f103efcca61b55c7c6bf5aad82b29811632d7d7 --- /dev/null +++ b/formulaires/editer_feed_territoires.php @@ -0,0 +1,52 @@ +<?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; +} diff --git a/lang/territoires_stats_fr.php b/lang/territoires_stats_fr.php index a8e5a4b490773ddae227be95826d2b18d0a50021..27fb7dafa57cfa0e9f0bb3027d6ab25fae78f008 100644 --- a/lang/territoires_stats_fr.php +++ b/lang/territoires_stats_fr.php @@ -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', diff --git a/prive/squelettes/contenu/feed_territoires_creer.html b/prive/squelettes/contenu/feed_territoires_creer.html index 8e646847ddad1d141f011506ea2c84f5a693bdfa..7355f606e635a576bc44a6b20d52c62cba63451d 100644 --- a/prive/squelettes/contenu/feed_territoires_creer.html +++ b/prive/squelettes/contenu/feed_territoires_creer.html @@ -1,4 +1,4 @@ -[(#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"> diff --git a/prive/squelettes/contenu/feed_territoires_edit.html b/prive/squelettes/contenu/feed_territoires_edit.html new file mode 100644 index 0000000000000000000000000000000000000000..7598ea8e882623265e8ec65718ef235a70c57ea5 --- /dev/null +++ b/prive/squelettes/contenu/feed_territoires_edit.html @@ -0,0 +1,24 @@ +[(#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> diff --git a/prive/squelettes/contenu/peupler_statistiques.html b/prive/squelettes/contenu/peupler_statistiques.html index 40c3b6c02d59fda2697c0f940b7ff925cce78d06..0fdf13acb8d3cc87558558f9cf14d854e5e4eb6c 100644 --- a/prive/squelettes/contenu/peupler_statistiques.html +++ b/prive/squelettes/contenu/peupler_statistiques.html @@ -1,5 +1,6 @@ [(#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}})