Changeset 124787 in spip-zone


Ignore:
Timestamp:
May 22, 2020, 8:40:54 PM (10 days ago)
Author:
nicod_
Message:

Comparer les schémas de lhote et de la source et vice versa, et informer sur les différences avant de fusionner

Location:
_plugins_/fusion_spip/trunk
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/fusion_spip/trunk

    • Property subgit:lock:2d64802e62bb41bf8384da6bd9036b959de1b8d7 deleted
    • Property subgit:lock:c39961b552519bbd3178f23787aaf11279541192 set to 2020-05-22T22:41:14.020
  • _plugins_/fusion_spip/trunk/formulaires/fusion_spip.php

    r124752 r124787  
    8585                }
    8686
    87                 $lister_tables_principales = charger_fonction('lister_tables_principales', 'fusion_spip');
    88                 $principales = $lister_tables_principales($connect, false);
    89                 $lister_tables_auxiliaires = charger_fonction('lister_tables_auxiliaires', 'fusion_spip');
    90                 $auxiliaires = $lister_tables_auxiliaires($connect, false, $traite_stats, $traite_referers);
    91 
    9287                // vérifier la version de la base source
    9388                if(!_request('confirm_version')) {
     
    110105                        }
    111106                }
    112                 // vérifier la conformité du shéma de la base source
     107                // comparer les shémas des bases source et hote
    113108                if ((empty($erreurs) or (count($erreurs) == 1 && isset($erreurs['warning_traduction_document']))) && !_request('confirm_shema')) {
    114109                        $comparer_shemas = charger_fonction('comparer_shemas', 'fusion_spip');
    115                         $erreurs_shema = $comparer_shemas($connect, $principales, $auxiliaires);
     110                        $erreurs_shema = $comparer_shemas($connect, $traite_stats, $traite_referers);
    116111                        if (count($erreurs_shema)) {
    117                                 $erreurs['warning_shema'] = '- '.join('<br>- ', $erreurs_shema);
     112                                $erreurs['warning_shema'] = join('<hr>', $erreurs_shema).'<hr>';
    118113                        }
    119114                }
  • _plugins_/fusion_spip/trunk/inc/fusion_spip.php

    r111057 r124787  
    105105 * @return array liste des erreurs
    106106 */
    107 function fusion_spip_comparer_shemas_dist($connect, $principales, $auxiliaires) {
    108 
     107function fusion_spip_comparer_shemas_dist($connect, $traite_stats, $traite_referers) {
    109108        $erreurs = array();
     109        $lister_tables_principales = charger_fonction('lister_tables_principales', 'fusion_spip');
     110        $lister_tables_auxiliaires = charger_fonction('lister_tables_auxiliaires', 'fusion_spip');
     111       
     112        $principales = $lister_tables_principales($connect, false);
     113        $auxiliaires = $lister_tables_auxiliaires($connect, false, $traite_stats, $traite_referers);
    110114        $tables = array_merge($principales, $auxiliaires);
     115       
    111116        foreach ($tables as $nom_table => $shema_table) {
     117
    112118                // ne pas utiliser 'trouver_table' pour ne pas utiliser le cache
    113119                if ($shema_source = sql_showtable($nom_table, true, $connect)) {
    114120                        if ($diff_colonnes = array_diff(array_keys($shema_table['field']), array_keys($shema_source['field']))) {
    115                                 $erreurs[] = _T('fusion_spip:manque_champs_source', array('table' => $nom_table, 'diff' => join(' - ', $diff_colonnes)));
     121                                $erreurs[] = _T('fusion_spip:manque_champs_source', array('table' => $nom_table, 'diff' => '<ul class="spip"><li>'.join('</li><li>', $diff_colonnes).'</li></ul>'));
     122                        }
     123                        if ($diff_colonnes = array_diff(array_keys($shema_source['field']), array_keys($shema_table['field']))) {
     124                                $erreurs[] = _T('fusion_spip:manque_champs_hote', array('table' => $nom_table, 'diff' => '<ul class="spip"><li>'.join('</li><li>', $diff_colonnes).'</li></ul>'));
    116125                        }
    117126                } else {
  • _plugins_/fusion_spip/trunk/lang/fusion_spip_fr.php

    r124755 r124787  
    3939        // M
    4040        'maj_base' => 'Mise à jour de la base de données',
    41         'manque_champs_source' => 'Les champs "@diff@" manquent dans la table "@table@" de la base source',
     41        'manque_champs_source' => 'Les champs @diff@ manquent dans la table "@table@" de la base source',
     42        'manque_champs_hote' => 'Les champs @diff@ manquent dans la table "@table@" de la base hote',
    4243        'manque_table_source' => 'La table "@table@" est absente dans la base source',
    4344        'message_img_dir_nok' => 'Merci de préciser le chemin',
  • _plugins_/fusion_spip/trunk/paquet.xml

    r124752 r124787  
    22        prefix="fusion_spip"
    33        categorie="maintenance"
    4         version="1.3.4"
     4        version="1.3.5"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.