Changeset 70161 in spip-zone


Ignore:
Timestamp:
Feb 24, 2013, 6:45:54 PM (7 years ago)
Author:
eric@…
Message:

Upgrade du schéma de base de données du plugin et mise au point et modernisation de la fonction d'upgrade.

Location:
_plugins_/boussole/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/boussole/trunk/base/boussole_declarer.php

    r50378 r70161  
    2525                array('field' => &$boussoles, 'key' => &$boussoles_key);
    2626
     27        // Tables des informations logos et traductions pour les boussoles : spip_boussoles_extras
     28        $boussoles_extras = array(
     29                "aka_boussole"  => "varchar(32) DEFAULT '' NOT NULL",
     30                "type_objet"    => "varchar(8) DEFAULT '' NOT NULL",
     31                "aka_objet"             => "varchar(32) DEFAULT '' NOT NULL",
     32                "nom_objet"             => "text DEFAULT '' NOT NULL",
     33                "slogan_objet"  => "text DEFAULT '' NOT NULL",
     34                "description_objet"     => "text DEFAULT '' NOT NULL",
     35                "logo_objet"    => "varchar(255) DEFAULT '' NOT NULL",
     36                "maj"                   => "timestamp");
     37
     38        $boussoles_extras_key = array(
     39                "PRIMARY KEY"   => "aka_boussole, type_objet, aka_objet"
     40        );
     41
     42        $tables_principales['spip_boussoles_extras'] =
     43                array('field' => &$boussoles_extras, 'key' => &$boussoles_extras_key);
     44
    2745        return $tables_principales;
    2846}
     
    3250        // Les tables
    3351        $interface['table_des_tables']['boussoles'] = 'boussoles';
     52        $interface['table_des_tables']['boussoles_extras'] = 'boussoles_extras';
    3453
    3554        // Les traitements
    3655        $interface['table_des_traitements']['URL_SITE']['boussoles']= 'safehtml(vider_url(%s))';
     56        $interface['table_des_traitements']['SLOGAN']['boussoles_extras'] = _TRAITEMENT_RACCOURCIS;
     57        $interface['table_des_traitements']['DESCRIPTION']['boussoles_extras'] = _TRAITEMENT_RACCOURCIS;
    3758
    3859        return $interface;
  • _plugins_/boussole/trunk/boussole_administrations.php

    r62051 r70161  
    44
    55function boussole_upgrade($nom_meta_base_version, $version_cible){
    6         $current_version = "0.0";
    7         include_spip('base/create');
    8        
    9         if ((!isset($GLOBALS['meta'][$nom_meta_base_version]))
    10                 || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
    11                 if (version_compare($current_version,'0.0','<=')){
    12                         include_spip('base/boussole_declarer');
    13                         creer_base();
    14                         ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
    15                 }
    16         }
    17                
     6
     7        $maj = array();
     8
     9        $maj['create'] = array(
     10                array('maj_tables', array('spip_boussoles'))
     11        );
     12
     13        // On ajoute la table des extras et on supprime toutes les boussoles
     14        // Seule la boussole SPIP sera réinstallée.
     15        // Pour les autres il faudra de toute façon adapter la boussole avant de la réinstaller
     16        $maj['0.2'] = array(
     17                array('maj_tables', array('spip_boussoles_extras')),
     18                array('nettoyer_donnees_boussole')
     19        );
     20
     21        include_spip('base/upgrade');
     22        maj_plugin($nom_meta_base_version, $version_cible, $maj);
     23
     24        // On ajoute la boussole SPIP par defaut.
     25        // Cependant on ne teste ni la validite du fichier xml fourni ni la bonne insertion en bdd
    1826        if (!isset($GLOBALS['meta']['boussole_infos_spip'])) {
    1927                include_spip('inc/deboussoler');
    20                 // On ajoute la boussole SPIP par defaut.
    21                 // Cependant on ne teste ni la validite du fichier xml fourni ni la bonne insertion en bdd
    2228                $xml = 'http://zone.spip.org/trac/spip-zone/export/HEAD/_galaxie_/boussole.spip.org/boussole_spip.xml';
    2329                $url = boussole_localiser_xml($xml);
     
    2834function boussole_vider_tables($nom_meta_base_version) {
    2935        // On nettoie les metas de mises a jour des boussoles
     36        nettoyer_donnees_boussole(true);
     37
     38        // on efface ensuite la table et la meta habituelle designant la version du plugin
     39        sql_drop_table("spip_boussoles");
     40        sql_drop_table("spip_boussoles_extras");
     41        effacer_meta($nom_meta_base_version);
     42
     43        spip_log('Désinstallation des tables du plugin Boussole','boussole' . _LOG_INFO);
     44}
     45
     46function nettoyer_donnees_boussole($meta=false) {
    3047        $alias = array();
     48
    3149        $akas_boussole = sql_allfetsel('aka_boussole', 'spip_boussoles', array(), 'aka_boussole');
    3250        if ($akas_boussole) {
     
    3654                sql_delete('spip_meta', sql_in('nom', $alias));
    3755        }
    38         // on efface ensuite la table et la meta habituelle designant la version du plugin
    39         sql_drop_table("spip_boussoles");
    40         effacer_meta($nom_meta_base_version);
    4156
    42         spip_log('DESINSTALLATION BDD','boussole' . _LOG_INFO);
     57        if (!$meta)
     58                sql_delete('spip_boussoles');
     59
    4360}
    44 
    4561?>
  • _plugins_/boussole/trunk/paquet.xml

    r70136 r70161  
    66        compatibilite="[3.0.0;3.0.*]"
    77        logo="boussole_logo-64.png"
    8         schema="0.1"
     8        schema="0.2"
    99        documentation="http://www.spip-contrib.net/Boussole,3688"
    1010>       
Note: See TracChangeset for help on using the changeset viewer.