[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / maj / vieille_base / create.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 $serveur_vieille_base =0;
16
17 function spip_create_vieille_table($table,$fields,$keys,$autoinc){
18 static $fcreate = null;
19 $serveur = $GLOBALS['serveur_vieille_base'];
20 if (!$fcreate) $fcreate = sql_serveur('create', $serveur);
21 $fcreate($table,$fields,$keys,$autoinc,false,$serveur);
22 }
23
24 function maj_vieille_base_create_dist($version_cible){
25
26 $charger = charger_fonction('charger','maj/vieille_base');
27 $version = $charger($version_cible);
28
29 // choisir un nouveau prefixe de table, le noter, et switcher en redefinissant le serveur
30 $new_prefixe = "XXspip$version";
31 // ici on ecrit la meta dans la table 'officielle'
32 ecrire_meta('restauration_table_prefix',$new_prefixe,'non');
33 ecrire_meta('vieille_version_installee',$version_cible,'non');
34 $metas = $GLOBALS['meta'];
35
36 $prefixe_source = $GLOBALS['connexions'][0]['prefixe'];
37 $GLOBALS['serveur_vieille_base'] = 0;
38 $GLOBALS['connexions'][$GLOBALS['serveur_vieille_base']] = $GLOBALS['connexions'][0];
39 $GLOBALS['connexions'][$GLOBALS['serveur_vieille_base']]['prefixe'] = $new_prefixe;
40 lire_metas();
41
42 if (!isset($GLOBALS['meta']['restauration_table_prefix_source'])) {
43
44 $create = charger_fonction('create',"maj/vieille_base/$version");
45 $create();
46
47 // reecrire les metas dans la table provisoire
48 foreach($metas as $k=>$v)
49 ecrire_meta($k,$v);
50 ecrire_meta('restauration_table_prefix_source',$prefixe_source,'non');
51
52 // noter le numero de version installee
53 //
54 // Exception lorsque la version est entre 10000 et 12000
55 // car ce qui est utilise est la base au moment du SVN 10000
56 // qui avait url_propre dans les champs de tous les objets
57 // mais un spip_version type 1.945 (et non 10000).
58 // si on laisse 10000, les mise a jour de url_propre ne se font pas.
59 if ($version == 10000) $version = 1.945;
60 ecrire_meta('version_installee',$version,'non');
61 }
62
63 if ($version_cible!=$GLOBALS['meta']['version_installee']) {
64 // upgrader jusqu'a la cible
65 include_spip('base/upgrade');
66 maj_base($version_cible);
67 }
68
69 }
70
71
72 ?>