OSDN Git Service

577ead686dc8447919ad8e1894dbfb85d9ec1228
[nucleus-jp/nucleus-jp-ancient.git] / nucleus / upgrades / index.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 include('upgrade.functions.php');
14
15 // check if logged in etc
16 if (!$member->isLoggedIn()) {
17         upgrade_showLogin('index.php');
18 }
19
20 if (!$member->isAdmin()) {
21         upgrade_error('Super-admin(最高管理者)のみがアップグレードを実行できます。');
22 }
23
24 upgrade_head();
25
26 ?>
27
28 <h1>アップグレードスクリプト集</h1>
29
30 <div class="note">
31 <b>Note:</b> もし古いバージョンの Nuclues からアップグレードしようとしているのでなければ(つまりまっさらな状態からインストールしたのであれば)、これらのスクリプト集は必要ありません。
32 </div>
33
34 <p>Nucleus CMSはバージョンアップ毎に、データベースのテーブル構造を少しずつ変えています。このスクリプト集は、古いバージョンの Nucleus からアップグレードする際に必要な、データベーステーブルのアップグレードを行います。</p>
35
36 <?php   // calculate current version
37         if (!upgrade_checkinstall(96)) $current = 95;
38         else    if (!upgrade_checkinstall(100)) $current = 96;
39         else    if (!upgrade_checkinstall(110)) $current = 100;
40         else    if (!upgrade_checkinstall(150)) $current = 110;
41         else    if (!upgrade_checkinstall(200)) $current = 150;
42         else    if (!upgrade_checkinstall(250)) $current = 200;
43         else    if (!upgrade_checkinstall(300)) $current = 250;
44         else    if (!upgrade_checkinstall(310)) $current = 300;
45         else    if (!upgrade_checkinstall(320)) $current = 310;
46         else    if (!upgrade_checkinstall(330)) $current = 320;
47         else    if (!upgrade_checkinstall(331)) $current = 330;
48         else    if (!upgrade_checkinstall(340)) $current = 331;
49         else    if (!upgrade_checkinstall(350)) $current = 340;
50         else    if (!upgrade_checkinstall(360)) $current = 350;
51         else    $current = 360;
52         
53         if ($current == 360) {
54 ?>
55 <p class="ok">自動でできるアップグレードはありません。データベースは既に最新の Nucleus 用にアップデートされています。</p>         
56 <?php
57         } else {
58                 if (phpversion() < '5.0.0') {
59 ?>              
60 <p class="deprecated">警告! 動作しているPHPのバージョンが古く、正常な動作を保証できません。アップグレード作業を中止して、PHP5以上が使えないかどうか、サーバ管理者に確認して下さい。</p>
61 <?php           
62                 }
63 ?>
64 <p class="warning"><a href="upgrade.php?from=<?php echo $current?>">ここをクリックしてデータベースを Nucleus v3.62 用にアップグレードします</a></p>
65 <?php
66          }
67 ?>
68
69 <div class="note">
70 <b>注意:</b> 作業中、各ステップごとにデータベースのバックアップを忘れないようにして下さい。
71
72 </div>
73
74 <h1>手動変更</h1>
75
76 <p>いくつかの変更は手動で行う必要があります。下記にその手順を示します。</p>
77
78 <?php
79 $from = intGetVar('from');
80 if (!$from) 
81         $from = $current;
82
83 $sth = 0;
84 if (!$DIR_MEDIA) {
85         upgrade_manual_96();
86         $sth = 1;
87 }
88 if (!$DIR_SKINS) {
89         upgrade_manual_20();
90         $sth = 1;
91 }
92
93 // some manual code changes are needed in order to get Nucleus to work on php version
94 // lower than 4.0.6
95 if (phpversion() < '4.0.6') {
96         upgrade_manual_php405();
97         $sth = 1;
98 }
99
100 // from v3.3, atom feed supports 1.0 and blogsetting is added
101 $sth = upgrade_manual_atom1_0();
102
103 // upgrades from pre-340 version need to be told of recommended .htaccess files for the media and skins folders.
104 // these .htaccess files are included in new installs of 340 or higher
105 if (in_array($from,array(95,96)) || $from < 340) {
106         upgrade_manual_340();
107         $sth = 1;
108
109
110 // upgrades from pre-350 version need to be told of deprecation of PHP4 support and two new plugins 
111 // included with 3.51 and higher
112 if (in_array($from,array(95,96)) || $from < 350) {
113         upgrade_manual_350();
114         $sth = 1;
115
116
117 if ($sth == 0)
118         echo "<p class='ok'>手動変更は必要ありません。今日はラッキーな日ですね!</p>";
119
120
121
122 upgrade_foot();
123
124 function upgrade_todo($ver) {
125         return upgrade_checkinstall($ver) ? "(<span class='ok'>インストール済み</span>)" : "(<span class='warning'>インストールが必要</span>)";
126 }
127
128 function upgrade_manual_96() {
129         global $DIR_NUCLEUS;
130
131         $guess = str_replace("/nucleus/","/media/",$DIR_NUCLEUS);
132 ?>
133         <h2>Nucleus 0.96 用に必要な変更</h2>
134         <p>
135                 メディア機能を使用するために<i>config.php</i>を手動で変更する必要があります。下記の通り追加します:
136         </p>
137         <pre>
138         // path to media dir
139         $DIR_MEDIA = '<b><?php echo htmlspecialchars($guess)?></b>';
140         </pre>
141
142         <p>
143         また、ディレクトリもあなた自身の手で作る必要があります。もしファイルのアップロードを可能にしたいのであれば、media/ ディレクトリのパーミッションを777にします。(Nucleus 0.96+ のためのパーミッションの設定に関するクイックガイドが documentation/tips.html にあります)
144         </p>
145
146 <?php }
147
148 function upgrade_manual_200() {
149         global $DIR_NUCLEUS;
150
151         $guess = str_replace("/nucleus/","/skins/",$DIR_NUCLEUS);
152 ?>
153         <h2>Nucleus 2.0 用に必要な変更</h2>
154         <p>
155                 スキンの取り込み機能を使用するために<i>config.php</i>を手動で変更する必要があります。下記の通り追加します:
156         </p>
157         <pre>
158         // extra skin files for imported skins
159         $DIR_SKINS = '<b><?php echo htmlspecialchars($guess)?></b>';
160         </pre>
161
162         <p>また、ディレクトリもあなた自身の手で作る必要があります。これでダウンロードしたスキンを上記ディレクトリに展開したり、Nucleus 管理画面から取り込んだりできるようになります。</p>
163
164         <h3>RSS 2.0 と RSD スキン</h3>
165
166         <p>Nucleus 2.0 を新規にインストールしたとき、RSD(Really Simple Discovery) 用のスキンの他に、RSS 2.0(Really Simple Syndication)用のスキンもまたインストールされます。<code>xml-rss2.php</code> と <code>rsd.php</code> の両ファイルはアップグレードされますが、スキンに関しては手動でインストールする必要があります。<code>upgrade-files</code>の中身をアップロードしたあと、管理者画面を開き、管理ホームにあるスキンの「読込/書出」を開きます。そこから両スキンをインストールすることができます(もしインストールするつもりがなければ、しなくても結構です)。</p>
167
168 <?php }
169
170 function upgrade_manual_340() {
171         global $DIR_NUCLEUS;
172
173 ?>
174         <h2>Nucleus 3.4 用に必要な変更</h2>
175         <p>
176                 <em>skins</em>ディレクトリと<em>media</em>ディレクトリに「.haccess」を設置して、アクセス制限をかけることが推奨されます。この変更は、Nucleusの機能やセキュリティに直接関係があるわけではありませんが、不正アクセスを防ぐ為の重要な助けになるでしょう。
177         </p>
178         
179         <p>
180                 手順は以下の2つのファイルに書いてありますので参考にしてください:
181                 <ul>
182                          <li><a href="../../extra/htaccess/media/readme.ja.txt">extra/htaccess/media/readme.ja.txt</a></li>
183                          <li><a href="../../extra/htaccess/skins/readme.ja.txt">extra/htaccess/skins/readme.ja.txt</a></li>
184                 </ul>
185         </p>
186         
187 <?php }
188
189 function upgrade_manual_350() {
190         global $DIR_NUCLEUS;
191
192 ?>
193         <h2>Nucleus 3.51に関する重要なお知らせ</h2>
194         
195 <?php   // Give user warning if they are running old version of PHP
196                                 if (phpversion() < '5') {
197                                                                 echo '<p>警告:サーバで稼動しているPHPのバージョンが、NucleusCMSの動作保障外の古いバージョンのようです。PHP5以上にアップグレードしてください!</p>';
198                                 }
199 }
200
201 function upgrade_manual_php405() {
202 ?>
203 <h2>PHP のバージョンが 4.0.3, 4.0.4 または 4.0.5 の場合に必要となる変更</h2>
204 <p>
205         PHP のバージョンが 4.0.6 より以前の場合、変更が必要なファイルが2つあります。PHP のバージョンを 4.0.6 や 4.2.2+以降のものにアップグレードした方がいいでしょう(4.0.6 や 4.2.2 以前のものにはセキュリティー問題があります)。もし PHP のアップグレードが困難もしくは、する予定がない場合は、以下のファイルを変更して下さい。
206 </p>
207 <ul>
208         <li>nucleus/libs/PARSER.php のコードが下記のようになっていることを確認して下さい。(84行目から):
209                 <pre>
210
211         if (in_array($actionlc, $this-&gt;actions) || $this-&gt;norestrictions ) {
212                 <strong>$this-&gt;call_using_array($action, $this-&gt;handler, $params);</strong>
213         } else {
214                 // redirect to plugin action if possible
215                 if (in_array('plugin', $this-&gt;actions)
216                         && $manager-&gt;pluginInstalled('NP_'.$action))
217                         $this-&gt;doAction('plugin('.$action.
218                                 $this-&gt;pdelim.implode($this-&gt;pdelim,$params).')');
219                 else
220                         echo '&lt;b&gt;DISALLOWED (' , $action , ')&lt;/b&gt;';
221         }
222
223
224 }
225                  </pre>
226                 </li>
227                 <li>nucleus/libs/PARSER.php のコードが下記のようになっていることを確認して下さい。(75行目から):
228                 <pre>
229 // $params = array_map('trim',$params);
230 foreach ($params as $key =&gt; $value) { $params[$key] = trim($value); }
231                 </pre>
232                 </li>
233         </ul>
234
235 <?php }
236
237 function upgrade_manual_atom1_0() {
238
239                 $sth = 0;
240
241                 // atom 1.0
242                 $query = 'SELECT sddesc FROM ' . sql_table('skin_desc')
243                                 . ' WHERE sdname="feeds/atom"';
244                 $res = mysql_query($query);
245                 while ($o = mysql_fetch_object($res)) {
246                                 if ($o->sddesc=='Atom 0.3 weblog syndication')
247                                 {
248                                                 $sth = 1;
249 ?>
250 <h2>Atom 1.0</h2>
251 <p>Nucleus 3.3 から atom feed が 1.0 対応になりましたので、次の手順でスキン・テンプレートのアップグレードをして下さい。</p>
252
253 <p>管理者画面を開き、管理ホームにあるスキンの「読込/書出」を開きます。そこから atom を選択し、読み込みボタンを押して上書きインストールしてください。</p>
254
255 <p>もし atom のスキンやテンプレートを変更している場合は、既存の内容をファイルに書き出して(skinbackup.xml というファイルが作成されます)、/skins/atom/skinbackup.xml (これが新しいファイル)と比較し、この新しいファイルを更新します。その後、前述の通り管理者画面からスキンの「読込/書出」を開いて同様にして上書きインストールして下さい。</p>
256
257 <?php
258                                 }
259                 }
260
261                 // default skin
262                 $query = 'SELECT tdnumber FROM ' . sql_table('template_desc')
263                                          . ' WHERE tdname="default/index"';
264                 $res = mysql_query($query);
265                 $tdnumber = 0;
266                 while ($o = mysql_fetch_object($res)) {
267                                 $tdnumber = $o->tdnumber;
268                 }
269                 if ($tdnumber>0)
270                 {
271                                 $query = 'SELECT tpartname FROM ' . sql_table('template')
272                                                          . ' WHERE tdesc=' . $tdnumber . ' AND tpartname="BLOGLIST_LISTITEM"';
273                                 $res = mysql_query($query);
274                                 if (!mysql_fetch_object($res)) {
275
276                                                 $sth = 1;
277 ?>
278 <h2>Default スキン</h2>
279 <p>Nucleus 3.3 からいくつかのフォームの CSS が変更になっています。たとえば最初のページのログインフォームや、コメント投稿のためのフォームなど。このためフォームの表示が崩れるので、次の手順でDefault スキンのアップグレードをして下さい。</p>
280
281 <p>管理者画面を開き、管理ホームにあるスキンの「読込/書出」を開きます。そこから default を選択し、読み込みボタンを押して上書きインストールしてください。</p>
282
283 <p>もし default のスキンやテンプレートを変更している場合は、既存の内容をファイルに書き出して(skinbackup.xml というファイルが作成されます)、/skins/default/skinbackup.xml (これが新しいファイル)と比較し、この新しいファイルを更新します。その後、前述の通り管理者画面からスキンの「読込/書出」を開いて同様にして上書きインストールして下さい。</p>
284 <?php
285                                 }
286                 }
287
288                 return $sth;
289 }
290
291 ?>