/** * Pour mise à jour de PSIP-Listes * * @return string */ function spiplistes_upgrade () { $spiplistes_name = _SPIPLISTES_PREFIX; $spiplistes_current_version = spiplistes_current_version_get(_SPIPLISTES_PREFIX); $spiplistes_real_version = spiplistes_real_version_get(_SPIPLISTES_PREFIX); $spiplistes_current_version_base = spiplistes_current_version_base_get(_SPIPLISTES_PREFIX); $spiplistes_real_version_base = spiplistes_real_version_base_get(_SPIPLISTES_PREFIX); spiplistes_log("VERSIONS MOD DETECTED [$spiplistes_current_version::$spiplistes_real_version][$spiplistes_current_version_base::$spiplistes_real_version_base]"); if(!$spiplistes_current_version) { // SPIP-Listes n'a jamais ete installe ? include_spip('base/spiplistes_init'); $spiplistes_current_version_base = spiplistes_base_creer(); } if($spiplistes_current_version_base < $spiplistes_real_version_base) { // upgrade de la base ? $spiplistes_current_version_base = spiplistes_upgrade_base( $spiplistes_name , $spiplistes_current_version , $spiplistes_current_version_base , $spiplistes_real_version_base ); } if($spiplistes_current_version < $spiplistes_real_version) { spiplistes_log("UPGRADING $spiplistes_name $spiplistes_current_version TO $spiplistes_real_version"); if($spiplistes_current_version < 1.9982) { // Ne modifie pas le schema. Ajoute juste une legende sur les tables sql_alter("TABLE spip_listes COMMENT ".sql_quote("Listes de diffusion")); sql_alter("TABLE spip_courriers COMMENT ".sql_quote("Panier des courriers (casiers)")); sql_alter("TABLE spip_auteurs_courriers COMMENT ".sql_quote("Queue des envois de courriers")); sql_alter("TABLE spip_auteurs_listes COMMENT ".sql_quote("Listes de abonnements aux listes")); sql_alter("TABLE spip_auteurs_mod_listes COMMENT ".sql_quote("Moderateurs des listes de diffusion")); sql_alter("TABLE spip_auteurs_elargis COMMENT ".sql_quote("Preferences des auteurs/abonnes (formats recept.)")); $spiplistes_current_version = 1.9923; } /* ... */ // Ajouter au dessus de cette ligne les patches si besoin pour nouvelle version de SPIP-Listes // qui ne concerne pas la base (changement de nom de script, de patron, etc.) // fin des ajouts de patches ecrire_meta('spiplistes_version', $spiplistes_real_version); spiplistes_ecrire_metas(); } return($spiplistes_current_version); }
/** * @return string */ function spiplistes_base_creer () { //spiplistes_debug_log("spiplistes_base_creer()"); global $tables_principales; // demande a SPIP de creer les tables (base/create.php) include_spip('base/create'); include_spip('base/abstract_sql'); include_spip('base/db_mysql'); include_spip('base/spiplistes_tables'); creer_base(); $descauteurs = sql_showtable('spip_auteurs_elargis',true); if(!isset($descauteurs['field']['spip_listes_format'])){ // si la table spip_auteurs_elargis existe déjà sql_alter("TABLE spip_auteurs_elargis ADD `spip_listes_format` VARCHAR(8) DEFAULT 'non' NOT NULL"); } spiplistes_log("INSTALL: database creation"); $spiplistes_base_version = spiplistes_real_version_base_get(_SPIPLISTES_PREFIX); ecrire_meta('spiplistes_base_version', $spiplistes_base_version); spiplistes_ecrire_metas(); $spiplistes_base_version = $GLOBALS['meta']['spiplistes_base_version']; return($spiplistes_base_version); }
, 'nav_t' => _T('spiplistes:Inconnu') , 'tab_t' => _T('spiplistes:Inconnu') , 'desc' => null ) ); $spiplistes_items[_SPIPLISTES_LIST_PUB_DAILY] = $spiplistes_items[_SPIPLISTES_LIST_PUBLIC]; $spiplistes_items[_SPIPLISTES_LIST_PUB_HEBDO] = $spiplistes_items[_SPIPLISTES_LIST_PUB_WEEKLY]; $spiplistes_items[_SPIPLISTES_LIST_PUB_MENSUEL] = $spiplistes_items[_SPIPLISTES_LIST_PUB_MONTHLY]; $spiplistes_items[_SPIPLISTES_LIST_PUB_MONTHLY]['nav_t'] = _T('spiplistes:Listes_1_du_mois'); $spiplistes_items[_SPIPLISTES_LIST_PUB_MONTHLY]['tab_t'] = _T('spiplistes:Liste_diffusee_le_premier_de_chaque_mois'); $spiplistes_version = isset($meta['spiplistes_version'])?$meta['spiplistes_version']:""; $spiplistes_real_version = spiplistes_real_version_get(_SPIPLISTES_PREFIX); $spiplistes_base_version = isset($meta['spiplistes_base_version'])?$meta['spiplistes_base_version']:""; $spiplistes_real_base_version = spiplistes_real_version_base_get(_SPIPLISTES_PREFIX); if( ($spiplistes_version && ($spiplistes_real_version > $spiplistes_version)) || ($spiplistes_base_version && ($spiplistes_real_base_version > $spiplistes_base_version)) ) { // faire upgrade auto include_spip('base/spiplistes_upgrade'); spiplistes_upgrade(); } /* spiplistes_debug_log('version: '.$spiplistes_version . ' ' . 'real_version: '.$spiplistes_real_version . ' ' . 'base_version: '.$spiplistes_base_version . ' ' . 'real_base_version: '.$spiplistes_real_base_version);
function spiplistes_current_version_base_get ($prefix) { global $meta; if(!($vb = $meta[$prefix."_base_version"])) { $vb = spiplistes_real_version_base_get ($prefix); } return($vb); }