From 165adbad68a76a32b75f12689c5f8881042c3f3c Mon Sep 17 00:00:00 2001 From: "eric@smellup.net" <> Date: Sun, 16 Jun 2019 18:47:12 +0000 Subject: [PATCH] =?UTF-8?q?SVP=20Typologie=20g=C3=A8re=20maintenant=20tout?= =?UTF-8?q?e=20la=20typologie=20des=20plugins,=20soit=20les=20cat=C3=A9gor?= =?UTF-8?q?ies=20et=20les=20tags.=20Aussi,=20contrairement=20=C3=A0=20ce?= =?UTF-8?q?=20qui=20a=20=C3=A9t=C3=A9=20pr=C3=A9vu=20dans=20les=20commits?= =?UTF-8?q?=20pr=C3=A9c=C3=A9dents=20on=20supprime=20toute=20manipulation?= =?UTF-8?q?=20des=20cat=C3=A9gories=20et=20des=20tags=20dans=20SVP=20:=20-?= =?UTF-8?q?=20les=20colonnes=20tags=20et=20categorie=20sont=20supprim?= =?UTF-8?q?=C3=A9es=20de=20spip=5Fplugins=20-=20le=20chargement=20du=20XML?= =?UTF-8?q?=20consid=C3=A8re=20encore=20l'attribut=20ou=20la=20balise=20ca?= =?UTF-8?q?tegorie=20par=20souci=20de=20compatibilit=C3=A9=20mais=20ne=20l?= =?UTF-8?q?e=20renvoie=20pas.=20-=20il=20ne=20reste=20plus=20que=20les=20A?= =?UTF-8?q?PI=20d'affichage=20qui=20utilisent=20la=20cat=C3=A9gorie=20comm?= =?UTF-8?q?e=20filtre=20mais=20qui=20fonctionnent=20tr=C3=A8s=20bien=20san?= =?UTF-8?q?s=20et=20ne=20sont=20utilis=C3=A9s=20que=20par=20Plugins=20SPIP?= =?UTF-8?q?.=20Ces=20API=20seront=20revus=20dans=20un=20prochain=20commit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cette version de SVP qui inaugure une branche 2.0 est totalement compatible avec les sites de production fonctionnant en mode runtime mais est incomptaible avec Plugins SPIP. --- .gitattributes | 1 - base/svp_declarer.php | 2 - exec/admin_plugin.php | 4 +- formulaires/configurer_svp.html | 25 ------ formulaires/inc-admin_plugin_fonctions.php | 7 +- formulaires/inc-plugins_trouves.html | 4 +- inc/svp_depoter_distant.php | 25 +----- inc/svp_depoter_local.php | 18 ----- inc/svp_phraser.php | 16 ++-- inc/svp_rechercher.php | 7 +- inc/svp_typologie.php | 93 ---------------------- paquet.xml | 4 +- plugins/preparer_sql_paquet.php | 2 - plugins/preparer_sql_plugin.php | 4 - prive/objets/contenu/plugin.html | 6 -- prive/objets/liste/plugins.html | 4 +- svp_administrations.php | 23 ++---- 17 files changed, 31 insertions(+), 214 deletions(-) delete mode 100644 inc/svp_typologie.php diff --git a/.gitattributes b/.gitattributes index eb161dc..f2ea28e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,7 +12,6 @@ formulaires/inc-admin_plugin_fonctions.php -text formulaires/inc-confirmer_actions.html -text inc/svp_actionner.php -text inc/svp_depoter_local.php -text -inc/svp_typologie.php -text lang/paquet-svp.xml -text lang/paquet-svp_ar.php -text lang/paquet-svp_br.php -text diff --git a/base/svp_declarer.php b/base/svp_declarer.php index 9feb11d..aa708ad 100644 --- a/base/svp_declarer.php +++ b/base/svp_declarer.php @@ -91,8 +91,6 @@ function svp_declarer_tables_objets_sql($tables) { "prefixe" => "varchar(30) DEFAULT '' NOT NULL", "nom" => "text DEFAULT '' NOT NULL", "slogan" => "text DEFAULT '' NOT NULL", - "categorie" => "varchar(100) DEFAULT '' NOT NULL", - "tags" => "text DEFAULT '' NOT NULL", "vmax" => "varchar(24) DEFAULT '' NOT NULL", // version la plus elevee des paquets du plugin "date_crea" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus ancienne des paquets du plugin "date_modif" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus recente des paquets du plugin diff --git a/exec/admin_plugin.php b/exec/admin_plugin.php index be46e0e..ee79479 100644 --- a/exec/admin_plugin.php +++ b/exec/admin_plugin.php @@ -92,11 +92,9 @@ function exec_admin_plugin_dist() { include_spip('exec/fond'); */ - - // liste des erreurs mises en forme + // liste des erreurs mises en forme $erreur_activation = plugin_donne_erreurs(); - $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin"); diff --git a/formulaires/configurer_svp.html b/formulaires/configurer_svp.html index f616a3f..33ac211 100644 --- a/formulaires/configurer_svp.html +++ b/formulaires/configurer_svp.html @@ -26,31 +26,6 @@ -
- <:svp:fieldset_typologie:> -
- #SET{name,utilisation_categorie}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} -
- [(#GET{erreurs}) - ]
- - -
-
- - #SET{name,utilisation_tag}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} -
- [(#GET{erreurs}) - ]
- - -
-
-
-
-
<:svp:fieldset_debug:>
diff --git a/formulaires/inc-admin_plugin_fonctions.php b/formulaires/inc-admin_plugin_fonctions.php index df983d5..4434ddd 100644 --- a/formulaires/inc-admin_plugin_fonctions.php +++ b/formulaires/inc-admin_plugin_fonctions.php @@ -1,7 +1,7 @@ <:svp:message_ok_plugins_trouves{nb_plugins=#GET{nb},tri=#GET{tri}}:>

] diff --git a/inc/svp_depoter_distant.php b/inc/svp_depoter_distant.php index 68ee086..f140c84 100644 --- a/inc/svp_depoter_distant.php +++ b/inc/svp_depoter_distant.php @@ -448,11 +448,6 @@ function svp_actualiser_paquets($id_depot, $paquets, &$nb_paquets, &$nb_plugins, $insert_contribs = array(); $prefixes = array(); // prefixe => id_plugin - // Initialisation de la configuration de l'utilisation des champs categorie et tags - include_spip('inc/config'); - $utiliser_categorie = lire_config('svp/utilisation_categorie', false); - $utiliser_tag = lire_config('svp/utilisation_tag', false); - // On met a jour ou on cree chaque paquet a partir du contenu du fichier xml // On ne fait pas cas de la compatibilite avec la version de SPIP installee // car l'operation doit permettre de collecter tous les paquets @@ -492,20 +487,6 @@ function svp_actualiser_paquets($id_depot, $paquets, &$nb_paquets, &$nb_plugins, . basename($insert_paquet['nom_archive'], '.zip') . '.' . pathinfo($insert_paquet['logo'], PATHINFO_EXTENSION); } - - // Si la configuration requiert l'utilisation de la catégorie de plugins on la récupère à partir - // du serveur de référentiel de plugins. Sinon, on la force à vide. - $insert_plugin['categorie'] = ''; - if ($utiliser_categorie) { - $insert_plugin['categorie'] = plugin_acquerir_type($insert_plugin['prefixe'], 'categorie'); - } - - // Si la configuration requiert l'utilisation des tags de plugins on les récupère à partir - // du serveur de référentiel de plugins. Sinon, on force le champ à vide. - $insert_plugin['tags'] = ''; - if ($utiliser_tag) { - $insert_plugin['tags'] = plugin_acquerir_type($insert_plugin['prefixe'], 'tag'); - } } else { $paquet_plugin = false; } @@ -883,9 +864,7 @@ function eclater_plugin_paquet($champs_aplat) { 'plugin' => array( 'prefixe' => $champs_aplat['prefixe'], 'nom' => $champs_aplat['nom'], - 'slogan' => $champs_aplat['slogan'], - 'categorie' => $champs_aplat['categorie'], - 'tags' => $champs_aplat['tags'], + 'slogan' => $champs_aplat['slogan'] ), 'paquet' => array( 'logo' => $champs_aplat['logo'], @@ -904,7 +883,7 @@ function eclater_plugin_paquet($champs_aplat) { 'lien_demo' => $champs_aplat['lien_demo'], 'lien_dev' => $champs_aplat['lien_dev'], 'dependances' => $champs_aplat['dependances'], - 'procure' => $champs_aplat['procure'], + 'procure' => $champs_aplat['procure'] ) ); } diff --git a/inc/svp_depoter_local.php b/inc/svp_depoter_local.php index c04fb6e..aa9d015 100644 --- a/inc/svp_depoter_local.php +++ b/inc/svp_depoter_local.php @@ -237,10 +237,6 @@ function svp_base_inserer_paquets_locaux($paquets_locaux) { $actifs = lire_config('plugin'); $attentes = lire_config('plugin_attente'); - // Initialisation de la configuration de l'utilisation des champs categorie et tags - $utiliser_categorie = lire_config('svp/utilisation_categorie', false); - $utiliser_tag = lire_config('svp/utilisation_tag', false); - foreach ($paquets_locaux as $const_dir => $paquets) { foreach ($paquets as $chemin => $paquet) { // Si on est en presence d'un plugin dont la dtd est "paquet" on compile en multi @@ -278,20 +274,6 @@ function svp_base_inserer_paquets_locaux($paquets_locaux) { // Mettre le préfixe en majuscule si besoin $prefixe = strtoupper($le_plugin['prefixe']); - // Si la configuration requiert l'utilisation de la catégorie de plugins on la récupère à partir - // du serveur de référentiel de plugins. Sinon, on la force à vide. - $le_plugin['categorie'] = ''; - if ($utiliser_categorie) { - $le_plugin['categorie'] = plugin_acquerir_type($prefixe, 'categorie'); - } - - // Si la configuration requiert l'utilisation des tags de plugins on les récupère à partir - // du serveur de référentiel de plugins. Sinon, on force le champ à vide. - $le_plugin['tags'] = ''; - if ($utiliser_tag) { - $le_plugin['tags'] = plugin_acquerir_type($prefixe, 'tag'); - } - // creation du plugin... // on fait attention lorqu'on cherche ou ajoute un plugin // le nom et slogan est TOUJOURS celui de la plus haute version diff --git a/inc/svp_phraser.php b/inc/svp_phraser.php index 9351b29..5d9c13b 100644 --- a/inc/svp_phraser.php +++ b/inc/svp_phraser.php @@ -300,6 +300,12 @@ function svp_phraser_plugin($dtd, $contenu) { $plugin = $fusionner($plugins[0]); } + // Durant la période où les XML contiennent encore l'attribut ou la balise categorie il faut la traiter + // lors du phrasage mais la supprimer après la fusion afin d'éviter une erreur SQL lors de l'insertion. + if (isset($plugin['categorie'])) { + unset($plugin['categorie']); + } + // Pour la DTD paquet, les traductions du nom, slogan et description sont compilees dans une balise // du fichier archives.xml. Il faut donc completer les informations precedentes avec cette balise if (($dtd == _SVP_DTD_PAQUET) and (preg_match(_SVP_REGEXP_BALISE_MULTIS, $contenu, $matches))) { @@ -311,7 +317,7 @@ function svp_phraser_plugin($dtd, $contenu) { if ($multis['nom']) { $plugin['nom'] = $multis['nom']; } - // Slogan et description sont forcement des items de langue + // Slogan et description sont forcement des items de langue $plugin['slogan'] = $multis['slogan']; $plugin['description'] = $multis['description']; } @@ -377,12 +383,12 @@ function svp_phraser_traductions($contenu) { // On continue par les balises qui donnent le code en attribut // et les balises qui donnent uniquement le nom en attribut if (is_array($_langues[0])) { - foreach ($_langues[0] as $_tag => $_traducteurs) { - list($tag, $attributs_langue) = spip_xml_decompose_tag($_tag); + foreach ($_langues[0] as $_tag_trad => $_traducteurs) { + list($tag, $attributs_langue) = spip_xml_decompose_tag($_tag_trad); $traducteurs = array(); if (is_array($_traducteurs[0])) { - foreach ($_traducteurs[0] as $_tag => $_vide) { - list($tag, $attributs_traducteur) = spip_xml_decompose_tag($_tag); + foreach ($_traducteurs[0] as $_tag_lang => $_vide) { + list($tag, $attributs_traducteur) = spip_xml_decompose_tag($_tag_lang); $traducteurs[] = $attributs_traducteur; } } diff --git a/inc/svp_rechercher.php b/inc/svp_rechercher.php index 21c5d5b..e0d6209 100644 --- a/inc/svp_rechercher.php +++ b/inc/svp_rechercher.php @@ -31,7 +31,7 @@ include_spip('inc/plugin'); * @param string $phrase * Texte de la recherche * @param string $categorie - * Type de catégorie de plugin (auteur, date...) + * Type de catégorie de plugin (auteur, date...) : depréciée !!! * @param string $etat * État de plugin (stable, test...) * @param string|int $depot @@ -123,7 +123,7 @@ function svp_rechercher_plugins_spip( } // Maintenant, on continue la recherche en appliquant, sur la liste des id de paquets, - // les filtres complementaires : categorie, etat, exclusions et compatibilite spip + // les filtres complementaires : etat, exclusions et compatibilite spip // si on a bien trouve des resultats precedemment ou si aucune phrase n'a ete saisie // -- Preparation de la requete if ($ids_paquets) { @@ -149,9 +149,6 @@ function svp_rechercher_plugins_spip( if ($ids_paquets) { $where[] = sql_in('t2.id_paquet', $ids_paquets); } - if ($categorie) { - $where[] = 't1.categorie=' . sql_quote($categorie); - } if (($etat) and ($etat != 'tout_etat')) { $where[] = 't2.etat=' . sql_quote($etat); } diff --git a/inc/svp_typologie.php b/inc/svp_typologie.php deleted file mode 100644 index bd2074c..0000000 --- a/inc/svp_typologie.php +++ /dev/null @@ -1,93 +0,0 @@ - diff --git a/plugins/preparer_sql_paquet.php b/plugins/preparer_sql_paquet.php index 6ddc914..b6157b7 100644 --- a/plugins/preparer_sql_paquet.php +++ b/plugins/preparer_sql_paquet.php @@ -35,7 +35,6 @@ function plugins_preparer_sql_paquet($plugin) { // On initialise les champs ne necessitant aucune transformation foreach (array( - 'categorie' => 'categorie', 'etat' => 'etat', 'version_base' => 'schema', 'logo' => 'logo', @@ -77,7 +76,6 @@ function plugins_preparer_sql_paquet($plugin) { // Tags : liste de mots-cles // Traitement des auteurs, credits, licences et copyright foreach (array( - 'tags' => 'tags', 'auteur' => 'auteur', 'credit' => 'credit', 'licence' => 'licence', diff --git a/plugins/preparer_sql_plugin.php b/plugins/preparer_sql_plugin.php index c62f1f6..2924034 100644 --- a/plugins/preparer_sql_plugin.php +++ b/plugins/preparer_sql_plugin.php @@ -35,7 +35,6 @@ function plugins_preparer_sql_plugin($plugin) { } // On initialise les champs ne necessitant aucune transformation - $champs['categorie'] = (isset($plugin['categorie']) and $plugin['categorie']) ? $plugin['categorie'] : ''; $champs['etat'] = (isset($plugin['etat']) and $plugin['etat']) ? $plugin['etat'] : ''; $champs['version'] = $plugin['version'] ? normaliser_version($plugin['version']) : ''; $champs['version_base'] = (isset($plugin['schema']) and $plugin['schema']) ? $plugin['schema'] : ''; @@ -51,9 +50,6 @@ function plugins_preparer_sql_plugin($plugin) { static $num = array('stable' => 4, 'test' => 3, 'dev' => 2, 'experimental' => 1); $champs['etatnum'] = (isset($plugin['etat']) and isset($num[$plugin['etat']])) ? $num[$plugin['etat']] : 0; - // Tags : liste de mots-cles - $champs['tags'] = (isset($plugin['tags']) and $plugin['tags']) ? serialize($plugin['tags']) : ''; - // On passe en utf-8 avec le bon charset les champs pouvant contenir des entites html $champs['description'] = entite2charset($plugin['description'], 'utf-8'); diff --git a/prive/objets/contenu/plugin.html b/prive/objets/contenu/plugin.html index 4da54ab..8ee7105 100644 --- a/prive/objets/contenu/plugin.html +++ b/prive/objets/contenu/plugin.html @@ -11,12 +11,6 @@
<:info_descriptif:>
[(#SLOGAN|sinon{#DESCRIPTION|couper{80}})]
-
-
<:svp:label_categorie:> :
-

[(#CATEGORIE|svp_traduire_categorie)]

- [
<:svp:label_tags:> :
-

(#TAGS)

] -
<:svp:label_branches_spip:> :
diff --git a/prive/objets/liste/plugins.html b/prive/objets/liste/plugins.html index cfca422..3159864 100644 --- a/prive/objets/liste/plugins.html +++ b/prive/objets/liste/plugins.html @@ -6,7 +6,6 @@ - titre : le titre de la liste - par : le champ tri principal - pas : le pas de pagination - - categorie : filtrer la liste sur categorie - id_depot : filtrer la liste sur un depot - recherche : critere de recherche - where : condition supplementaire construire par l'appelant (non utilisee) @@ -16,7 +15,6 @@ nom, 1, date_modif, -1, prefixe, 1, - categorie, 1, id_depot, 1}})] @@ -34,7 +32,7 @@ - + diff --git a/svp_administrations.php b/svp_administrations.php index 4a61201..7a5b55e 100644 --- a/svp_administrations.php +++ b/svp_administrations.php @@ -42,8 +42,12 @@ function svp_upgrade($nom_meta_base_version, $version_cible) { // on force le recalcul des infos des paquets locaux. $maj['0.5.0'][] = array('maj_tables', 'spip_paquets'); $maj['0.5.1'][] = array('svp_actualiser_paquets_locaux', true); - - $maj['0.6.0'][] = array('svp_vider_categories'); + // suppression des colonnes tags et categorie car c'est le plugin SVP Typologie différent qui s'en occupe totalement. + $maj['0.6.0'] = array( + array('maj_tables',array('spip_plugins')), + array('sql_alter','TABLE spip_plugins DROP COLUMN categorie'), + array('sql_alter','TABLE spip_plugins DROP COLUMN tags'), + ); include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj); @@ -99,18 +103,3 @@ function svp_synchroniser_prefixe() { } } } - -/** - * Vider le champ categorie de tous les enregistrement de la table spip_plugins. - * En effet, à partir du schéma 0.6 ce champ n'est plus alimenté par le XML des plugins mais par une API REST - * fournie par le plugin SVP Typologie. L'utilisation de champ sur les sites de production devient optionnelle et - * est désactivée par défaut. - * - * @return void - */ -function svp_vider_categories() { - // On vide le champ catégorie de tous les plugins de la base. - // La fonction d'actualisation de la base des plugins ne le remplira que si demandé, sinon il restera vide - // ce qui n'a aucune incidence sur le fonctionnment de SVP. - sql_update('spip_plugins', array('categorie' => '')); -}