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

Une première étape avec les bases du plugin

parent d69d450c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<?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;
}
<?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/';
}
<?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'
);
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
$GLOBALS[$GLOBALS['idx_lang']] = array(
// L
'label_feed_category_territory_data' => 'Données statistiques sur les territoires',
);
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
version="1.0.0" version="1.0.0"
etat="dev" etat="dev"
compatibilite="[4.0.0;4.2.*]" compatibilite="[4.0.0;4.2.*]"
logo="territoire_stats.svg" logo="territoires_stats.svg"
schema="1" schema="1"
> >
<nom>Statistiques pour les territoires</nom> <nom>Statistiques pour les territoires</nom>
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence> <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="ezmashup" compatibilite="[1.0.0;]" />
<necessite nom="territoires" compatibilite="[1.5.5;]" /> <necessite nom="territoires" compatibilite="[1.5.6;]" />
</paquet> </paquet>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" xml:space="preserve" width="64" height="64"> <?xml version="1.0" encoding="UTF-8"?>
<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" /> <!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> </svg>
<?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);
}
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