Changeset 94749 in spip-zone


Ignore:
Timestamp:
Jan 26, 2016, 8:25:23 AM (4 years ago)
Author:
peetdu@…
Message:

Gestion de l’installation : inutile de mettre les champs ‘titre_logo’ et ‘descriptif_logo’ dans toutes les tables

Location:
_plugins_/titre_de_logo/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/titre_de_logo/trunk/paquet.xml

    r94747 r94749  
    22        prefix="titre_logo"
    33        categorie="edition"
    4         version="3.0.2"
     4        version="3.0.3"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
    7         schema="1.0.0"
     7        schema="3.0.3"
    88        logo="prive/themes/spip/images/image-32.png"
    99        documentation="http://contrib.spip.net/Titre-de-logo-v2"
  • _plugins_/titre_de_logo/trunk/titre_logo_administrations.php

    r92277 r94749  
    2121 * @param string $version_cible
    2222 */
    23 function titre_logo_upgrade($nom_meta_base_version, $version_cible)
    24 {
     23function titre_logo_upgrade($nom_meta_base_version, $version_cible) {
    2524    include_spip('base/objets');
    26     $tables_objets = array_keys(lister_tables_objets_sql());
     25    $tables_objets = titre_logo_liste_tables();
    2726    $maj = array();
    2827    $maj['create'] = array();
     
    3130        $maj['create'][] = array('sql_alter',"TABLE $table ADD descriptif_logo text DEFAULT '' NOT NULL");
    3231    }
     32
     33    $maj['3.0.3'] = array(
     34        array('titre_logo_nettoyer', array())
     35    );
    3336
    3437    include_spip('base/upgrade');
     
    4144 * (cas d'un nouvel objet ajouté apres l'install du plugin).
    4245 */
    43 function titre_logo_check_upgrade()
    44 {
     46function titre_logo_check_upgrade() {
    4547    include_spip('base/objets');
    46     $tables_objets = array_keys(lister_tables_objets_sql());
     48    $tables_objets = titre_logo_liste_tables();
    4749    $trouver_table = charger_fonction('trouver_table', 'base');
    4850    foreach ($tables_objets as $table) {
     
    5860
    5961/**
     62 * supprimer les champs 'titre_logo' et 'descriptif_logo' dans les tables de la black_list
     63 */
     64function titre_logo_nettoyer() {
     65    $black_liste = titre_logo_black_list();
     66    foreach ($black_liste as $table) {
     67        sql_alter("TABLE $table DROP titre_logo");
     68        sql_alter("TABLE $table DROP descriptif_logo");
     69    }
     70}
     71
     72/**
    6073 * Desinstallation.
    6174 *
    6275 * @param string $nom_meta_base_version
    6376 */
    64 function titre_logo_vider_tables($nom_meta_base_version)
    65 {
     77function titre_logo_vider_tables($nom_meta_base_version) {
    6678    include_spip('inc/meta');
    6779    include_spip('base/abstract_sql');
    6880
    6981    include_spip('base/objets');
    70     $tables_objets = array_keys(lister_tables_objets_sql());
     82    $tables_objets = titre_logo_liste_tables();
    7183    foreach ($tables_objets as $table) {
    7284        sql_alter("TABLE $table DROP titre_logo");
     
    7789    effacer_meta($nom_meta_base_version);
    7890}
     91
     92/**
     93 * Fournir la liste des tables pour lesquels fournir les champs 'titre_logo' et 'descriptif_logo'
     94 * écarter les tables connues pour lesquelles c'est inutile
     95 * @return array
     96 */
     97
     98function titre_logo_liste_tables(){
     99    $tables_objets     = array_keys(lister_tables_objets_sql());
     100    $black_liste       = titre_logo_black_list();
     101    $list_tables_logos = array_diff($tables_objets, $black_liste);
     102
     103    return $list_tables_logos;
     104}
     105
     106/**
     107 * Black list : les tables connues pour lesquelles il est inutile de fournir les champs 'titre_logo' et 'descriptif_logo'
     108 * @return array
     109 */
     110
     111function titre_logo_black_list(){
     112    $black_list = array(0 => 'spip_depots',
     113                         1 => 'spip_documents',
     114                         2 => 'spip_forum',
     115                         3 => 'spip_messages',
     116                         4 => 'spip_paquets',
     117                         5 => 'spip_petitions',
     118                         6 => 'spip_plugins',
     119                         7 => 'spip_signatures',
     120                         8 => 'spip_syndic_articles');
     121    return $black_list;
     122}
Note: See TracChangeset for help on using the changeset viewer.