From 7f50915ad629c962216d92e72d3fba33b57ea5e0 Mon Sep 17 00:00:00 2001 From: Eric Lupinacci Date: Sat, 4 Jan 2020 12:38:47 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20de=20la=20boite=20d'infos?= =?UTF-8?q?=20de=20la=20rubrique=20plugin=20et=20aussi=20ajout=20de=20la?= =?UTF-8?q?=20coloration=20du=20pr=C3=A9fixe=20dans=20la=20boite=20d'infos?= =?UTF-8?q?=20du=20plugin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contrib_pipelines.php | 62 +++++++++++++++++++ inc/contrib_plugin.php | 61 ++++++++++++++++++ lang/contrib_fr.php | 3 +- paquet.xml | 2 + prive/objets/infos/rubrique.html | 2 +- .../inc-bouton_voir_rubrique_plugin.html | 5 ++ prive/style_prive_plugin_contrib.html | 1 - 7 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 inc/contrib_plugin.php create mode 100644 prive/squelettes/inclure/inc-bouton_voir_rubrique_plugin.html diff --git a/contrib_pipelines.php b/contrib_pipelines.php index 1a85c4c..0b42ded 100644 --- a/contrib_pipelines.php +++ b/contrib_pipelines.php @@ -53,3 +53,65 @@ function contrib_affiche_droite($flux) { return $flux; } + +/** + * Insertion dans le pipeline boite_infos (SPIP). + * - Fiche objet d'un plugin : + * - Rajouter un lien privé vers la rubrique associée si elle existe. + * - Enrichir le préfixe avec la couleur de la catégorie du plugin. + * + * @pipeline boite_infos + * + * @param $flux array Le contexte du pipeline + * + * @return $flux array Le contexte du pipeline modifié + */ +function contrib_boite_infos($flux) { + if (isset($flux['args']['type'])) { + // Initialisation du type d'objet concerné. + $objet = $flux['args']['type']; + + if ( + ($objet_exec = trouver_objet_exec($objet)) + and !$objet_exec['edition'] + and ($objet == 'plugin') + and ($id_plugin = intval($flux['args']['id'])) + ) { + // Page d'un plugin. + + // Ajout du bouton "voir la rubrique..." + // -- On recherche le préfixe du plugin + include_spip('inc/svp_plugin'); + $prefixe = plugin_lire($id_plugin, 'prefixe'); + + // -- Inclure le bouton "voir la rubrique" si elle existe + $contexte = array( + 'id_plugin' => $id_plugin, + 'prefixe' => $prefixe, + ); + if ($bouton = recuperer_fond('prive/squelettes/inclure/inc-bouton_voir_rubrique_plugin', $contexte)) { + $flux['data'] .= $bouton; + } + + // Coloration du préfixe du plugin + // -- on recherche la catégorie du plugin + include_spip('inc/contrib_plugin'); + $categorie = plugin_lire_categorie($prefixe, 'racine'); + + if ($categorie) { + // -- on ajoute au span une class décrivant la couleur de la catégorie + $cherche = "/(]*class=(?:'|\")prefixe[^>]*>\s*)()/is"; + if (preg_match($cherche, $flux['data'], $m)) { + $flux['data'] = preg_replace( + $cherche, + '$1' . "", + $flux['data'], + 1 + ); + } + } + } + } + + return $flux; +} diff --git a/inc/contrib_plugin.php b/inc/contrib_plugin.php new file mode 100644 index 0000000..23dd174 --- /dev/null +++ b/inc/contrib_plugin.php @@ -0,0 +1,61 @@ + 'Dashboard SPIP-Contrib', // L - 'icone_voir_plugin' => 'Voir le plugin', + 'icone_voir_plugin' => 'Voir le plugin', + 'icone_voir_rubrique_plugin' => 'Voir la rubrique de documentation', // L 'type_article_label' => 'Type d\'article', diff --git a/paquet.xml b/paquet.xml index d0a7585..b886935 100644 --- a/paquet.xml +++ b/paquet.xml @@ -18,6 +18,7 @@ + @@ -25,6 +26,7 @@ + diff --git a/prive/objets/infos/rubrique.html b/prive/objets/infos/rubrique.html index 1bb66d7..7f075f8 100644 --- a/prive/objets/infos/rubrique.html +++ b/prive/objets/infos/rubrique.html @@ -10,7 +10,7 @@ [(#SET{categorie_secteur, #ID_RUBRIQUE|rubrique_lire_categorie_secteur})] [
(#PROFONDEUR|=={2}|?{<:svp:label_prefixe:>, <:svptype:categorie_identifiant_label:>}) : -

[(#PROFONDEUR|=={2}|?{#PREFIXE, #CATEGORIE})]

+

[(#PROFONDEUR|=={2}|?{#PREFIXE, #CATEGORIE})]

] ] diff --git a/prive/squelettes/inclure/inc-bouton_voir_rubrique_plugin.html b/prive/squelettes/inclure/inc-bouton_voir_rubrique_plugin.html new file mode 100644 index 0000000..5a49098 --- /dev/null +++ b/prive/squelettes/inclure/inc-bouton_voir_rubrique_plugin.html @@ -0,0 +1,5 @@ + + [(#ID_RUBRIQUE|generer_url_entite{rubrique} + |icone_horizontale{<:contrib:icone_voir_rubrique_plugin:>, rubrique_plugin-24}) + ] + diff --git a/prive/style_prive_plugin_contrib.html b/prive/style_prive_plugin_contrib.html index 89f985d..23e76b4 100644 --- a/prive/style_prive_plugin_contrib.html +++ b/prive/style_prive_plugin_contrib.html @@ -21,7 +21,6 @@ #SET{right,#ENV{ltr}|choixsiegal{left,right,left}} /* Boite d'infos d'une rubrique */ -#navigation .infos .numero p.plugin { font-size: 1.4em; text-transform: lowercase; } #navigation .infos .numero.admin { border-bottom: 0;} #navigation .infos .liste-items.auteurs { border-top: 0;} #navigation .infos .liste-items.auteurs .item.auteur { border-top: 0;}