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