diff --git a/base/territoires_stats.php b/base/territoires_stats.php new file mode 100644 index 0000000000000000000000000000000000000000..08f3f61171f6abe4821f08f2060cec05e17416ff --- /dev/null +++ b/base/territoires_stats.php @@ -0,0 +1,25 @@ +<?php +/** + * Déclarations relatives à la base de données. + */ +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} + +/** + * Déclaration des tables secondaires (liaisons). + * Le plugin Territoires déclare la table des caractéristiques complémentaires, `spip_territoires_extras` + * qui est complétée par l'identifiant du feed. + * + * @pipeline declarer_tables_auxiliaires + * + * @param array $tables Description des tables auxilliaires + * + * @return array Description complétée des tables auxilliaires + */ +function territoires_stats_declarer_tables_auxiliaires(array $tables) : array { + // Ajout de champs dans la tables des extras de territoires : spip_territoires_extras + $tables['spip_territoires_extras']['field']['feed_id'] = "varchar(255) DEFAULT '' NOT NULL"; + + return $tables; +} diff --git a/ezmashup/territoires_stats.php b/ezmashup/territoires_stats.php new file mode 100644 index 0000000000000000000000000000000000000000..623cec3ef3538355a263fe234e0d4ee8a4e841cf --- /dev/null +++ b/ezmashup/territoires_stats.php @@ -0,0 +1,62 @@ +<?php +/** + * Ce fichier contient les fonctions de service de Mashup Factory personnalisées par le plugin Statistiques des Territoires. + */ +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} + +// ----------------------------------------------------------------------- +// ------------------------- FEEDS (services) ---------------------------- +// ----------------------------------------------------------------------- + +/** + * Renvoie la liste des catégories et leur description. + * + * Une seule catégorie pour les feeds fournissant des données statistiques sur les territoires + * + * @pipeline_appel feed_lister_categories + * + * @param string $plugin Préfixe du plugin utilisateur. + * + * @return array Liste des catégories et de leur description au format [id] = tableau de description avec le nom (label), + * la description et l'icone. + */ +function territoires_stats_feed_lister_categories(string $plugin) : array { + // Initialisation des catégories par défaut + return [ + 'territory_data' => [ + 'name' => '<:territoires_stats:label_feed_category_territory_data:>', + 'description' => '<:territoires_stats:description_feed_category_territory_data:>', + 'icon' => 'territory-24.svg' + ], + ]; +} + +/** + * Renvoie la catégorie par défaut dans la liste des catégories supportées par le plugin. + * + * @param string $plugin Préfixe du plugin utilisateur. + * + * @return string Identifiant de la catégorie par défaut. + */ +function territoires_stats_feed_initialiser_categorie_defaut(string $plugin) : string { + // Initialisation des catégories par défaut de Mashup Factory + return 'territory_data'; +} + +/** + * Renvoie la configuration par défaut du dossier relatif où trouver les feeds. + * Cette information est utilisée a minima au chargement des feeds disponibles. + * + * Le plugin de statistiques pour les territoires crée dynamiquement les feeds. De fait, il les stocke dans le + * dossier des données permanentes inaccessibles, _DIR_ETC. + * + * @param string $plugin Préfixe du plugin utilisateur. + * + * @return string Chemin relatif du dossier où chercher les feeds. + */ +function territoires_stats_feed_initialiser_dossier(string $plugin) : string { + // Le plugin range les feeds créés dynamiquement dans _DIR_ETC. + return _DIR_ETC . $plugin . '/feeds/'; +} diff --git a/lang/paquet-territoires_stats_fr.php b/lang/paquet-territoires_stats_fr.php new file mode 100644 index 0000000000000000000000000000000000000000..f481971b31795962f56821a8df18402b955210fd --- /dev/null +++ b/lang/paquet-territoires_stats_fr.php @@ -0,0 +1,12 @@ +<?php +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} + +$GLOBALS[$GLOBALS['idx_lang']] = array( + + // T + 'territoires_stats_description' => 'Ce plugin fournit un mécanisme issu du plugin Factory Mashup pour associer de multiples données statistiques aux différents territoires fournis par le plugin Territoires. Il fournit ainsi les bases nécessaires à la création de cartes choroplèthes.', + 'territoires_stats_nom' => 'Statistiques pour les territoires', + 'territoires_stats_slogan' => 'Associer des données statistiques aux territoires' +); diff --git a/lang/territoires_stats_fr.php b/lang/territoires_stats_fr.php new file mode 100644 index 0000000000000000000000000000000000000000..a7e5f44ff517ef13c9616790b82036f92245451c --- /dev/null +++ b/lang/territoires_stats_fr.php @@ -0,0 +1,11 @@ +<?php +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} + +$GLOBALS[$GLOBALS['idx_lang']] = array( + + // L + 'label_feed_category_territory_data' => 'Données statistiques sur les territoires', + +); diff --git a/paquet.xml b/paquet.xml index e62e86912bc2810d328cac713a066e332b05e4e9..70444add40d3d92a8b8d9c74a61538525e2f0428 100644 --- a/paquet.xml +++ b/paquet.xml @@ -3,7 +3,7 @@ version="1.0.0" etat="dev" compatibilite="[4.0.0;4.2.*]" - logo="territoire_stats.svg" + logo="territoires_stats.svg" schema="1" > <nom>Statistiques pour les territoires</nom> @@ -13,8 +13,8 @@ <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence> - <pipeline nom="declarer_tables_principales" inclure="base/isocode_declarations.php" /> + <pipeline nom="declarer_tables_auxiliaires" inclure="base/territoires_stats.php" /> <necessite nom="ezmashup" compatibilite="[1.0.0;]" /> - <necessite nom="territoires" compatibilite="[1.5.5;]" /> + <necessite nom="territoires" compatibilite="[1.5.6;]" /> </paquet> diff --git a/territoires_stats.svg b/territoires_stats.svg index 35452b6d7bece890bf8b4c491017a4bf34bcf35c..8b59fad611162c10c34311e6354e94c68d068abc 100644 --- a/territoires_stats.svg +++ b/territoires_stats.svg @@ -1,3 +1,9 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" xml:space="preserve" width="64" height="64"> - <path fill="#666" d="m28.5 28.3 10.7-17.8L62 53.4H2l20-37.1 6.5 12zm3.2 5.8 7.4 13.6h13.4L38.9 22.2l-7.2 11.9zM11.6 47.7h20.9L22 28.3 11.6 47.7z" /> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="64" height="64" viewBox="0, 0, 64, 64"> + <g id="Calque_1"> + <path d="M34.111,2.037 L39.351,7.277 L24.381,22.247 L16.971,14.836 L7.24,24.568 L2,19.327 L16.971,4.357 L24.381,11.768 L34.111,2.037 z" fill="#666666"/> + <path d="M1.375,20.806 L10.562,20.806 L10.562,33.25 L1.375,33.25 L1.375,20.806 z M12.094,5.25 L21.281,5.25 L21.281,33.25 L12.094,33.25 L12.094,5.25 z M22.812,13.028 L32,13.028 L32,33.25 L22.812,33.25 L22.812,13.028 z" fill="#000000" id="bar-chart-2-fill" display="none"/> + <path d="M28.5,36.3 L39.2,18.5 L62,61.4 L2,61.4 L22,24.3 L28.5,36.3 z M31.7,42.1 L39.1,55.7 L52.5,55.7 L38.9,30.2 L31.7,42.1 z M11.6,55.7 L32.5,55.7 L22,36.3 L11.6,55.7 z" fill="#2187E1"/> + </g> </svg> diff --git a/territoires_stats_administrations.php b/territoires_stats_administrations.php new file mode 100644 index 0000000000000000000000000000000000000000..51e5bbb31ccab6b26a1f8e22829429bd483b2ad5 --- /dev/null +++ b/territoires_stats_administrations.php @@ -0,0 +1,38 @@ +<?php + +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} + +/** + * Installation du schéma de données propre au plugin et gestion des migrations suivant + * les évolutions du schéma. + * + * Le plugin rajoute une colonne feed_id dans la table `spip_territoires_extras`. + * + * @param string $nom_meta_base_version + * @param string $version_cible + * + * @return void + */ +function territoires_stats_upgrade($nom_meta_base_version, $version_cible) { + // Ajoute de la colonne feed_id + $maj['create'][] = ['sql_alter', "TABLE spip_territoires_extras ADD feed_id varchar(255) DEFAULT '' NOT NULL AFTER type_extra"]; + + include_spip('base/upgrade'); + maj_plugin($nom_meta_base_version, $version_cible, $maj); +} + +/** + * Suppression de l'ensemble du schéma de données propre au plugin. + * + * @param string $nom_meta_base_version + * + * @return void + */ +function territoires_stats_vider_tables($nom_meta_base_version) { + // Supprimer la colonne ajoutée dans la table des extras de territoires + sql_alter('TABLE spip_territoires_extras DROP feed_id'); + + effacer_meta($nom_meta_base_version); +}