Changeset 48879 in spip-zone


Ignore:
Timestamp:
Jun 17, 2011, 8:47:16 AM (10 years ago)
Author:
guy.cesaro@…
Message:

Maj de la base pour les mots et les auteurs, on laisse de la place pour la branche 2 en passant la version base de 4.2 a 5.2
Reecriture de l'upgrade (a tester).
Retrait des "vielles" jointures sur mots et auteurs.
Reste a passer en declarer_tables_objets_sql qui parait adapte pour ce plugin ?

Location:
_plugins_/spip-lettres/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-lettres/trunk/base/lettres.php

    r48782 r48879  
    5050                $interface['tables_jointures']['spip_lettres'][] = 'articles';
    5151                $interface['tables_jointures']['spip_lettres'][] = 'lettres_statistiques';
    52                 $interface['tables_jointures']['spip_lettres'][] = 'mots_lettres';
    53                 $interface['tables_jointures']['spip_lettres'][] = 'mots';
    5452                $interface['tables_jointures']['spip_lettres'][] = 'rubriques';
    5553                $interface['tables_jointures']['spip_lettres'][] = 'abonnes_lettres';
    56                 $interface['tables_jointures']['spip_lettres']['id_auteur'] = 'auteurs_lettres';
    57                 $interface['tables_jointures']['spip_lettres'][] = 'auteurs_lettres';
    5854                $interface['tables_jointures']['spip_lettres'][] = 'documents_liens';
    59                 $interface['tables_jointures']['spip_auteurs'][] = 'auteurs_lettres';
    60                 $interface['tables_jointures']['spip_mots'][] = 'mots_lettres';
    6155                $interface['tables_jointures']['spip_themes'][] = 'rubriques';
    6256                $interface['tables_jointures']['spip_themes']['expediteur_id'] = 'auteurs';
     
    207201                                                        "KEY id_lettre"         => "id_lettre"
    208202                                                );
    209                 $spip_auteurs_lettres = array(
    210                                                         "id_auteur"             => "BIGINT(21) NOT NULL",
    211                                                         "id_lettre"             => "BIGINT(21) NOT NULL"
    212                                                 );
    213                 $spip_auteurs_lettres_key = array(
    214                                                         "PRIMARY KEY"   => "id_auteur, id_lettre",
    215                                                         "KEY id_auteur" => "id_auteur",
    216                                                         "KEY id_lettre" => "id_lettre"
    217                                                 );
    218203                $spip_lettres_statistiques = array(
    219204                                                        "periode"               => "VARCHAR(7) NOT NULL",
     
    222207                $spip_lettres_statistiques_key = array(
    223208                                                        "PRIMARY KEY"   => "periode"
    224                                                 );
    225                 $spip_mots_lettres = array(
    226                                                         "id_mot"                => "BIGINT (21) DEFAULT '0' NOT NULL",
    227                                                         "id_lettre"             => "BIGINT (21) DEFAULT '0' NOT NULL"
    228                                                 );
    229                 $spip_mots_lettres_key = array(
    230                                                         "PRIMARY KEY"   => "id_lettre, id_mot",
    231                                                         "KEY id_mot"    => "id_mot"
    232209                                                );
    233210                $tables_auxiliaires['spip_abonnes_clics'] =
     
    241218                $tables_auxiliaires['spip_articles_lettres'] =
    242219                        array('field' => &$spip_articles_lettres, 'key' => &$spip_articles_lettres_key);
    243                 $tables_auxiliaires['spip_auteurs_lettres'] =
    244                         array('field' => &$spip_auteurs_lettres, 'key' => &$spip_auteurs_lettres_key);
    245220                $tables_auxiliaires['spip_lettres_statistiques'] =
    246221                        array('field' => &$spip_lettres_statistiques, 'key' => &$spip_lettres_statistiques_key);
    247                 $tables_auxiliaires['spip_mots_lettres'] =
    248                         array('field' => &$spip_mots_lettres, 'key' => &$spip_mots_lettres_key);
    249222                return $tables_auxiliaires;
    250223        }
     
    258231                        effacer_meta('spip_lettres_version');
    259232                }
    260 
    261                 $current_version = 0.0;
    262                 if (   (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
    263                                 || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
    264                         include_spip('base/create');
    265                         include_spip('base/abstract_sql');
    266                         if (version_compare($current_version,'0.1','<')){
    267                                 creer_base();
     233                $maj = array();
     234                                                                               
     235                $maj['create'] = array(
     236                        array('maj_tables',array('spip_abonnes_clics',
     237                                                                        'spip_abonnes_lettres',
     238                                                                        'spip_desabonnes',
     239                                                                        'spip_abonnes_rubriques',
     240                                                                        'spip_articles_lettres',
     241                                                                        'spip_lettres_statistiques',
     242                                                                        'spip_themes',
     243                                                                        'spip_lettres',
     244                                                                        'spip_rubriques_crontabs')),
     245
     246                );
     247                $maj['0.1'] = array(
     248                        array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),       
     249                        array('spip_lettres_creer_repertoire_documents'),
     250                );
     251                $maj['3.0'] = array(
     252                        array('maj_tables',array('spip_abonnes_clics',
     253                                                                        'spip_abonnes_lettres',
     254                                                                        'spip_desabonnes',
     255                                                                        'spip_abonnes_rubriques',
     256                                                                        'spip_articles_lettres',
     257                                                                        'spip_lettres_statistiques',
     258                                                                        'spip_themes',
     259                                                                        'spip_lettres',
     260                                                                        'spip_rubriques_crontabs')),
     261                        array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),       
     262                );
     263                $maj['3.1'] = array(   
     264                        array('maj_tables',array('spip_lettres')),
     265                        array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),       
     266                );
     267                $maj['3.2'] = array(
     268                        array('spip_lettres_maj_index_elements_objet')
     269                );
     270                $maj['3.3'] = array(
     271                        array('maj_tables',array('spip_desabonnes')),
     272                );
     273                $maj['3.4'] = array(
     274                        array('maj_tables',array('spip_desabonnes')),
     275                        array('spip_lettres_creer_repertoire_documents')
     276                );
     277                $maj['3.6'] = array(
     278                        array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),               
     279                );
     280                $maj['3.7'] = array(
     281                        array('maj_tables',array('spip_rubriques_crontabs')),           
     282                );
     283                $maj['3.8'] = array(
     284                        array('maj_tables',array('spip_lettres')),
     285                        array('sql_alter',"TABLE spip_lettres DROP idx"),       
     286                        array('sql_drop_table',"spip_documents_lettres",true),
     287                        array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),                       
     288                );
     289                $maj['4.0.0'] = array(
     290                        array('spip_lettres_update_fond'),
     291                );
     292                $maj['4.0.1'] = array(
     293                        array('sql_alter',"TABLE spip_lettres CHANGE statut statut VARCHAR(15) NOT NULL DEFAULT 'brouillon'"),
     294                );
     295                $maj['4.0.2'] = array(
     296                        array('sql_alter',"TABLE spip_lettres CHANGE texte texte longtext DEFAULT '' NOT NULL"),
     297                        array('sql_alter',"TABLE spip_lettres CHANGE message_html message_html longtext DEFAULT '' NOT NULL"),
     298                        array('sql_alter',"TABLE spip_lettres CHANGE message_texte message_texte longtext DEFAULT '' NOT NULL"),
     299                        array('sql_alter',"TABLE spip_lettres CHANGE extra extra longtext NULL"),
     300                );
     301                $maj['4.1'] = array(
     302                        array('sql_alter',"TABLE spip_lettres CHANGE texte texte longtext DEFAULT '' NOT NULL"),
     303                        array('sql_alter',"TABLE spip_lettres CHANGE message_html message_html longtext DEFAULT '' NOT NULL"),
     304                        array('sql_alter',"TABLE spip_lettres CHANGE message_texte message_texte longtext DEFAULT '' NOT NULL"),
     305                        array('sql_alter',"TABLE spip_lettres CHANGE extra extra longtext NULL"),
     306                        array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
     307                );
     308                $maj['4.2'] = array(
     309                        array('sql_alter',"TABLE spip_themes ADD COLUMN expediteur_type ENUM('default','webmaster','author','custom') NOT NULL DEFAULT 'default'"),
     310                        array('sql_alter',"TABLE spip_themes ADD COLUMN expediteur_id BIGINT(21) NOT NULL DEFAULT '0'"),
     311                        array('sql_alter',"TABLE spip_themes ADD COLUMN retours_type ENUM('default','webmaster','author','custom') NOT NULL DEFAULT 'default'"),
     312                        array('sql_alter',"TABLE spip_themes ADD COLUMN retours_id BIGINT(21) NOT NULL DEFAULT '0'"),
     313                        array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
     314                );     
     315                if ('oui' == $GLOBALS['meta']['spip_lettres_signe_par_auteurs'])
     316                        array_push($maj['4.2'][],array('sql_updateq','spip_themes',array('expediteur_type' => 'author'), '1'));
     317                // Laissons de la place dans la numerotation si la version de base de la branche 2 evolue
     318                include_spip('maj/svn10000');
     319                $maj['5.2'] = array(
     320                        array('maj_liens','mot','lettre'),
     321                        array('sql_drop_table',"spip_mots_lettres"),
     322                        array('maj_liens','auteur','lettre'),
     323                        array('sql_drop_table',"spip_auteurs_lettres"),                 
     324                );
     325
     326                include_spip('base/upgrade');
     327                maj_plugin($nom_meta_base_version, $version_cible, $maj);
     328        }
     329        function spip_lettres_maj_index_elements_objet() {
     330                                $INDEX_elements_objet = unserialize($GLOBALS['meta']['INDEX_elements_objet']);
     331                                unset($INDEX_elements_objet['spip_lettres']);
     332                                ecrire_meta('INDEX_elements_objet',serialize($INDEX_elements_objet));
     333        }
     334       
     335        function spip_lettres_update_meta($version_plugin,$nom_meta_base_versio,$current_version,$version_cible) {
    268336                                ecrire_meta('spip_lettres_version', $version_plugin);
    269337                                ecrire_meta('spip_lettres_fond_formulaire_lettres', 'lettres');
     
    280348                                ecrire_meta('spip_lettres_cliquer_anonyme', 'oui');
    281349                                ecrire_meta('spip_lettres_admin_abo_toutes_rubriques', 'non');
     350                                ecrire_meta('spip_lettres_log_utiliser_email', 'non');
    282351                                if (!strpos($GLOBALS['meta']['preview'],',0minirezo,'))
    283352                                        ecrire_meta('preview',',0minirezo,');
    284353                                ecrire_metas();
    285                                 include_spip('inc/getdocument');
    286                                 creer_repertoire_documents('lettres');
    287                                 ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
    288                         }
    289                         if (version_compare($current_version,'3.0','<')){
    290                                 creer_base();
    291                                 ecrire_meta('spip_lettres_notifier_suppression_abonne', 'non');
    292                                 ecrire_meta('spip_lettres_utiliser_articles', 'non');
    293                                 ecrire_meta($nom_meta_base_version,$current_version='3.0','non');
    294                         }
    295                         if (version_compare($current_version,'3.1','<')){
    296                                 maj_tables('spip_lettres');
    297                                 ecrire_meta('spip_lettres_utiliser_ps', 'non');
    298                                 ecrire_meta($nom_meta_base_version,$current_version='3.1','non');
    299                         }
    300                         if (version_compare($current_version,'3.2','<')){
    301                                 $INDEX_elements_objet = unserialize($GLOBALS['meta']['INDEX_elements_objet']);
    302                                 unset($INDEX_elements_objet['spip_lettres']);
    303                                 ecrire_meta('INDEX_elements_objet',serialize($INDEX_elements_objet));
    304                                 ecrire_meta($nom_meta_base_version,$current_version='3.2','non');
    305                         }
    306                         if (version_compare($current_version,'3.3','<')){
    307                                 creer_base(); // table spip_desabonnes
    308                                 ecrire_meta($nom_meta_base_version,$current_version='3.3','non');
    309                         }
    310                         if (version_compare($current_version,'3.4','<')){
    311                                 include_spip('inc/getdocument');
    312                                 creer_repertoire_documents('lettres');
    313                                 ecrire_meta($nom_meta_base_version,$current_version='3.4','non');
    314                         }
    315                         if (version_compare($current_version,'3.5','<')){
    316                                 ecrire_meta($nom_meta_base_version,$current_version='3.5','non');
    317                         }
    318                         if (version_compare($current_version,'3.6','<')){
    319                                 ecrire_meta('spip_lettres_cron', md5(uniqid(rand())));
    320                                 ecrire_meta($nom_meta_base_version,$current_version='3.6','non');
    321                         }
    322                         if (version_compare($current_version,'3.7','<')){
    323                                 creer_base(); // table spip_rubriques_crontabs
    324                                 ecrire_meta($nom_meta_base_version,$current_version='3.7','non');
    325                         }
    326                         if (version_compare($current_version,'3.8','<')){
    327                                 maj_tables('spip_lettres');
    328                                 sql_alter("TABLE spip_lettres DROP idx");
    329                                 sql_drop_table('spip_documents_lettres', true);
    330                                 ecrire_meta('spip_lettres_utiliser_descriptif', 'non');
    331                                 ecrire_meta('spip_lettres_utiliser_chapo', 'non');
    332                                 ecrire_meta('spip_lettres_fond_lettre_titre', 'emails/lettre_titre');
    333                                 ecrire_meta('spip_lettres_envois_recurrents', 'non');
    334                                 ecrire_meta($nom_meta_base_version,$current_version='3.8','non');
    335                         }
    336                         if (version_compare($current_version,'4.0.0','<')){
    337                                 echo "SPIP-Lettres MAJ 4.0.0<br />";
     354        }
     355        function spip_lettres_update_fond() {
    338356                                if ($GLOBALS['meta']['spip_lettres_fond_lettre_titre']=='lettre_titre'
    339357                                  AND !find_in_path('lettre_titre.html'))
     
    345363                                  AND !find_in_path('lettre_html.html'))
    346364                                        ecrire_meta('spip_lettres_fond_lettre_html', 'emails/lettre_html');
    347                                 ecrire_meta($nom_meta_base_version,$current_version='4.0.0','non');
    348                         }
    349                         if (version_compare($current_version,'4.0.1','<')){
    350                                 echo "SPIP-Lettres MAJ 4.0.1<br />";
    351                                 sql_alter("TABLE spip_lettres CHANGE statut statut VARCHAR(15) NOT NULL DEFAULT 'brouillon'");
    352                                 ecrire_meta($nom_meta_base_version,$current_version='4.0.1','non');
    353                         }
    354                         if (version_compare($current_version,'4.0.2','<')){
    355                                 echo "SPIP-Lettres MAJ 4.0.2<br />";
    356                                 sql_alter("TABLE spip_lettres CHANGE texte texte longtext DEFAULT '' NOT NULL");
    357                                 sql_alter("TABLE spip_lettres CHANGE message_html message_html longtext DEFAULT '' NOT NULL");
    358                                 sql_alter("TABLE spip_lettres CHANGE message_texte message_texte longtext DEFAULT '' NOT NULL");
    359                                 sql_alter("TABLE spip_lettres CHANGE extra extra longtext NULL");
    360                                 ecrire_meta($nom_meta_base_version,$current_version='4.0.2','non');
    361                         }
    362                         if (version_compare($current_version,'4.1','<')){
    363                                 ecrire_meta('spip_lettres_cliquer_anonyme', 'oui');
    364                                 ecrire_meta('spip_lettres_admin_abo_toutes_rubriques', 'non');
    365                                 ecrire_meta('spip_lettres_log_utiliser_email', 'non');
    366                                 ecrire_meta($nom_meta_base_version,$current_version='4.1','non');
    367                         }
    368                         if (version_compare($current_version,'4.2','<')){
    369                                 echo "SPIP-Lettres MAJ 4.2<br />";
    370                                 sql_alter("TABLE spip_themes ADD COLUMN expediteur_type ENUM('default','webmaster','author','custom') NOT NULL DEFAULT 'default'");
    371                                 sql_alter("TABLE spip_themes ADD COLUMN expediteur_id BIGINT(21) NOT NULL DEFAULT '0'");
    372                                 sql_alter("TABLE spip_themes ADD COLUMN retours_type ENUM('default','webmaster','author','custom') NOT NULL DEFAULT 'default'");
    373                                 sql_alter("TABLE spip_themes ADD COLUMN retours_id BIGINT(21) NOT NULL DEFAULT '0'");
    374                                
    375                                 // on verifie la configuration de spip-lettres
    376                                 // si toutes les lettres sont signées de leur auteur, on répercute sur les thématiques
    377                                 if ('oui' == $GLOBALS['meta']['spip_lettres_signe_par_auteurs'])
    378                                         sql_updateq('spip_themes', array('expediteur_type' => 'author'), '1');
    379 
    380                                 ecrire_meta($nom_meta_base_version,$current_version='4.2','non');
    381                         }
    382                 }
    383         }
    384 
     365        }
     366        function spip_lettres_creer_repertoire_documents() {
     367                                include_spip('inc/getdocument');
     368                                creer_repertoire_documents('lettres');
     369        }
    385370        function lettres_vider_tables($nom_meta_base_version) {
    386371                include_spip('inc/meta');
  • _plugins_/spip-lettres/trunk/plugin.xml

    r48849 r48879  
    44        <auteur>[Art&#233;go->http://www.artego.fr], Cedric Morin [->www.yterium.net]</auteur>
    55        <version>4.5.9</version>
    6         <version_base>4.2</version_base>
     6        <version_base>5.2</version_base>
    77        <etat>dev</etat>
    88        <licence>[GPLv3->http://www.gnu.org/licenses/gpl-3.0.html]</licence>
Note: See TracChangeset for help on using the changeset viewer.