OSDN Git Service

本家Nucleus CMSの開発を補助するためにコミット
[nucleus-jp/nucleus-next.git] / nucleus / upgrades / index.php
1 <?php
2 /*
3  * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)
4  * Copyright (C) 2002-2009 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-2009 The Nucleus Group
15  * @version $Id: index.php 1624 2012-01-09 11:36:20Z sakamocchi $
16  *
17  */
18
19         include('upgrade.functions.php');
20
21         // begin if: make sure user is logged in
22         if ( !$member->isLoggedIn() )
23         {
24                 upgrade_showLogin('index.php');
25         } // end if
26
27         // begin if: make sure user is an admin
28         if ( !$member->isAdmin() )
29         {
30                 upgrade_error('Only super administrators are allowed to perform upgrades');
31         } // end if
32
33         upgrade_head();
34 ?>
35
36         <h1> Upgrade Nucleus </h1>
37
38         <div class="note">
39                 <p> <strong>Note:</strong> If you just installed Nucleus for the first time and are not upgrading from an earlier version, you will not need these files. </p>
40         </div>
41
42         <p> Database updates may be required when upgrading from an earlier version of Nucleus. This tool allows you to automate these updates. </p>
43
44 <?php
45         // calculate current version
46         if ( !upgrade_checkinstall(96) )
47         {
48                 $current = 95;
49         }
50         else if ( !upgrade_checkinstall(100) )
51         {
52                 $current = 96;
53         }
54         else if ( !upgrade_checkinstall(110) )
55         {
56                 $current = 100;
57         }
58         else if ( !upgrade_checkinstall(150) )
59         {
60                 $current = 110;
61         }
62         else if ( !upgrade_checkinstall(200) )
63         {
64                 $current = 150;
65         }
66         else if ( !upgrade_checkinstall(250) )
67         {
68                 $current = 200;
69         }
70         else if ( !upgrade_checkinstall(300) )
71         {
72                 $current = 250;
73         }
74         else if ( !upgrade_checkinstall(310) )
75         {
76                 $current = 300;
77         }
78         else if ( !upgrade_checkinstall(320) )
79         {
80                 $current = 310;
81         }
82         else if ( !upgrade_checkinstall(330) )
83         {
84                 $current = 320;
85         }
86         else if ( !upgrade_checkinstall(340) )
87         {
88                 $current = 330;
89         }
90         else if ( !upgrade_checkinstall(350) )
91         {
92                 $current = 340;
93         }
94         else if ( !upgrade_checkinstall(360) )
95         {
96                 $current = 350;
97         }
98         else
99         {
100                 $current = 360;
101         }
102
103         if ( $current == 360 )
104         {
105 ?>
106         <p class="ok"> No database updates required! The database has already been updated to the latest version of Nucleus. </p>
107 <?php
108         }
109         else
110         {
111 ?>
112         <p class="warning"> <a href="upgrade.php?from=<?php echo $current?>">Click here to upgrade the database to Nucleus v3.6</a>. </p>
113 <?php
114         }
115 ?>
116
117         <div class="note">
118                 <p> <strong>Note:</strong> It is strongly recommended that you create a database backup <em>before</em> performing upgrades. </p>
119         </div>
120
121         <h1> Manual Updates </h1>
122         <p> Some updates need to be performed manually. Instructions are given below (if any). </p>
123
124 <?php
125         $from = intGetVar('from');
126
127         if ( !$from )
128         {
129                 $from = $current;
130         }
131
132         $sth = 0;
133
134         if ( !$DIR_MEDIA )
135         {
136                 upgrade_manual_96();
137                 $sth = 1;
138         }
139
140         if ( !$DIR_SKINS )
141         {
142                 upgrade_manual_200();
143                 $sth = 1;
144         }
145
146         // upgrades from pre-340 version need to be told of recommended .htaccess files for the media and skins folders. these .htaccess files are included in new installs of 340 or higher
147         if ( in_array($from, array(95, 96)) || $from < 340 )
148         {
149                 upgrade_manual_340();
150                 $sth = 1;
151         }
152
153         // upgrades from pre-350 version need to be told of deprecation of PHP4 support and two new plugins included with 3.5 and higher
154         if ( in_array($from, array(95, 96)) || $from < 350 )
155         {
156                 upgrade_manual_350();
157                 $sth = 1;
158         }
159
160         if ( $sth == 0 )
161         {
162                 echo '<p class="ok"> No manual changes needed. This must be your lucky day! </p>';
163         }
164
165         upgrade_foot();
166
167
168         /**
169          * 
170          * @param int $version
171          */
172         function upgrade_todo($version)
173         {
174                 return upgrade_checkinstall($version) ? "(<span class='ok'>installed</span>)" : "(<span class='warning'>not yet installed</span>)";
175         }
176
177
178         /**
179          * Manual update instructions for version 0.96
180          */
181         function upgrade_manual_96()
182         {
183                 global $DIR_NUCLEUS;
184
185                 $guess = str_replace('/nucleus/', '/media/', $DIR_NUCLEUS);
186 ?>
187         <h2> Changes needed for Nucleus 0.96 </h2>
188         <p> A manual addition needs to be made to <em>config.php</em>, in order to get the media functions to work. Here's what to add: </p>
189         <pre>
190         // path to media dir
191         $DIR_MEDIA = '<strong><?php echo i18n;;hsc($guess)?></strong>';
192         </pre>
193
194         <p> Also, it will be necessary to create that directory yourself. If you want to make file upload possible, you should set the permissions of the media/ directory to 777 (see the documentation/tips.html in Nucleus 0.96+ for a quick guide on setting permissions). </p>
195
196 <?php
197         } // end function upgrade_manual_96()
198
199
200         /**
201          * Manual update instructions for version 2.0 and before
202          */
203         function upgrade_manual_200()
204         {
205                 global $DIR_NUCLEUS;
206
207                 $guess = str_replace("/nucleus/", "/skins/", $DIR_NUCLEUS);
208 ?>
209         <h2> Changes needed for Nucleus 2.0 </h2>
210         <p> A manual addition needs to be made to <i>config.php</i>, in order to get imported skins to work correctly. Here's what to add: </p>
211         <pre>
212         // extra skin files for imported skins
213         $DIR_SKINS = '<strong><?php echo i18n;;hsc($guess)?></strong>';
214         </pre>
215
216         <p> Also, it will be necessary to create this directory yourself. Downloaded skins can then be expanded into that directory and be imported from inside the Nucleus admin area. </p>
217
218         <h3> RSS 2.0 and RSD skin </h3>
219
220         <p> When a fresh version of Nucleus 2.0 is installed, an RSS 2.0 (Really Simple Syndication) syndication skin is also installed, as well as an RSD skin (Really Simple Discovery). The files <code>xml-rss2.php</code> and <code>rsd.php</code> are available in the upgrade, however the skin itself needs to be installed manually. After you've uploaded the contents of the <code>upgrade-files</code>, open <code>admin area &gt; nucleus management &gt; skin import</code>. From there, you can install both skins. (Unless you don't want them installed, that is) </p>
221
222 <?php
223         } // end function upgrade_manual_200()
224
225
226         /**
227          * Manual update instructions for version 3.4 and before
228          */
229         function upgrade_manual_340()
230         {
231                 global $DIR_NUCLEUS;
232 ?>
233         <h2> Changes needed for Nucleus 3.4 </h2>
234         <p> It is recommended that you apply some restrictions to what you allow the web server to do with files in the <i>media</i> and <i>skins</i> folders. These restrictions are not necessary to the functioning of the software, nor to the security of the software. However, they can be an important help under the security principle of denying any access that is not required. </p>
235
236         <p> Instructions for applying the restrictions are found in the following two files on your server: </p>
237         <ul>
238                 <li> <a href="../../extra/media/readme.txt">extra/media/readme.txt</a> </li>
239                 <li> <a href="../../extra/skins/readme.txt">extra/skins/readme.txt</a> </li>
240         </ul>
241
242 <?php
243         } // end function upgrade_manual_340()
244
245
246         /**
247          * Manual update instructions for version 3.5 and before
248          */
249         function upgrade_manual_350()
250         {
251                 global $DIR_NUCLEUS;
252 ?>
253         <h2> Important Notices for Nucleus 3.5 </h2>
254
255 <?php
256         // Give user warning if they are running old version of PHP
257         if ( phpversion() < '5' )
258         {
259                 echo '<p> WARNING: You are running NucleusCMS on a older version of PHP that is no longer supported by NucleusCMS. Please upgrade to PHP5! </p>';
260         }
261 ?>
262
263         <p> Two new plugins have been included with version 3.5. You may want to consider installing them from the Plugins page of the admin area. </p>
264         <ul>
265                 <li> <strong>NP_Text</strong>: Allows you to use internationalized skins to simplify translation. </li>
266                 <li> <strong>NP_SecurityEnforcer</strong>: Enforces some security properties like password complexity and maximum failed login attempts. Note that it is disabled by default and must be enabled after installation. </li>
267         </ul>
268
269 <?php
270         } // end function upgrade_manual_350()