Ignore:
Timestamp:
May 10, 2018, 11:33:22 PM (23 months ago)
Author:
rastapopoulos@…
Message:

Correction gros bug : le plugin supprimer les champs rang même sur les tables qui l'avaient déjà avant. Du coup on fait une fonction avec static qui garde en mémoire les tables avec ce champ déclaré avant que Rang ne complète la déclaration des objets. Et du coup lors de la désinstallation on a cette liste pour ne pas supprimer. Au passage on ne déclare aussi que si le champ n'est pas déjà déclaré.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/rang/branches/automatique/rang_administrations.php

    r110177 r110204  
    8383function rang_vider_tables($nom_meta_base_version) {
    8484        include_spip('inc/rang_api');
     85        include_spip('base/objets');
     86       
     87        // On appelle la fonction pour que ça lance le pipeline de Rang
     88        // et donc remplisse les tables ayant déjà un rang AVANT
     89        lister_tables_objets_sql();
     90        $tables_deja_rang = rang_lister_tables_deja_rang();
    8591
    86         // supprimer les champs 'rang'
     92        // Supprimer les champs 'rang' sur les tables qui ne l'avaient pas avant
    8793        // note : ici que faire si un objet a ete selectionne, puis deselectionne dans la config ?
    8894        $objets = lire_config('rang/objets');
    89         foreach ($objets as $value) {
    90                 $champs_table = sql_showtable($value);
    91                 if (isset($champs_table['field']['rang'])) {
    92                         sql_alter("TABLE $value DROP rang");
     95        foreach ($objets as $table) {
     96                $champs_table = sql_showtable($table);
     97               
     98                // S'il y a bien toujours un champ "rang" mais que la table ne l'avait PAS avant
     99                if (isset($champs_table['field']['rang']) and !in_array($table, $tables_deja_rang)) {
     100                        sql_alter("TABLE $table DROP rang");
    93101                }
    94102        }
Note: See TracChangeset for help on using the changeset viewer.