OSDN Git Service

76d264970b78ad08af0c1456a93d211d8c2fc7a5
[nucleus-jp/nucleus-next.git] / nucleus / upgrades / upgrade4.0.php
1 <?php
2 /*
3  * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)
4  * Copyright (C) 2002-2012 The Nucleus Group
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  * (see nucleus/documentation/index.html#license for more info)
11  */
12 /**
13  * @license http://nucleuscms.org/license.txt GNU General Public License
14  * @copyright Copyright (C) 2002-2012 The Nucleus Group
15  * @version $Id: upgrade2.0.php 1388 2009-07-18 06:31:28Z shizuki $
16  */
17
18 function upgrade_do400()
19 {
20         if ( upgrade_checkinstall(400) )
21         {
22                 return "already installed";
23         }
24         
25         // Give user warning if they are running old version of PHP
26         if ( phpversion() < '5' )
27         {
28                 echo 'WARNING: You are running NucleusCMS on a older version of PHP that is no longer supported by NucleusCMS. Please upgrade to PHP5!';
29         }
30         
31         /* config table */
32         /* change Language setting to Locale */
33         if ( upgrade_checkIfCVExists('Language') )
34         {
35                 $language = DB::getValue("SELECT value FROM " . sql_table('config') . " WHERE name='Language'");
36                 $locale = i18n::convert_old_language_file_name_to_locale($language);
37                 if ( $locale )
38                 {
39                         $query = 'INSERT INTO ' . sql_table('config') . " VALUES ('Locale','{$locale}')";
40                         upgrade_query('Creating Locale config value', $query);
41                         
42                         $query = 'DELETE FROM ' . sql_table('config') . " WHERE name='Language'";
43                         upgrade_query("Removing Language config value", $query);
44                 }
45         }
46         
47         /* change AdminCSS setting */
48         if ( upgrade_checkIfCVExists('AdminCSS') )
49         {
50                 $query = 'UPDATE ' . sql_table('config') . " SET value='original' WHERE name='AdminCSS'";
51                 upgrade_query('Changing AdminCSS config value', $query);
52         }
53         
54         /* create AdminSkin setting */
55         if ( !upgrade_checkIfCVExists('AdminSkin') )
56         {
57                 $query = 'INSERT INTO ' . sql_table('config') . " VALUES ('AdminSkin','0')";
58                 upgrade_query('Creating AdminSkin config value', $query);
59         }
60         
61         /* create BookmarkletSkin setting */
62         if ( !upgrade_checkIfCVExists('BookmarkletSkin') )
63         {
64                 $query = 'INSERT INTO ' . sql_table('config') . " VALUES ('BookmarkletSkin','0')";
65                 upgrade_query('Creating BookmarkletSkin config value', $query);
66         }
67         
68         
69         /* member table */
70         /* changing the member table to rename deflang to mlocale */
71         if ( !upgrade_checkIfColumnExists('member','mlocale') )
72         {
73                 $query =  'ALTER TABLE '.sql_table('member') . " CHANGE deflang mlocale varchar(20) NOT NULL default '' AFTER mcookiekey";
74                 upgrade_query("Renaming deflang column for members to mlocale", $query);
75         }
76         
77         /* changing the member table to add madminskin column */
78         if ( !upgrade_checkIfColumnExists('member','madminskin') )
79         {
80                 $query =  'ALTER TABLE '.sql_table('member') . " ADD madminskin tinyint(2) NOT NULL default '0'";
81                 upgrade_query("Adding a new row for the adminskin member option", $query);
82         }
83         
84         /* changing the member table to add mbkmklt column */
85                 if ( !upgrade_checkIfColumnExists('member','mbkmklt') )
86         {
87                 $query =  'ALTER TABLE '.sql_table('member') . " ADD mbkmklt tinyint(2) NOT NULL default '0'";
88                 upgrade_query("Adding a new row for the bkmklt member option", $query);
89         }
90         
91         // all member default value set
92         $res = DB::getResult("SELECT * FROM " . sql_table('member'));
93         foreach ( $res as $row )
94         {
95                 $locale = i18n::convert_old_language_file_name_to_locale($row['mlocale']);
96                 if ( $locale )
97                 {
98                         $query = 'UPDATE $s SET mlocale=$s WHERE mnumber=$d';
99                         $query = sprintf($query, sql_table('member'), DB::quoteValue($locale), $row['mnumber']);
100                         upgrade_query('Changing mlocale value', $query);
101                 }
102         }
103         
104         // 3.6 -> 4.0
105         // update database version
106         update_version('400');
107         
108 }
109