function fraap_candidatures_upgrade($nom_meta_base_version, $version_cible) { $current_version = "0.0"; if (isset($GLOBALS['meta'][$nom_meta_base_version])) { $current_version = $GLOBALS['meta'][$nom_meta_base_version]; } if ($current_version == "0.0") { creer_base(); maj_tables('spip_auteurs'); ecrire_meta($nom_meta_base_version, $current_version = $version_cible); } // ajout d'un statut publie par defaut /* if (version_compare($current_version, '0.3', '<')) { include_spip('base/abstract_sql'); sql_alter("TABLE spip_candidatures CHANGE statut statut VARCHAR(10) DEFAULT 'publie' NOT NULL"); ecrire_meta($nom_meta_base_version,$current_version="0.3"); } // ajout du statut publié pour les enregistrements déjà présents if (version_compare($current_version, '0.33', '<')) { include_spip('base/abstract_sql'); $res = sql_select("statut", "spip_candidatures"); while ($row = sql_fetch($res)){ if(isset($row['statut'])) { if (!sql_updateq("spip_candidatures",array('statut'=>'publie'))) spip_log('mise à jour colonne statut rencontre un probleme','journal'); } } ecrire_meta($nom_meta_base_version,$current_version="0.33"); } */ }
/** * Programme de mise a jour des tables SQL lors d'un chgt de version. * L'entree dans cette fonction est reservee au maj de SPIP coeur * * Marche aussi pour les plugins en appelant directement la fonction maj_plugin * Pour que ceux-ci profitent aussi de la reprise sur interruption, * ils doivent simplement indiquer leur numero de version installee dans une meta * et fournir le tableau maj a la fonction maj_plugin. * La reprise sur timeout se fait alors par la page admin_plugin et jamais par ici * * http://doc.spip.org/@base_upgrade_dist * * @param string $titre * @param string $reprise * @return */ function base_upgrade_dist($titre = '', $reprise = '') { if (!$titre) { return; } // anti-testeur automatique if ($GLOBALS['spip_version_base'] != $GLOBALS['meta']['version_installee']) { if (!is_numeric(_request('reinstall'))) { include_spip('base/create'); spip_log("recree les tables eventuellement disparues", "maj." . _LOG_INFO_IMPORTANTE); creer_base(); } // quand on rentre par ici, c'est toujours une mise a jour de SPIP // lancement de l'upgrade SPIP $res = maj_base(); if ($res) { // on arrete tout ici ! exit; } } spip_log("Fin de mise a jour SQL. Debut m-a-j acces et config", "maj." . _LOG_INFO_IMPORTANTE); // supprimer quelques fichiers temporaires qui peuvent se retrouver invalides @spip_unlink(_CACHE_RUBRIQUES); @spip_unlink(_CACHE_PIPELINES); @spip_unlink(_CACHE_PLUGINS_PATH); @spip_unlink(_CACHE_PLUGINS_OPT); @spip_unlink(_CACHE_PLUGINS_FCT); @spip_unlink(_CACHE_CHEMIN); @spip_unlink(_DIR_TMP . "plugin_xml_cache.gz"); include_spip('inc/auth'); auth_synchroniser_distant(); $config = charger_fonction('config', 'inc'); $config(); }
function galettonuts_upgrade() { $version_installee = isset($GLOBALS['meta']['galettonuts_version']) ? $GLOBALS['meta']['galettonuts_version'] : '0.0'; // La version installée est la dernière en date if ($version_installee == galettonuts_version()) { return; } else { if (version_compare($version_installee, '0.0', 'eq')) { include_spip('base/galettonuts_tables'); include_spip('base/create'); include_spip('base/abstract_sql'); creer_base(); ecrire_meta('galettonuts_version', galettonuts_version()); ecrire_meta('galettonuts_config', serialize(array('adresse_db' => 'localhost', 'prefix_db' => 'galette_', 'db_ok' => false, 'activer_cron' => true, 'heures' => 0, 'minutes' => 30))); ecrire_meta('galettonuts_synchro', serialize(array('frequence' => 600))); ecrire_metas(); echo '<br />', debut_boite_info(true), '<strong>', _T('galettonuts:installation_succes'), '</strong>', '<p>', _T('galettonuts:texte_installation_succes'), '</p>', fin_boite_info(true); return; } } $version_comparaison = version_compare(galettonuts_version(), $version_installee); // Mise à jour if (-1 == $version_comparaison) { // TODO: Gérer un Upgrade ecrire_meta('galettonuts_version', galettonuts_version()); return; } else { if (1 == $version_comparaison) { // TODO: Gérer un Downgrade return; } } }
function admin_repair_tables() { $repair = sql_repair('repair', NULL, 'continue'); // recreer les tables manquantes eventuelles include_spip('base/create'); creer_base(); $connexion = $GLOBALS['connexions'][0]; $prefixe = $connexion['prefixe']; $rows = array(); if ($res1 = sql_showbase()) { while ($r = sql_fetch($res1)) { $rows[] = $r; } sql_free($res1); } $res = ""; if (count($rows)) { while ($r = array_shift($rows)) { $tab = array_shift($r); $class = ""; $m = "<strong>{$tab}</strong> "; spip_log("Repare {$tab}", _LOG_INFO_IMPORTANTE); // supprimer la meta avant de lancer la reparation // car le repair peut etre long ; on ne veut pas boucler effacer_meta('admin_repair'); if ($repair) { $result_repair = sql_repair($tab); if (!$result_repair) { return false; } } // essayer de maj la table (creation de champs manquants) maj_tables($tab); $count = sql_countsel($tab); if ($count > 1) { $m .= "(" . _T('texte_compte_elements', array('count' => $count)) . ")\n"; } else { if ($count == 1) { $m .= "(" . _T('texte_compte_element', array('count' => $count)) . ")\n"; } else { $m .= "(" . _T('texte_vide') . ")\n"; } } if ($result_repair and $msg = join(" ", is_resource($result_repair) ? sql_fetch($result_repair) : $result_repair) . ' ' and strpos($msg, ' OK ') === FALSE) { $class = " class='notice'"; $m .= "<br /><tt>" . htmlentities($msg) . "</tt>\n"; } else { $m .= " " . _T('texte_table_ok'); } $res .= "<div{$class}>{$m}</div>"; } } return $res; }
function vacarme_numeros_upgrade($nom_meta_version_base, $version_cible) { $version_actuelle = '0.0'; if (!isset($GLOBALS['meta'][$nom_meta_version_base]) || ($version_actuelle = $GLOBALS['meta'][$nom_meta_version_base]) != $version_cible) { if (version_compare($version_actuelle, '0.0', '=')) { // Création des tables creer_base(); } ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non'); } }
/** * Fonction d'installation, mise a jour de la base * * @param unknown_type $nom_meta_base_version * @param unknown_type $version_cible */ function accesrestreint_upgrade($nom_meta_base_version,$version_cible){ $current_version = 0.0; if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) ) || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){ include_spip('base/acces_restreint'); if (version_compare($current_version,'0.0','<=')){ include_spip('base/create'); include_spip('base/abstract_sql'); creer_base(); // ajout des champs publique/privee si pas existants $desc = sql_showtable("spip_zones", true); if (!isset($desc['field']['publique'])) sql_alter("TABLE spip_zones ADD publique ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER descriptif"); if (!isset($desc['field']['privee'])) sql_alter("TABLE spip_zones ADD privee ENUM('non', 'oui') DEFAULT 'non' NOT NULL AFTER publique"); echo "AccesRestreint Install<br/>"; effacer_meta($nom_meta_base_version); // salade de majuscules ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non'); } if (version_compare($current_version,'0.2','<')){ include_spip('base/create'); include_spip('base/abstract_sql'); // ajout des champs publique/privee si pas existants $desc = sql_showtable("spip_zones", true); if (!isset($desc['field']['publique'])) sql_alter("TABLE spip_zones ADD publique ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER descriptif"); if (!isset($desc['field']['privee'])) sql_alter("TABLE spip_zones ADD privee ENUM('non', 'oui') DEFAULT 'non' NOT NULL AFTER publique"); echo "AccesRestreint@0.2<br />"; ecrire_meta($nom_meta_base_version,$current_version='0.2','non'); } if (version_compare($current_version,'0.3','<')){ sql_alter("TABLE `zones_auteurs` DROP INDEX `id_zone`"); sql_alter("TABLE `zones_auteurs` ADD PRIMARY KEY ( `id_zone` , `id_auteur` )"); sql_alter("TABLE `zones_rubriques` DROP INDEX `id_zone`"); sql_alter("TABLE `zones_rubriques` ADD PRIMARY KEY ( `id_zone` , `id_rubrique` )"); echo "AccesRestreint@0.3<br />"; ecrire_meta($nom_meta_base_version,$current_version='0.3','non'); } if (version_compare($current_version,'0.3.0.1','<')){ #ecrire_meta('creer_htaccess','oui'); echo "AccesRestreint@0.3.0.1<br />"; ecrire_meta($nom_meta_base_version,$current_version='0.3.0.1','non'); } if (version_compare($current_version,'0.3.0.2','<')){ #ecrire_meta('creer_htaccess','oui'); sql_alter("TABLE spip_zone ALTER titre SET DEFAULT ''"); sql_alter("TABLE spip_zone ALTER descriptif SET DEFAULT ''"); echo "AccesRestreint@0.3.0.2<br />"; ecrire_meta($nom_meta_base_version,$current_version='0.3.0.2','non'); } } }
/** * Upgrade de la base * * @param string $nom_meta_base_version * @param string $version_cible */ function bank_upgrade($nom_meta_base_version, $version_cible) { $current_version = 0.0; if (!isset($GLOBALS['meta'][$nom_meta_base_version]) || ($current_version = $GLOBALS['meta'][$nom_meta_base_version]) != $version_cible) { include_spip('base/abstract_sql'); if (spip_version_compare($current_version, "0.0.0", "<=")) { include_spip('base/create'); include_spip('base/serial'); creer_base(); echo "Paiement Install<br/>"; ecrire_meta($nom_meta_base_version, $current_version = $version_cible, 'non'); } if (spip_version_compare($current_version, "0.1.3", "<=")) { include_spip('base/create'); include_spip('base/serial'); maj_tables(array('spip_transactions')); ecrire_meta($nom_meta_base_version, $current_version = "0.1.3", 'non'); } if (spip_version_compare($current_version, "0.1.5", "<=")) { include_spip('base/create'); include_spip('base/serial'); sql_alter("table spip_transactions change url_retour url_retour text DEFAULT '' NOT NULL"); ecrire_meta($nom_meta_base_version, $current_version = "0.1.5", 'non'); } if (spip_version_compare($current_version, "1.0.0", "<=")) { include_spip('base/create'); include_spip('base/serial'); sql_alter("table spip_transactions change transaction_hash transaction_hash bigint(21) NOT NULL DEFAULT 0"); ecrire_meta($nom_meta_base_version, $current_version = "1.0.0", 'non'); } if (spip_version_compare($current_version, "1.0.1", "<=")) { include_spip('base/create'); include_spip('base/serial'); sql_alter("table spip_transactions change finie finie tinyint(1) NOT NULL DEFAULT 0"); sql_alter("table spip_transactions change tracking_id tracking_id bigint(21) NOT NULL DEFAULT 0"); sql_alter("table spip_transactions change id_panier id_panier bigint(21) NOT NULL DEFAULT 0"); sql_alter("table spip_transactions change id_facture id_facture bigint(21) NOT NULL DEFAULT 0"); ecrire_meta($nom_meta_base_version, $current_version = "1.0.1", 'non'); } if (spip_version_compare($current_version, "1.1.0", "<=")) { include_spip('base/create'); include_spip('base/serial'); sql_alter("table spip_transactions ADD contenu TEXT NOT NULL DEFAULT ''"); ecrire_meta($nom_meta_base_version, $current_version = "1.1.0", 'non'); } bank_presta_install(); } }
function base_upgrade_dist($titre='', $reprise='') { if (!$titre) return; // anti-testeur automatique if ($GLOBALS['spip_version']!=$GLOBALS['meta']['version_installee']) { if (!is_numeric(_request('reinstall'))) { include_spip('base/create'); spip_log("recree les tables eventuellement disparues"); creer_base(); } $meta = _request('meta'); if (!$meta) $res = maj_base(); // reprise sur demande de mise a jour interrompue pour plugin else $res= maj_while($GLOBALS['meta'][$meta], $GLOBALS[$meta]['cible'], $GLOBALS[$meta]['maj'], $meta, _request('table')); if ($res) { if (!is_array($res)) spip_log("Pb d'acces SQL a la mise a jour"); else { include_spip('inc/minipres'); echo minipres(_T('avis_operation_echec') . ' ' . join(' ', $res)); exit; } } } spip_log("Fin de mise a jour SQL. Debut m-a-j acces et config"); // supprimer quelques fichiers temporaires qui peuvent se retrouver invalides spip_unlink(_DIR_TMP.'plugin_xml.cache'); spip_unlink(_DIR_SESSIONS.'ajax_fonctions.txt'); spip_unlink(_CACHE_PIPELINES); spip_unlink(_CACHE_RUBRIQUES); spip_unlink(_CACHE_PLUGINS_OPT); spip_unlink(_CACHE_PLUGINS_FCT); spip_unlink(_CACHE_PLUGINS_VERIF); include_spip('inc/acces'); ecrire_acces(); $config = charger_fonction('config', 'inc'); $config(); }
function entites_nommees_upgrade($nom_meta_base_version, $version_cible) { $current_version = "0.0"; if (isset($GLOBALS['meta'][$nom_meta_base_version])) { $current_version = $GLOBALS['meta'][$nom_meta_base_version]; } if ($current_version == "0.0") { creer_base(); ecrire_meta($nom_meta_base_version, $current_version = $version_cible); // marche pas ? } /* if (version_compare($current_version,"0.3","<")){ // ajout de champs maj_tables('entites_nommees'); ecrire_meta($nom_meta_base_version,$current_version="0.3"); } */ }
function vacarme_commande_upgrade($nom_meta_base_version, $version_cible) { $current_version = 0.0; if (!isset($GLOBALS['meta'][$nom_meta_base_version]) || ($current_version = $GLOBALS['meta'][$nom_meta_base_version]) != $version_cible) { include_spip('base/vacarme_commande'); if ($current_version == 0.0) { creer_base(); maj_tables(array("spip_contacts", "spip_abonnements", "spip_contacts_abonnements", "spip_paniers_liens", "spip_commandes", "spip_commandes_details")); ecrire_meta($nom_meta_base_version, $current_version = $version_cible, 'non'); } if (version_compare($current_version, "0.2", "<")) { maj_tables('spip_commandes'); ecrire_meta($nom_meta_base_version, $current_version = "0.2"); } if (version_compare($current_version, "0.3", "<")) { creer_base(); // ajout de spip_commandes_transactions ecrire_meta($nom_meta_base_version, $current_version = "0.3"); } } }
function couteau_suisse_upgrade($nom_meta_base_version,$version_cible){ //echo "<br>UPGRADE : $nom_meta_base_version,$version_cible,",$GLOBALS['meta'][$nom_meta_base_version]; if(defined('_LOG_CS')) cs_log("couteau_suisse_upgrade($nom_meta_base_version,$version_cible)"); $current_version = 0.0; if( (!isset($GLOBALS['meta'][$nom_meta_base_version])) || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){ if ($current_version==0.0){ include_spip('base/create'); creer_base(); } if (version_compare($current_version,$tmp='1.0','<')){ echo '<h4>',_T('couteau:titre'),' - Upgrade ',$tmp,'</h4>'; cs_suppr_metas_var('set_options'); cs_suppr_metas_var('radio_set_options3'); cs_suppr_metas_var('radio_set_options', 'radio_set_options4'); cs_suppr_metas_var('radio_type_urls', 'radio_type_urls3'); cs_suppr_metas_var('radio_type_urls2', 'radio_type_urls3'); cs_suppr_metas_var('radio_filtrer_javascript', 'radio_filtrer_javascript3'); cs_suppr_metas_var('radio_filtrer_javascript2', 'radio_filtrer_javascript3'); cs_suppr_metas_var('radio_suivi_forums', 'radio_suivi_forums3'); cs_suppr_metas_var('desactive_cache'); cs_suppr_metas_var('radio_desactive_cache', 'radio_desactive_cache3'); cs_suppr_metas_var('target_blank'); cs_suppr_metas_var('url_glossaire_externe', 'url_glossaire_externe2'); cs_suppr_metas_var(''); effacer_meta('cs_decoupe'); if(defined('_SPIP19300')) { if(@$metas_vars['radio_desactive_cache3']==1) $metas_vars['radio_desactive_cache4']=-1; cs_suppr_metas_var('radio_desactive_cache3'); } foreach(array('cs_decoration', 'cs_decoration_racc', 'cs_smileys', 'cs_smileys_racc', 'cs_chatons', 'cs_chatons_racc', 'cs_jcorner', 'cs_couleurs', 'cs_couleurs_racc', 'cs_filets_sep', 'cs_filets_sep_racc', 'cs_insertions') as $meta) effacer_meta($meta); ecrire_meta($nom_meta_base_version,$current_version=$tmp); } ecrire_metas(); } }
function rec_mc_install($action){ switch ($action) { // La base est deja cree ? case 'test': // Verifier que le champ id_rec_mc est present... include_spip('base/abstract_sql'); // $desc = spip_abstract_showtable("spip_rmc_rubs_groupes", '', true); return (isset($desc['field']['id_groupe'])); break; // Installer la base case 'install': include_spip('base/create'); // definir la fonction include_spip('base/rec_mc_tables'); // definir sa structure creer_base(); break; // Supprimer la base case 'uninstall': spip_query("DROP TABLE spip_rmc_rubs_groupes_conf"); spip_query("DROP TABLE spip_rmc_rubs_groupes"); spip_query("DROP TABLE spip_rmc_mots_exclus"); break; } }
/** * Mises à jour de SPIP n°017 * * @param float $version_installee Version actuelle * @param float $version_cible Version de destination **/ function maj_v017_dist($version_installee, $version_cible) { if (upgrade_vers(1.702, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD extra longblob NULL"); spip_query("ALTER TABLE spip_auteurs ADD extra longblob NULL"); spip_query("ALTER TABLE spip_breves ADD extra longblob NULL"); spip_query("ALTER TABLE spip_rubriques ADD extra longblob NULL"); spip_query("ALTER TABLE spip_mots ADD extra longblob NULL"); // recuperer les eventuels 'supplement' installes en 1.701 if ($version_installee == 1.701) { spip_query("UPDATE spip_articles SET extra = supplement"); spip_query("ALTER TABLE spip_articles DROP supplement"); spip_query("UPDATE spip_auteurs SET extra = supplement"); spip_query("ALTER TABLE spip_auteurs DROP supplement"); spip_query("UPDATE spip_breves SET extra = supplement"); spip_query("ALTER TABLE spip_breves DROP supplement"); spip_query("UPDATE spip_rubriques SET extra = supplement"); spip_query("ALTER TABLE spip_rubriques DROP supplement"); spip_query("UPDATE spip_mots SET extra = supplement"); spip_query("ALTER TABLE spip_mots DROP supplement"); } $u = spip_query("SELECT extra FROM spip_articles"); $u &= spip_query("SELECT extra FROM spip_auteurs"); $u &= spip_query("SELECT extra FROM spip_breves"); $u &= spip_query("SELECT extra FROM spip_rubriques"); $u &= spip_query("SELECT extra FROM spip_mots"); maj_version(1.702, $u); } if (upgrade_vers(1.703, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD lang VARCHAR(10) DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_rubriques ADD lang VARCHAR(10) DEFAULT '' NOT NULL"); maj_version(1.703); } if (upgrade_vers(1.704, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD INDEX lang (lang)"); spip_query("ALTER TABLE spip_auteurs ADD INDEX lang (lang)"); spip_query("ALTER TABLE spip_rubriques ADD INDEX lang (lang)"); maj_version(1.704); } if (upgrade_vers(1.705, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD langue_choisie VARCHAR(3) DEFAULT 'non'"); spip_query("ALTER TABLE spip_rubriques ADD langue_choisie VARCHAR(3) DEFAULT 'non'"); maj_version(1.705); } if (upgrade_vers(1.707, $version_installee, $version_cible)) { spip_query("UPDATE spip_articles SET langue_choisie='oui' WHERE MID(lang,1,1) != '.' AND lang != ''"); spip_query("UPDATE spip_articles SET lang=MID(lang,2,8) WHERE langue_choisie = 'non'"); spip_query("UPDATE spip_rubriques SET langue_choisie='oui' WHERE MID(lang,1,1) != '.' AND lang != ''"); spip_query("UPDATE spip_rubriques SET lang=MID(lang,2,8) WHERE langue_choisie = 'non'"); maj_version(1.707); } if (upgrade_vers(1.708, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_breves ADD lang VARCHAR(10) DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_breves ADD langue_choisie VARCHAR(3) DEFAULT 'non'"); maj_version(1.708); } if (upgrade_vers(1.709, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD id_trad bigint(21) DEFAULT '0' NOT NULL"); spip_query("ALTER TABLE spip_articles ADD INDEX id_trad (id_trad)"); maj_version(1.709); } if (upgrade_vers(1.717, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD INDEX date_modif (date_modif)"); maj_version(1.717); } if (upgrade_vers(1.718, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_referers DROP domaine"); spip_query("ALTER TABLE spip_referers_articles DROP domaine"); spip_query("ALTER TABLE spip_referers_temp DROP domaine"); maj_version(1.718); } if (upgrade_vers(1.722, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD nom_site tinytext NOT NULL"); spip_query("ALTER TABLE spip_articles ADD url_site VARCHAR(255) NOT NULL"); spip_query("ALTER TABLE spip_articles ADD INDEX url_site (url_site)"); if ($version_installee >= 1.72) { spip_query("UPDATE spip_articles SET url_site=url_ref"); spip_query("ALTER TABLE spip_articles DROP INDEX url_ref"); spip_query("ALTER TABLE spip_articles DROP url_ref"); } maj_version(1.722); } if (upgrade_vers(1.723, $version_installee, $version_cible)) { if ($version_installee == 1.722) { spip_query("ALTER TABLE spip_articles MODIFY url_site VARCHAR(255) NOT NULL"); spip_query("ALTER TABLE spip_articles DROP INDEX url_site;"); spip_query("ALTER TABLE spip_articles ADD INDEX url_site (url_site);"); } maj_version(1.723); } if (upgrade_vers(1.724, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_messages ADD date_fin datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"); maj_version(1.724); } if (upgrade_vers(1.726, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_auteurs ADD low_sec tinytext NOT NULL"); maj_version(1.726); } if (upgrade_vers(1.727, $version_installee, $version_cible)) { // occitans : oci_xx -> oc_xx spip_query("UPDATE spip_auteurs SET lang=REPLACE(lang,'oci_', 'oc_') WHERE lang LIKE 'oci_%'"); spip_query("UPDATE spip_rubriques SET lang=REPLACE(lang,'oci_', 'oc_') WHERE lang LIKE 'oci_%'"); spip_query("UPDATE spip_articles SET lang=REPLACE(lang,'oci_', 'oc_') WHERE lang LIKE 'oci_%'"); spip_query("UPDATE spip_breves SET lang=REPLACE(lang,'oci_', 'oc_') WHERE lang LIKE 'oci_%'"); maj_version(1.727); } // Ici version 1.7 officielle if (upgrade_vers(1.728, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD id_version int unsigned DEFAULT '0' NOT NULL"); maj_version(1.728); } if (upgrade_vers(1.73, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_articles ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_auteurs ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_auteurs ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_breves ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_breves ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_mots ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_mots ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_rubriques ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_rubriques ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_syndic ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_syndic ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_forum ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_forum ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_signatures ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_signatures ADD INDEX idx (idx)"); maj_version(1.73); } if (upgrade_vers(1.731, $version_installee, $version_cible)) { spip_query("UPDATE spip_articles SET idx='1' where lang IN ('de','vi')"); spip_query("UPDATE spip_rubriques SET idx='1' where lang IN ('de','vi')"); spip_query("UPDATE spip_breves SET idx='1' where lang IN ('de','vi')"); spip_query("UPDATE spip_auteurs SET idx='1' where lang IN ('de','vi')"); maj_version(1.731); } if (upgrade_vers(1.732, $version_installee, $version_cible)) { // en correction d'un vieux truc qui avait fait sauter le champ inclus sur les bases version 1.415 spip_query("ALTER TABLE spip_documents ADD inclus VARCHAR(3) DEFAULT 'non'"); maj_version(1.732); } if (upgrade_vers(1.733, $version_installee, $version_cible)) { // spip_query("ALTER TABLE spip_articles ADD id_version int unsigned DEFAULT '0' NOT NULL"); spip_query("DROP TABLE spip_versions"); spip_query("DROP TABLE spip_versions_fragments"); creer_base(); maj_version(1.733); } #if ($version_installee < 1.734) { # // integrer nouvelles tables auxiliaires du compilateur ESJ # creer_base(); # maj_version(1.734); #} }
/** * @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); }
function install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db, $sel_db, $chmod_db){ global $spip_version_base; // Prefix des tables : // contrairement a ce qui est dit dans le message (trop strict mais c'est // pour notre bien), on va tolerer les chiffres en plus des minuscules // S'il n'est pas defini par mes_options/inc/mutualiser, on va le creer // a partir de ce qui est envoye a l'installation if (!defined('_INSTALL_TABLE_PREFIX')) { $table_prefix = ($GLOBALS['table_prefix'] != 'spip') ? $GLOBALS['table_prefix'] : trim(preg_replace(',[^a-z0-9],','',strtolower(_request('tprefix')))); // S'il est vide on remet spip if (!$table_prefix) $table_prefix = 'spip'; } else { $table_prefix = _INSTALL_TABLE_PREFIX; } $GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db); $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $server_db .'_functions_' . $GLOBALS['spip_sql_version']]; $fquery = sql_serveur('query', $server_db); if ($choix_db == "new_spip") { $re = ',^[a-z_][a-z_0-9-]*$,i'; if (preg_match($re, $sel_db)) sql_create_base($sel_db, $server_db); else { $re = "Le nom de la base doit correspondre a $re"; spip_log($re); return "<!--\n$re\n-->"; } } // on rejoue la connexion apres avoir teste si il faut lui indiquer // un sql_mode install_mode_appel($server_db, false); $GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, $sel_db, $login_db, $pass_db, $sel_db, $server_db); $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $server_db .'_functions_' . $GLOBALS['spip_sql_version']]; // Completer le tableau decrivant la connexion $GLOBALS['connexions'][$server_db]['prefixe'] = $table_prefix; $GLOBALS['connexions'][$server_db]['db'] = $sel_db; $old = sql_showbase($table_prefix . "_meta", $server_db); if ($old) $old = sql_fetch($old, $server_db); if (!$old) { // Si possible, demander au serveur d'envoyer les textes // dans le codage std de SPIP, $charset = sql_get_charset(_DEFAULT_CHARSET, $server_db); if ($charset) { sql_set_charset($charset['charset'], $server_db); $GLOBALS['meta']['charset_sql_base'] = $charset['charset']; $GLOBALS['meta']['charset_collation_sql_base'] = $charset['collation']; $GLOBALS['meta']['charset_sql_connexion'] = $charset['charset']; $charsetbase = $charset['charset']; } else { spip_log(_DEFAULT_CHARSET . " inconnu du serveur SQL"); $charsetbase = 'standard'; } spip_log("Creation des tables. Codage $charsetbase"); creer_base($server_db); // AT LAST creer_base_types_doc($server_db); // memoriser avec quel charset on l'a creee if ($charset) { $t = array('nom' => 'charset_sql_base', 'valeur' => $charset['charset'], 'impt' => 'non'); @sql_insertq('spip_meta', $t, '', $server_db); $t['nom'] = 'charset_collation_sql_base'; $t['valeur'] = $charset['collation']; @sql_insertq('spip_meta', $t, '', $server_db); $t['nom'] = 'charset_sql_connexion'; $t['valeur'] = $charset['charset']; @sql_insertq('spip_meta', $t, '', $server_db); } $t = array('nom' => 'version_installee', 'valeur' => $spip_version_base, 'impt' => 'non'); @sql_insertq('spip_meta', $t, '', $server_db); $t['nom'] = 'nouvelle_install'; $t['valeur'] = 1; @sql_insertq('spip_meta', $t, '', $server_db); // positionner la langue par defaut du site si un cookie de lang a ete mis if (isset($_COOKIE['spip_lang_ecrire'])){ @sql_insertq('spip_meta', array('nom'=>'langue_site','valeur'=>$_COOKIE['spip_lang_ecrire']), '', $server_db); } } else { // pour recreer les tables disparues au besoin spip_log("Table des Meta deja la. Verification des autres."); creer_base($server_db); $fupdateq = sql_serveur('updateq', $server_db); $r = $fquery("SELECT valeur FROM spip_meta WHERE nom='version_installee'", $server_db); if ($r) $r = sql_fetch($r, $server_db); $version_installee = !$r ? 0 : (double) $r['valeur']; if (!$version_installee OR ($spip_version_base < $version_installee)) { $fupdateq('spip_meta', array('valeur'=>$spip_version_base, 'impt'=>'non'), "nom='version_installee'", $server_db); spip_log("nouvelle version installee: $spip_version_base"); } // eliminer la derniere operation d'admin mal terminee // notamment la mise a jour @$fquery("DELETE FROM spip_meta WHERE nom='import_all' OR nom='admin'", $server_db); } $ligne_rappel = install_mode_appel($server_db); $result_ok = @$fquery("SELECT COUNT(*) FROM spip_meta", $server_db); if (!$result_ok) return "<!--\nvielle = $old rappel= $ligne_rappel\n-->"; if ($chmod_db) { install_fichier_connexion(_FILE_CHMOD_TMP, "if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', ". sprintf('0%3o',$chmod_db).");\n"); } if (preg_match(',(.*):(.*),', $adresse_db, $r)) list(,$adresse_db, $port) = $r; else $port = ''; // si ce fichier existe a cette etape c'est qu'il provient // d'une installation qui ne l'a pas cree correctement. // Le supprimer pour que _FILE_CONNECT_TMP prime. if (_FILE_CONNECT AND file_exists(_FILE_CONNECT)) spip_unlink(_FILE_CONNECT); install_fichier_connexion(_FILE_CONNECT_TMP, $ligne_rappel . install_connexion($adresse_db, $port, $login_db, $pass_db, $sel_db, $server_db, $table_prefix)); return ''; }
function ecatalogue_upgrade($nom_meta_base_version, $version_cible) { $current_version = "0.0"; // If plugin is already installed, get it's base version if (isset($GLOBALS['meta'][$nom_meta_base_version])) { $current_version = $GLOBALS['meta'][$nom_meta_base_version]; //spip_log('12:14 Version actuelle : '.$current_version,'ecatalogue'); } // If plugin's base version is 0.0 (it is not installed) create database if ($current_version == "0.0") { // check if you already have an old database $r = mysql_query("SELECT `type` FROM `spip_ecatalogue_groupes` WHERE 0"); if ($r) { sql_alter("TABLE spip_ecatalogue_groupes RENAME spip_ecatalogue_proprietes"); sql_alter("TABLE spip_ecatalogue_proprietes CHANGE id_groupe id_propriete bigint(21) NOT NULL"); sql_alter("TABLE spip_ecatalogue_options CHANGE id_groupe id_propriete bigint(21) NOT NULL"); } creer_base(); // Write new version to sql cache. //$current_version became latest, therefore all next version_compare checks won't be executed ecrire_meta($nom_meta_base_version, $current_version = $version_cible); //spip_log('Base de donnйes ecatalogue correctement peuplйe','ecatalogue'); } // If plugin's base version is < 0.1, alter some tables if (version_compare($current_version, "0.1.0", "<")) { // Upgrade via sql_alter //sql_alter("TABLE spip_ecatalogue_products ADD COLUMN id_equipment bigint(21) NOT NULL"); // Upgrade via maj_tables (it tells SPIP to refresh some tables) maj_tables('spip_ecatalogue_products'); // Write new version to sql cache ecrire_meta($nom_meta_base_version, $current_version = "0.1"); } if (version_compare($current_version, "0.2.0", "<")) { //maj_tables('spip_ecatalogue_articles_similars'); creer_base(); maj_tables('spip_ecatalogue_products'); ecrire_meta($nom_meta_base_version, $current_version = "0.2"); } if (version_compare($current_version, "0.3.0", "<")) { // Create tables that wasn't created yet creer_base(); ecrire_meta($nom_meta_base_version, $current_version = "0.3"); } if (version_compare($current_version, "0.4.0", "<")) { // Create tables that wasn't created yet //creer_base(); maj_tables('spip_ecatalogue_products'); ecrire_meta($nom_meta_base_version, $current_version = "0.4"); } if (version_compare($current_version, "0.5.0", "<")) { // Create tables that wasn't created yet creer_base(); ecrire_meta($nom_meta_base_version, $current_version = "0.5"); } if (version_compare($current_version, "0.6.0", "<")) { maj_tables('spip_ecatalogue_products'); ecrire_meta($nom_meta_base_version, $current_version = "0.6"); } if (version_compare($current_version, "0.7.0", "<")) { maj_tables('spip_ecatalogue_composites_articles'); ecrire_meta($nom_meta_base_version, $current_version = "0.7"); } if (version_compare($current_version, "0.9.0", "<")) { maj_tables('spip_ecatalogue_options'); ecrire_meta($nom_meta_base_version, $current_version = "0.9"); } if (version_compare($current_version, "0.10.0", "<")) { // Create tables that wasn't created yet (spip_ecatalogue_proprietes, spip_ecatalogue_rubriques_groupes) creer_base(); // Update tables maj_tables('spip_ecatalogue_options'); maj_tables('spip_ecatalogue_groupes'); ecrire_meta($nom_meta_base_version, $current_version = "0.10"); } if (version_compare($current_version, "0.11.0", "<")) { // Create tables that wasn't created yet (spip_ecatalogue_proprietes, spip_ecatalogue_rubriques_groupes) //creer_base(); $desc = description_table('spip_rubriques'); // Update tables if (!array_key_exists('id_import', $desc['field'])) { sql_query('Alter table spip_rubriques add column id_import int null '); } ecrire_meta($nom_meta_base_version, $current_version = "0.11"); } if (version_compare($current_version, "0.12.0", "<")) { creer_base(); maj_tables('ecatalogue_prices'); maj_tables('ecatalogue_prices_group'); // Проверка на существование 1 группы цен $id_group = ''; $r1 = sql_select('id_group', 'spip_ecatalogue_prices_group', array('id_group = 1', 'is_active = 1')); while ($res = sql_fetch($r1)) { $id_group = $res[1]; } if (!$id_group) { sql_insert('spip_ecatalogue_prices_group', '(id_group,titre,is_active)', '(1,"Розница",1)'); } // Запись в таблицу spip_ecatalogue_prices цен из таблицы spip_ecatalogue_products $r = sql_select('id_article,price', 'spip_ecatalogue_products', 'price<>""'); while ($res = sql_fetch($r)) { $id_group = 1; $id_article = $res['id_article']; $price = $res['price']; // Проверка что такая цена уже есть в справочнике цен в 1 группе, тогда цену обновляем $id_tmp_art = ''; $r2 = sql_select('id_article', 'spip_ecatalogue_prices', array('id_article = ' . $id_article, 'id_group = 1')); while ($res = sql_fetch($r2)) { $id_tmp_art = $res['id_article']; } if ($id_tmp_art) { // Обновляем цену sql_update('spip_ecatalogue_prices', array('price' => $price), array('id_article = ' . $id_article, 'id_group = 1')); } else { // Вставляем цену sql_insert('spip_ecatalogue_prices', '(id_article,id_group,price)', '(' . $id_article . ',1,' . $price . ')'); } } ecrire_meta($nom_meta_base_version, $current_version = "0.12"); } include_spip('base/ecatalogue_db_populate'); }
function maj_v014_dist($version_installee, $version_cible) { if (upgrade_vers(1.404, $version_installee, $version_cible)) { spip_query("UPDATE spip_mots SET type='Mots sans groupe...' WHERE type=''"); $result = spip_query("SELECT * FROM spip_mots GROUP BY type"); while ($row = sql_fetch($result)) { $type = addslashes($row['type']); // Old style, doit echouer spip_log('ne pas tenir compte de l erreur spip_groupes_mots ci-dessous:', 'mysql'); spip_query("INSERT INTO spip_groupes_mots \t\t\t\t\t(titre, unseul, obligatoire, articles, breves, rubriques, syndic, 0minirezo, 1comite, 6forum)\t\t\t\t\tVALUES (\"{$type}\", 'non', 'non', 'oui', 'oui', 'non', 'oui', 'oui', 'oui', 'non')"); // New style, devrait marcher spip_query("INSERT INTO spip_groupes_mots \t\t\t\t\t(titre, unseul, obligatoire, articles, breves, rubriques, syndic, minirezo, comite, forum)\t\t\t\t\tVALUES (\"{$type}\", 'non', 'non', 'oui', 'oui', 'non', 'oui', 'oui', 'oui', 'non')"); } sql_delete("spip_mots", "titre='kawax'"); maj_version(1.404); } if (upgrade_vers(1.405, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_mots ADD id_groupe bigint(21) NOT NULL"); $result = spip_query("SELECT * FROM spip_groupes_mots"); while ($row = sql_fetch($result)) { $id_groupe = addslashes($row['id_groupe']); $type = addslashes($row['titre']); spip_query("UPDATE spip_mots SET id_groupe = '{$id_groupe}' WHERE type='{$type}'"); } maj_version(1.405); } if (upgrade_vers(1.408, $version_installee, $version_cible)) { // Images articles passent dans spip_documents $result = spip_query("SELECT id_article, images FROM spip_articles WHERE LENGTH(images) > 0"); $types = array('jpg' => 1, 'png' => 2, 'gif' => 3); while ($row = @sql_fetch($result)) { $id_article = $row['id_article']; $images = $row['images']; $images = explode(",", $images); reset($images); $replace = '_orig_'; foreach ($images as $val) { $image = explode("|", $val); $fichier = $image[0]; $largeur = $image[1]; $hauteur = $image[2]; preg_match(",-([0-9]+)\\.(gif|jpg|png)\$,i", $fichier, $match); $id_type = intval($types[$match[2]]); $num_img = $match[1]; $fichier = _DIR_IMG . $fichier; $taille = @filesize($fichier); // ici on n'a pas les fonctions absctract ! $s = spip_query("INSERT INTO spip_documents (titre, id_type, fichier, mode, largeur, hauteur, taille) VALUES ('image {$largeur} x {$hauteur}', {$id_type}, '{$fichier}', 'vignette', '{$largeur}', '{$hauteur}', '{$taille}')"); $id_document = mysql_insert_id($s); if ($id_document > 0) { spip_query("INSERT INTO spip_documents_articles (id_document, id_article) VALUES ({$id_document}, {$id_article})"); $replace = "REPLACE({$replace}, '<IMG{$num_img}|', '<IM_{$id_document}|')"; } else { echo _T('texte_erreur_mise_niveau_base', array('fichier' => $fichier, 'id_article' => $id_article)); exit; } } $replace = "REPLACE({$replace}, '<IM_', '<IMG')"; $replace_chapo = str_replace('_orig_', 'chapo', $replace); $replace_descriptif = str_replace('_orig_', 'descriptif', $replace); $replace_texte = str_replace('_orig_', 'texte', $replace); $replace_ps = str_replace('_orig_', 'ps', $replace); spip_query("UPDATE spip_articles SET chapo={$replace_chapo}, descriptif={$replace_descriptif}, texte={$replace_texte}, ps={$replace_ps} WHERE id_article={$id_article}"); } spip_query("ALTER TABLE spip_articles DROP images"); maj_version(1.408); } if (upgrade_vers(1.414, $version_installee, $version_cible)) { // Forum par defaut "en dur" dans les spip_articles // -> non, prio (priori), pos (posteriori), abo (abonnement) $accepter_forum = substr($GLOBALS['meta']["forums_publics"], 0, 3); $result = spip_query("ALTER TABLE spip_articles CHANGE accepter_forum accepter_forum CHAR(3) NOT NULL"); $result = spip_query("UPDATE spip_articles SET accepter_forum='{$accepter_forum}' WHERE accepter_forum != 'non'"); maj_version(1.414); } /* if ($version_installee == 1.415) { spip_query("ALTER TABLE spip_documents DROP inclus"); maj_version (1.415); } */ if (upgrade_vers(1.417, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_syndic_articles DROP date_index"); maj_version(1.417); } if (upgrade_vers(1.418, $version_installee, $version_cible)) { $result = spip_query("SELECT * FROM spip_auteurs WHERE statut = '0minirezo' AND email != '' ORDER BY id_auteur LIMIT 1"); if ($webmaster = sql_fetch($result)) { ecrire_meta('email_webmaster', $webmaster['email']); } maj_version(1.418); } if (upgrade_vers(1.419, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_auteurs ADD alea_actuel TINYTEXT DEFAULT ''"); spip_query("ALTER TABLE spip_auteurs ADD alea_futur TINYTEXT DEFAULT ''"); spip_query("UPDATE spip_auteurs SET alea_futur = FLOOR(32000*RAND())"); maj_version(1.419); } if (upgrade_vers(1.42, $version_installee, $version_cible)) { spip_query("UPDATE spip_auteurs SET alea_actuel='' WHERE statut='nouveau'"); maj_version(1.42); } if (upgrade_vers(1.421, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD auteur_modif bigint(21) DEFAULT '0' NOT NULL"); spip_query("ALTER TABLE spip_articles ADD date_modif datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"); maj_version(1.421); } if (upgrade_vers(1.432, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles DROP referers"); spip_query("ALTER TABLE spip_articles ADD referers INTEGER DEFAULT '0' NOT NULL"); spip_query("ALTER TABLE spip_articles ADD popularite INTEGER DEFAULT '0' NOT NULL"); maj_version(1.432); } if (upgrade_vers(1.436, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_documents ADD date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"); maj_version(1.436); } if (upgrade_vers(1.437, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_visites ADD maj TIMESTAMP"); spip_query("ALTER TABLE spip_visites_referers ADD maj TIMESTAMP"); maj_version(1.437); } if (upgrade_vers(1.438, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD INDEX id_secteur (id_secteur)"); spip_query("ALTER TABLE spip_articles ADD INDEX statut (statut, date)"); maj_version(1.438); } if (upgrade_vers(1.439, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_syndic ADD INDEX statut (statut, date_syndic)"); spip_query("ALTER TABLE spip_syndic_articles ADD INDEX statut (statut)"); spip_query("ALTER TABLE spip_syndic_articles CHANGE url url VARCHAR(255) NOT NULL"); spip_query("ALTER TABLE spip_syndic_articles ADD INDEX url (url)"); maj_version(1.439); } if (upgrade_vers(1.44, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_visites_temp CHANGE ip ip INTEGER UNSIGNED NOT NULL"); maj_version(1.44); } if (upgrade_vers(1.441, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_visites_temp CHANGE date date DATE NOT NULL"); spip_query("ALTER TABLE spip_visites CHANGE date date DATE NOT NULL"); spip_query("ALTER TABLE spip_visites_referers CHANGE date date DATE NOT NULL"); maj_version(1.441); } if (upgrade_vers(1.442, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_auteurs ADD prefs TINYTEXT NOT NULL"); maj_version(1.442); } if (upgrade_vers(1.443, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_auteurs CHANGE login login VARCHAR(255) BINARY NOT NULL"); spip_query("ALTER TABLE spip_auteurs CHANGE statut statut VARCHAR(255) NOT NULL"); spip_query("ALTER TABLE spip_auteurs ADD INDEX login (login)"); spip_query("ALTER TABLE spip_auteurs ADD INDEX statut (statut)"); maj_version(1.443); } if (upgrade_vers(1.444, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_syndic ADD moderation VARCHAR(3) NOT NULL"); maj_version(1.444); } if (upgrade_vers(1.457, $version_installee, $version_cible)) { spip_query("DROP TABLE spip_visites"); spip_query("DROP TABLE spip_visites_temp"); spip_query("DROP TABLE spip_visites_referers"); creer_base(); // crade, a ameliorer :-(( maj_version(1.457); } if (upgrade_vers(1.458, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_auteurs ADD cookie_oubli TINYTEXT NOT NULL"); maj_version(1.458); } if (upgrade_vers(1.459, $version_installee, $version_cible)) { $result = spip_query("SELECT type FROM spip_mots GROUP BY type"); while ($row = sql_fetch($result)) { $type = addslashes($row['type']); $res = spip_query("SELECT * FROM spip_groupes_mots WHERE titre='{$type}'"); if (sql_count($res) == 0) { $s = spip_query("INSERT INTO spip_groupes_mots (titre, unseul, obligatoire, articles, breves, rubriques, syndic, minirezo, comite, forum) VALUES ('{$type}', 'non', 'non', 'oui', 'oui', 'non', 'oui', 'oui', 'oui', 'non')"); if ($id_groupe = mysql_insert_id($s)) { spip_query("UPDATE spip_mots SET id_groupe = '{$id_groupe}' WHERE type='{$type}'"); } } } spip_query("UPDATE spip_articles SET popularite=0"); maj_version(1.459); } if (upgrade_vers(1.46, $version_installee, $version_cible)) { // remettre les mots dans les groupes dupliques par erreur // dans la precedente version du paragraphe de maj 1.459 // et supprimer ceux-ci $result = spip_query("SELECT * FROM spip_groupes_mots ORDER BY id_groupe"); while ($row = sql_fetch($result)) { $titre = addslashes($row['titre']); if (!$vu[$titre]) { $vu[$titre] = true; $id_groupe = $row['id_groupe']; spip_query("UPDATE spip_mots SET id_groupe={$id_groupe} WHERE type='{$titre}'"); sql_delete("spip_groupes_mots", "titre='{$titre}' AND id_groupe<>{$id_groupe}"); } } maj_version(1.46); } if (upgrade_vers(1.462, $version_installee, $version_cible)) { spip_query("UPDATE spip_types_documents SET inclus='embed' WHERE inclus!='non' AND extension IN ('aiff', 'asf', 'avi', 'mid', 'mov', 'mp3', 'mpg', 'ogg', 'qt', 'ra', 'ram', 'rm', 'swf', 'wav', 'wmv')"); maj_version(1.462); } if (upgrade_vers(1.463, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles CHANGE popularite popularite DOUBLE"); spip_query("ALTER TABLE spip_visites_temp ADD maj TIMESTAMP"); spip_query("ALTER TABLE spip_referers_temp ADD maj TIMESTAMP"); maj_version(1.463); } // l'upgrade < 1.462 ci-dessus etait fausse, d'ou correctif if (upgrade_vers(1.464, $version_installee, $version_cible) and $version_installee >= 1.462) { $res = spip_query("SELECT id_type, extension FROM spip_types_documents WHERE id_type NOT IN (1,2,3)"); while ($row = sql_fetch($res)) { $extension = $row['extension']; $id_type = $row['id_type']; spip_query("UPDATE spip_documents SET id_type={$id_type}\tWHERE fichier like '%.{$extension}'"); } maj_version(1.464); } if (upgrade_vers(1.465, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles CHANGE popularite popularite DOUBLE NOT NULL"); maj_version(1.465); } if (upgrade_vers(1.466, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_auteurs ADD source VARCHAR(10) DEFAULT 'spip' NOT NULL"); maj_version(1.466); } if (upgrade_vers(1.468, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_auteurs ADD INDEX en_ligne (en_ligne)"); spip_query("ALTER TABLE spip_forum ADD INDEX statut (statut, date_heure)"); maj_version(1.468); } if (upgrade_vers(1.47, $version_installee, $version_cible)) { if ($version_installee >= 1.467) { // annule les "listes de diff" spip_query("DROP TABLE spip_listes"); spip_query("ALTER TABLE spip_auteurs DROP abonne"); spip_query("ALTER TABLE spip_auteurs DROP abonne_pass"); } maj_version(1.47); } if (upgrade_vers(1.471, $version_installee, $version_cible)) { if ($version_installee >= 1.47) { // annule les "maj" spip_query("ALTER TABLE spip_auteurs_articles DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_auteurs_rubriques DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_auteurs_messages DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_documents_articles DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_documents_rubriques DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_documents_breves DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_mots_articles DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_mots_breves DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_mots_rubriques DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_mots_syndic DROP maj TIMESTAMP"); spip_query("ALTER TABLE spip_mots_forum DROP maj TIMESTAMP"); } maj_version(1.471); } if (upgrade_vers(1.472, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_referers ADD visites_jour INTEGER UNSIGNED NOT NULL"); maj_version(1.472); } if (upgrade_vers(1.473, $version_installee, $version_cible)) { spip_query("UPDATE spip_syndic_articles SET url = REPLACE(url, '&', '&')"); spip_query("UPDATE spip_syndic SET url_site = REPLACE(url_site, '&', '&')"); maj_version(1.473); } }
function agenda_verifier_base(){ $version_base = $GLOBALS['agenda_base_version']; $current_version = 0.0; if ( (!isset($GLOBALS['meta']['agenda_base_version']) ) || (($current_version = $GLOBALS['meta']['agenda_base_version'])!=$version_base)){ include_spip('base/agenda_evenements'); if ($current_version==0.0){ include_spip('base/create'); include_spip('base/abstract_sql'); creer_base(); maj_tables('spip_rubriques'); ecrire_meta('agenda_base_version',$current_version=$version_base,'non'); } if (version_compare($current_version,"0.11","<")){ sql_alter("TABLE spip_evenements ADD `horaire` ENUM('oui','non') DEFAULT 'oui' NOT NULL AFTER `lieu`"); ecrire_meta('agenda_base_version',$current_version=0.11,'non'); } if (version_compare($current_version,"0.12","<")){ sql_alter("TABLE spip_evenements ADD `id_article` bigint(21) DEFAULT '0' NOT NULL AFTER `id_evenement`"); sql_alter("TABLE spip_evenements ADD INDEX ( `id_article` )"); $res = sql_select("*", "spip_evenements_articles"); while ($row = sql_fetch($res)){ $id_article = $row['id_article']; $id_evenement = $row['id_evenement']; sql_update("spip_evenements", "id_article=$id_article", "id_evenement=$id_evenement"); } sql_drop_table("spip_evenements_articles"); ecrire_meta('agenda_base_version',$current_version=0.12,'non'); } if (version_compare($current_version,"0.13","<")){ include_spip('base/create'); include_spip('base/abstract_sql'); creer_base(); ecrire_meta('agenda_base_version',$current_version=0.13,'non'); } if (version_compare($current_version,"0.18","<")){ include_spip('base/create'); include_spip('base/abstract_sql'); creer_base(); sql_update('spip_groupes_mots',array('tables_liees'=>"concat(tables_liees,'evenements,')"),"evenements='oui'"); sql_alter("TABLE spip_groupes_mots DROP evenements"); ecrire_meta('agenda_base_version',$current_version=0.18,'non'); } if (version_compare($current_version,"0.20","<")){ include_spip('base/abstract_sql'); sql_alter("TABLE spip_rubriques ADD agenda tinyint(1) DEFAULT 0 NOT NULL"); ecrire_meta('agenda_base_version',$current_version=0.20,'non'); } if (version_compare($current_version,"0.21","<")){ include_spip('base/abstract_sql'); sql_alter("TABLE spip_evenements ADD adresse text NOT NULL"); sql_alter("TABLE spip_evenements ADD inscription text NOT NULL"); sql_alter("TABLE spip_evenements ADD places text NOT NULL"); ecrire_meta('agenda_base_version',$current_version=0.21,'non'); } if (version_compare($current_version,"0.22","<")){ include_spip('base/abstract_sql'); include_spip('base/create'); include_spip('base/auxiliaires'); maj_tables('spip_evenements_participants'); ecrire_meta('agenda_base_version',$current_version=0.22,'non'); } if (version_compare($current_version,"0.23","<")){ include_spip('base/abstract_sql'); sql_alter("TABLE spip_evenements CHANGE titre titre text NOT NULL DEFAULT ''"); sql_alter("TABLE spip_evenements CHANGE descriptif descriptif text NOT NULL DEFAULT ''"); sql_alter("TABLE spip_evenements CHANGE lieu lieu text NOT NULL DEFAULT ''"); sql_alter("TABLE spip_evenements CHANGE adresse adresse text NOT NULL DEFAULT ''"); ecrire_meta('agenda_base_version',$current_version=0.23,'non'); } } }
/** * Mises à jour de SPIP n°018 * * @param float $version_installee Version actuelle * @param float $version_cible Version de destination **/ function maj_v018_dist($version_installee, $version_cible) { if (upgrade_vers(1.801, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_rubriques\tADD statut_tmp VARCHAR(10) NOT NULL,\tADD date_tmp datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"); include_spip('inc/rubriques'); calculer_rubriques(); maj_version(1.801); } // Nouvelles tables d'invalidation if (upgrade_vers(1.802, $version_installee, $version_cible)) { spip_query("DROP TABLE spip_id_article_caches"); spip_query("DROP TABLE spip_id_auteur_caches"); spip_query("DROP TABLE spip_id_breve_caches"); spip_query("DROP TABLE spip_id_document_caches"); spip_query("DROP TABLE spip_id_forum_caches"); spip_query("DROP TABLE spip_id_groupe_caches"); spip_query("DROP TABLE spip_id_message_caches"); spip_query("DROP TABLE spip_id_mot_caches"); spip_query("DROP TABLE spip_id_rubrique_caches"); spip_query("DROP TABLE spip_id_signature_caches"); spip_query("DROP TABLE spip_id_syndic_article_caches"); spip_query("DROP TABLE spip_id_syndic_caches"); spip_query("DROP TABLE spip_id_type_caches"); spip_query("DROP TABLE spip_inclure_caches"); maj_version(1.802); } if (upgrade_vers(1.803, $version_installee, $version_cible)) { # 27 AOUT 2004 : conservons cette table pour autoriser les retours # de SPIP 1.8a6 CVS vers 1.7.2 # spip_query("DROP TABLE spip_forum_cache"); spip_query("DROP TABLE spip_inclure_caches"); maj_version(1.803); } if (upgrade_vers(1.804, $version_installee, $version_cible)) { // recreer la table spip_caches spip_query("DROP TABLE spip_caches"); creer_base(); maj_version(1.804); } /** * Recalculer tous les threads * * Fonction du plugin forum recopiee ici pour assurer la montee * de version dans tous les cas de figure **/ function maj_v018_calculer_threads() { // fixer les id_thread des debuts de discussion sql_update('spip_forum', array('id_thread' => 'id_forum'), "id_parent=0"); // reparer les messages qui n'ont pas l'id_secteur de leur parent do { $discussion = "0"; $precedent = 0; $r = sql_select("fille.id_forum AS id,\tmaman.id_thread AS thread", 'spip_forum AS fille, spip_forum AS maman', "fille.id_parent = maman.id_forum AND fille.id_thread <> maman.id_thread", '', "thread"); while ($row = sql_fetch($r)) { if ($row['thread'] == $precedent) { $discussion .= "," . $row['id']; } else { if ($precedent) { sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ({$discussion})"); } $precedent = $row['thread']; $discussion = $row['id']; } } sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ({$discussion})"); } while ($discussion != "0"); } if (upgrade_vers(1.805, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_forum ADD id_thread bigint(21) DEFAULT '0' NOT NULL"); maj_v018_calculer_threads(); maj_version(1.805); } // tables d'orthographe #if ($version_installee < 1.806) # maj_version(1.806); // URLs propres (inc_version = 0.12) if (upgrade_vers(1.807, $version_installee, $version_cible)) { foreach (array('articles', 'breves', 'rubriques', 'mots') as $objets) { spip_query("ALTER TABLE spip_{$objets} ADD url_propre VARCHAR(255) NOT NULL"); spip_query("ALTER TABLE spip_{$objets} ADD INDEX url_propre (url_propre)"); } maj_version(1.807); } // referers de la veille if (upgrade_vers(1.808, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_referers ADD visites_veille INT UNSIGNED NOT NULL"); maj_version(1.808); } // corrections diverses if (upgrade_vers(1.809, $version_installee, $version_cible)) { // plus de retour possible vers 1.7.2 spip_query("DROP TABLE spip_forum_cache"); // les requetes ci-dessous ne s'appliqueront que si on est passe // par une certaine version de developpement - oublie de le faire // plus tot, car le code d'alors recreait purement et simplement // cette table spip_query("ALTER TABLE spip_versions DROP chapo"); spip_query("ALTER TABLE spip_versions DROP texte"); spip_query("ALTER TABLE spip_versions DROP ps"); spip_query("ALTER TABLE spip_versions DROP extra"); spip_query("ALTER TABLE spip_versions ADD champs text NOT NULL"); maj_version(1.809); } // Annuler les brouillons de forum jamais valides if (upgrade_vers(1.81, $version_installee, $version_cible)) { sql_delete("spip_forum", "statut='redac'"); maj_version(1.81); } if (upgrade_vers(1.811, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_syndic ADD extra longblob NULL"); maj_version(1.811); } if (upgrade_vers(1.812, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_documents ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); maj_version(1.812); } // Mise a jour des types MIME if (upgrade_vers(1.813, $version_installee, $version_cible)) { # rien a faire car c'est creer_base() qui s'en charge maj_version(1.813); } // URLs propres auteurs if (upgrade_vers(1.814, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_auteurs ADD url_propre VARCHAR(255) NOT NULL"); spip_query("ALTER TABLE spip_auteurs ADD INDEX url_propre (url_propre)"); maj_version(1.814); } // Mots-cles sur les documents // + liens documents <-> sites et articles syndiques (podcasting) if (upgrade_vers(1.815, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_documents\tADD distant VARCHAR(3) DEFAULT 'non'"); maj_version(1.815); } // Indexation des documents (rien a faire sauf reinstaller inc_auxbase) if (upgrade_vers(1.816, $version_installee, $version_cible)) { maj_version(1.816); } // Texte et descriptif des groupes de mots-cles if (upgrade_vers(1.817, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_groupes_mots ADD descriptif text NOT NULL AFTER titre"); spip_query("ALTER TABLE spip_groupes_mots ADD COLUMN texte longblob NOT NULL AFTER descriptif"); maj_version(1.817); } // Conformite des noms de certains champs (0minirezo => minirezo) if (upgrade_vers(1.818, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 0minirezo minirezo char(3) NOT NULL"); spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 1comite comite char(3) NOT NULL"); spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 6forum forum char(3) NOT NULL"); maj_version(1.818); } // Options de syndication : miroir + oubli if (upgrade_vers(1.819, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_syndic ADD miroir VARCHAR(3) DEFAULT 'non'"); spip_query("ALTER TABLE spip_syndic ADD oubli VARCHAR(3) DEFAULT 'non'"); maj_version(1.819); } // Un bug dans les 1.730 (il manquait le "ADD") if (upgrade_vers(1.82, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_articles ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_auteurs ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_breves ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_mots ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_rubriques ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_syndic ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_forum ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_signatures ADD INDEX idx (idx)"); maj_version(1.82); } // reindexer les articles (on avait oublie les auteurs) if (upgrade_vers(1.821, $version_installee, $version_cible)) { spip_query("UPDATE spip_articles SET idx='1' WHERE idx='oui'"); maj_version(1.821); } // le 'type' des mots doit etre du texte, sinon on depasse en champ multi if (upgrade_vers(1.822, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_mots DROP INDEX type"); spip_query("ALTER TABLE spip_mots CHANGE type type TEXT NOT NULL"); maj_version(1.822); } // ajouter une table de fonctions pour ajax if (upgrade_vers(1.825, $version_installee, $version_cible)) { maj_version(1.825); } if (upgrade_vers(1.826, $version_installee, $version_cible)) { spip_query("ALTER TABLE spip_ajax_fonc DROP fonction"); maj_version(1.826); } }
<?php echo "0."; define('_DIR_RESTREINT_ABS', 'ecrire/'); include_once _DIR_RESTREINT_ABS.'inc_version.php'; echo "1."; include_spip('base/create'); spip_connect(); echo "2."; creer_base(); include_spip('base/upgrade'); maj_base(); echo "3."; include_spip('inc/acces'); include_spip('inc/config'); ecrire_acces(); ?>