Changeset 27103 in spip-zone


Ignore:
Timestamp:
Mar 6, 2009, 4:07:54 PM (10 years ago)
Author:
cam.lafit@…
Message:

Compatibilité SPIP2 pour la base de données (installation et maj)

  • Utilisation de <base_version> pour la création des nouveaux champs

Le formulaire espace privé est à revoir, il ne semble plus fonctionner

Location:
_plugins_/_dev_/archive
Files:
1 added
1 deleted
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/archive/archive_options.php

    r18427 r27103  
    11<?php
    2 //Ajout de champs supplémentaires
    3 include_spip('base/serial');
    4 //ajout du champ archive_date pour l'article, possibilité de #ARCHIVE_DATE
    5 $GLOBALS['tables_principales']['spip_articles']['field']=
    6 array_merge(
    7     $GLOBALS['tables_principales']['spip_articles']['field'],
    8     array('archive_date' => "datetime")
    9 );
    10 //ajout du champ archive_date pour la rubrique, possibilité de #ARCHIVE_DATE
    11 $GLOBALS['tables_principales']['spip_rubriques']['field']=
    12 array_merge(
    13     $GLOBALS['tables_principales']['spip_rubriques']['field'],
    14     array('archive_date' => "datetime")
    15 );
    16 
    172// Lancement des taches cron pour l'archivage
    183function archive_taches_generales_cron($taches_generales){
     
    205            return $taches_generales;
    216 }
    22 
    237?>
  • _plugins_/_dev_/archive/base/archive_install.php

    r15401 r27103  
    11<?php
    22
    3 include_spip('base/abstract_sql');      //fonctions d'acces sql
    4 include_spip('inc/plugin');
     3if (!defined("_ECRIRE_INC_VERSION")) return;
    54
    6 include_spip('base/compat193');         //cr‚‚
    7  la vol‚ les fonctions sql pour 192
     5include_spip('inc/meta');
     6    function archive_upgrade($nom_meta_base_version,$version_cible){
     7        $current_version = 0.0;
     8        //recupére les informations de plugin.xml
     9        $infos = plugin_get_infos('archive');
     10        $version_base = $infos['version_base'];
     11   
     12    spip_log("upgrade","archive");
     13    spip_log("meta base version".$GLOBALS['meta'][$nom_meta_base_version],'archive');
     14    spip_log("version cible".$version_cible,'archive');
     15    spip_log("nom meta".$nom_meta_base_version,'archive');   
    816
     17    //Changement de version ou premiere installation   
     18        if ((!isset($GLOBALS['meta'][$nom_meta_base_version]) )
     19                        OR (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
     20                spip_log("maj","archive");
     21                include_spip('base/archive');
     22                include_spip('base/create');
     23                maj_tables(array('spip_articles','spip_rubriques'));
    924
     25                ecrire_meta($nom_meta_base_version,$current_version=$version_base,'non');
     26        }
     27       
     28        ecrire_metas();
     29}
     30
     31function archive_vider_tables($nom_meta_base_version) {
     32    sql_alter('TABLE spip_articles DROP archive');
     33    sql_alter('TABLE spip_articles DROP archive_date');
     34    sql_alter('TABLE spip_rubriques DROP archive');
     35    sql_alter('TABLE spip_rubriques DROP archive_date');       
     36        effacer_meta($nom_meta_base_version);
     37}
     38
     39/*
    1040//configure la base spip et les metas
    1141function archive_install($action){
    1242        //version en cours
    13         //recup‚re les informations de plugin.xml
    14         $infos = plugin_get_infos('Archive');
     43        //recupére les informations de plugin.xml
     44        $infos = plugin_get_infos('archive');
    1545        $archive_version = $infos['version'];
    16 
    17    switch ($action){
    18        case 'test':
    19            //Contr“le du plugin
    20  chaque chargement de la page d'administration
    21            // doit retourner true si le plugin est proprement install‚ et
    22  jour, false sinon
    23                    if ((!isset($GLOBALS['meta']['archive_version'])) || version_compare($GLOBALS['meta']['archive_version'],$archive_version,"<")) {
    24                            //lance la mise
    25  jour
    26                            return archive_installer($archive_version);
    27                    } else {
    28                            //on est
    29  jour
    30                            return true;
    31                    }
    32        break;
    33        case 'install':
     46       
     47    switch ($action){
     48        case 'test':
     49           //Contrôle du plugin à chaque chargement de la page d'administration
     50           // doit retourner true si le plugin est proprement installé et à jour, false sinon
     51           if ((!isset($GLOBALS['meta']['archive_version'])) || version_compare($GLOBALS['meta']['archive_version'],$archive_version,"<")) {
     52                   //lance la mise à jour
     53                    //on sauve en meta la version spip
     54                    ecrire_meta('archive_version',$archive_version);
     55           } else {
     56                   //on est à jour
     57                   return true;
     58           }
     59        break;
     60        case 'install':
    3461           //Appel de la fonction d'installation. Lors du clic sur l'icône depuis le panel.
    3562           //quand le plugin est activé et test retourne false
    36                    return archive_installer($archive_version);
    37        break;
    38        case 'uninstall':
     63           //return archive_installer($archive_version);
     64        break;
     65        case 'uninstall':
    3966           //Appel de la fonction de suppression
    4067           //quand l'utilisateur clickque sur "supprimer tout" (disponible si test retourne true)
    41                    return archive_uninstaller();
    42        break;
    43    }
     68           //return archive_uninstaller();
     69        break;
     70    }
    4471}
    45 
    46 //configure la base spip
    47 function archive_installer($archive_version) {
    48         //recupere les champs de spip_articles
    49         $desc = sql_showtable("spip_articles", '', true);
    50         //ajoute le champ archive si champ inexistant
    51         if (!isset($desc['field']['archive'])){
    52                         spip_query("ALTER TABLE spip_articles ADD `archive` BOOL AFTER `statut`");
    53         }
    54         //ajoute le champ archive_date si champ inexistant
    55         if (!isset($desc['field']['archive_date'])){
    56                         spip_query("ALTER TABLE spip_articles ADD `archive_date` DATETIME AFTER `archive`");
    57         }
    58 
    59         //recupere les champs de spip_rubriques
    60         $desc = sql_showtable("spip_rubriques", '', true);
    61         //ajoute le champ archive si champ inexistant
    62         if (!isset($desc['field']['archive'])){
    63                         spip_query("ALTER TABLE spip_rubriques ADD `archive` BOOL AFTER `statut`");
    64         }
    65         //ajoute le champ archive_date si champ inexistant
    66         if (!isset($desc['field']['archive_date'])){
    67                         spip_query("ALTER TABLE spip_rubriques ADD `archive_date` DATETIME AFTER `archive`");
    68         }
    69 
    70 
    71         //on précise que le plugin est initialisé donc base de donnée modifiée
    72         ecrire_meta('archive_version',$archive_version);
    73         //regenere le cache des metas
    74         ecrire_metas();
    75         //retourne que tout ok
    76         $ok = true;
    77     return $ok;
    78         return $ok;
    79 }
    80 
    81 
    82 //supprime les donn‚es de la base spip
    83 function archive_uninstaller() {
    84 
    85         //nettoie les champs de spip_articles
    86     $desc = sql_showtable("spip_articles", '', true);
    87         if (isset($desc['field']['archive'])){
    88                         spip_query("ALTER TABLE spip_articles DROP `archive`");
    89         }
    90         if (isset($desc['field']['archive_date'])){
    91                         spip_query("ALTER TABLE spip_articles DROP `archive_date`");
    92         }
    93 
    94         //supprime les champs de spip_rubriques
    95         $desc = sql_showtable("spip_rubriques", '', true);
    96         if (isset($desc['field']['archive'])){
    97                         spip_query("ALTER TABLE spip_rubriques DROP `archive`");
    98         }
    99         if (isset($desc['field']['archive_date'])){
    100                         spip_query("ALTER TABLE spip_rubriques DROP `archive_date`");
    101         }
    102 
    103 
    104         //on précise que le plugin est initialisé donc base de donnée modifiée
    105         effacer_meta('archive_version');
    106         //regenere le cache des metas
    107         ecrire_metas();
    108         //retourne que tout ok
    109         $ok = true;
    110 
    111         return $ok;
    112 }
     72*/
    11373?>
  • _plugins_/_dev_/archive/plugin.xml

    r25251 r27103  
    11<plugin>
    22        <nom>Archive</nom>
    3         <version>0.8</version>
     3        <version>0.81</version>
     4        <version_base>0.1</version_base>
    45        <prefix>archive</prefix>
    56
     
    3233
    3334        <install>base/archive_install.php</install>
     35    <pipeline>
     36        <nom>declarer_tables_principales</nom>
     37        <inclure>base/archive.php</inclure>
     38    </pipeline>
    3439
    3540        <necessite id="SPIP" version="[1.9.0;]" />
Note: See TracChangeset for help on using the changeset viewer.