[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / exec / upgrade.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2017 *
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 /**
14 * Gestion de l'installation et de la mise à jour de SPIP
15 *
16 * @package SPIP\Core\Upgrade
17 */
18
19 if (!defined('_ECRIRE_INC_VERSION')) {
20 return;
21 }
22
23 include_spip('inc/actions');
24 include_spip('inc/headers');
25
26 /**
27 * Fonction d'installation et de mise à jour du core de SPIP
28 *
29 * @return void
30 **/
31 function exec_upgrade_dist() {
32
33 if (!_FILE_CONNECT) {
34 redirige_url_ecrire("install");
35 }
36
37 // Si reinstallation necessaire, message ad hoc
38 if (_request('reinstall') == 'oui') {
39 include_spip('inc/minipres');
40 $r = minipres(_T('titre_page_upgrade'),
41 "<p><b>"
42 . _T('texte_nouvelle_version_spip_1')
43 . "</b><p> "
44 . _T('texte_nouvelle_version_spip_2',
45 array('connect' => '<tt>' . _FILE_CONNECT . '</tt>'))
46 . generer_form_ecrire('upgrade', "<input type='hidden' name='reinstall' value='non' />", '',
47 _T('bouton_relancer_installation')));
48 echo $r;
49 } elseif (_request('fin')) {
50 include_spip('inc/plugin');
51 actualise_plugins_actifs();
52 include_spip('inc/headers');
53 $res = generer_url_ecrire('admin_plugin', 'var_mode=recalcul');
54 echo redirige_formulaire($res);
55 } else {
56
57 if (!isset($GLOBALS['meta']['version_installee'])) {
58 $GLOBALS['meta']['version_installee'] = 0.0;
59 } else {
60 $GLOBALS['meta']['version_installee'] =
61 (double)str_replace(',', '.', $GLOBALS['meta']['version_installee']);
62 }
63 # NB: str_replace car, sur club-internet, il semble que version_installe soit
64 # enregistree au format '1,812' et non '1.812'
65
66 // Erreur downgrade
67 // (cas de double installation de fichiers SPIP sur une meme base)
68 if ($GLOBALS['spip_version_base'] < $GLOBALS['meta']['version_installee']) {
69 $commentaire = _T('info_mise_a_niveau_base_2');
70 } // Commentaire standard upgrade
71 else {
72 $commentaire = _T('texte_mise_a_niveau_base_1');
73 }
74
75 $commentaire .= "<br />[" . $GLOBALS['meta']['version_installee'] . "/" . $GLOBALS['spip_version_base'] . "]";
76
77 $_POST['reinstall'] = 'non'; // pour copy_request dans admin
78 include_spip('inc/headers');
79 $admin = charger_fonction('admin', 'inc');
80 $res = $admin('upgrade', _T('info_mise_a_niveau_base'), $commentaire);
81 if ($res) {
82 echo $res;
83 } else {
84 // effacer les alea pour forcer leur relecture
85 // si jamais ils ont change pendant l'upgrade
86 unset($GLOBALS['meta']['alea_ephemere']);
87 unset($GLOBALS['meta']['alea_ephemere_ancien']);
88 $res = redirige_action_auteur('purger', 'cache', 'upgrade', 'fin=oui', true);
89 echo redirige_formulaire($res);
90 }
91 }
92 }