OSDN Git Service

543283879fececdea1ad51bfe7d4c7381bd14ce9
[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-2007 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-2007 The Nucleus Group
15  * @version $Id: index.php,v 1.11 2007-04-26 08:45:26 kimitake Exp $
16  * $NucleusJP: index.php,v 1.10 2007/04/26 06:20:18 kimitake Exp $
17  *
18  */
19
20 include('upgrade.functions.php');
21
22 // check if logged in etc
23 if (!$member->isLoggedIn()) {
24   upgrade_showLogin('index.php');
25 }
26
27 if (!$member->isAdmin()) {
28   upgrade_error('Super-admin(最高管理者)のみがアップグレードを実行できます。');
29 }
30
31 upgrade_head();
32
33 ?>
34
35 <h1>アップグレードスクリプト集</h1>
36
37 <div class="note">
38 <b>Note:</b> もし古いバージョンの Nuclues からアップグレードしようとしているのでなければ(つまりまっさらな状態からインストールしたのであれば)、これらのスクリプト集は必要ありません。
39 </div>
40
41 <p>
42 古いバージョンの Nucleus からアップグレードするとき、データベーステーブルのアップグレードが必要です。
43 このアップグレードスクリプトを実行することでそれが可能となります。
44 </p>
45
46 <?php  // calculate current version
47           if (!upgrade_checkinstall(96)) $current = 95;
48   else  if (!upgrade_checkinstall(10)) $current = 96;
49   else  if (!upgrade_checkinstall(11)) $current = 10;
50   else  if (!upgrade_checkinstall(15)) $current = 11;
51   else  if (!upgrade_checkinstall(20)) $current = 15;
52   else  if (!upgrade_checkinstall(25)) $current = 20;
53   else  if (!upgrade_checkinstall(30)) $current = 25;
54   else  if (!upgrade_checkinstall(31)) $current = 30;
55   else  if (!upgrade_checkinstall(32)) $current = 31;
56   else  if (!upgrade_checkinstall(33)) $current = 32;
57   else  $current = 33;
58
59   if ($current == 33) {
60         ?>
61           <p class="ok">自動でできるアップグレードはありません。データベースは既に最新の Nucleus 用にアップデートされています。</p>
62         <?php
63   } else {
64         ?>
65           <p class="warning"><a href="upgrade.php?from=<?php echo $current?>">ここをクリックしてデータベースを Nucleus v3.3 用にアップグレードします</a></p>
66         <?php
67   }
68 ?>
69
70 <div class="note">
71 <b>注意:</b> 作業中、各ステップごとにデータベースのバックアップを忘れないようにして下さい。
72 </div>
73
74 <h1>手動変更</h1>
75
76 <p>いくつかの変更は手動で行う必要があります。下記にその手順を示します。</p>
77
78 <?php
79 $sth = 0;
80 if (!$DIR_MEDIA) {
81   upgrade_manual_96();
82   $sth = 1;
83 }
84 if (!$DIR_SKINS) {
85   upgrade_manual_20();
86   $sth = 1;
87 }
88
89 // some manual code changes are needed in order to get Nucleus to work on php version
90 // lower than 4.0.6
91 if (phpversion() < '4.0.6') {
92   upgrade_manual_php405();
93   $sth = 1;
94 }
95
96 // from v3.3, atom feed supports 1.0 and blogsetting is added
97 $sth = upgrade_manual_atom1_0();
98
99 if ($sth == 0)
100   echo "<p class='ok'>手動変更は必要ありません。今日はラッキーな日ですね!</p>";
101
102
103
104 upgrade_foot();
105
106 function upgrade_todo($ver) {
107   return upgrade_checkinstall($ver) ? "(<span class='ok'>インストール済み</span>)" : "(<span class='warning'>インストールが必要</span>)";
108 }
109
110 function upgrade_manual_96() {
111   global $DIR_NUCLEUS;
112
113   $guess = str_replace("/nucleus/","/media/",$DIR_NUCLEUS);
114 ?>
115   <h2>Nucleus 0.96 用に必要な変更</h2>
116   <p>
117     メディア機能を使用するために<i>config.php</i>を手動で変更する必要があります。下記の通り追加します:
118   </p>
119   <pre>
120   // path to media dir
121   $DIR_MEDIA = '<b><?php echo htmlspecialchars($guess)?></b>';
122   </pre>
123
124   <p>
125   また、ディレクトリもあなた自身の手で作る必要があります。もしファイルのアップロードを可能にしたいのであれば、media/ ディレクトリのパーミッションを777にします。(Nucleus 0.96+ のためのパーミッションの設定に関するクイックガイドが documentation/tips.html にあります)
126   </p>
127
128 <?php }
129
130 function upgrade_manual_20() {
131   global $DIR_NUCLEUS;
132
133   $guess = str_replace("/nucleus/","/skins/",$DIR_NUCLEUS);
134 ?>
135   <h2>Nucleus 2.0 用に必要な変更</h2>
136   <p>
137     スキンの取り込み機能を使用するために<i>config.php</i>を手動で変更する必要があります。下記の通り追加します:
138   </p>
139   <pre>
140   // extra skin files for imported skins
141   $DIR_SKINS = '<b><?php echo htmlspecialchars($guess)?></b>';
142   </pre>
143
144   <p>また、ディレクトリもあなた自身の手で作る必要があります。これでダウンロードしたスキンを上記ディレクトリに展開したり、Nucleus 管理画面から取り込んだりできるようになります。</p>
145
146   <h3>RSS 2.0 と RSD スキン</h3>
147
148   <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>
149
150 <?php }
151
152 function upgrade_manual_php405() {
153 ?>
154 <h2>PHP のバージョンが 4.0.3, 4.0.4 または 4.0.5 の場合に必要となる変更</h2>
155 <p>
156   PHP のバージョンが 4.0.6 より以前の場合、変更が必要なファイルが2つあります。PHP のバージョンを 4.0.6 や 4.2.2+以降のものにアップグレードした方がいいでしょう(4.0.6 や 4.2.2 以前のものにはセキュリティー問題があります)。もし PHP のアップグレードが困難もしくは、する予定がない場合は、以下のファイルを変更して下さい。
157 </p>
158 <ul>
159   <li>nucleus/libs/PARSER.php のコードが下記のようになっていることを確認して下さい。(84行目から):
160         <pre>
161
162   if (in_array($actionlc, $this-&gt;actions) || $this-&gt;norestrictions ) {
163         <strong>$this-&gt;call_using_array($action, $this-&gt;handler, $params);</strong>
164   } else {
165         // redirect to plugin action if possible
166         if (in_array('plugin', $this-&gt;actions)
167           && $manager-&gt;pluginInstalled('NP_'.$action))
168           $this-&gt;doAction('plugin('.$action.
169                 $this-&gt;pdelim.implode($this-&gt;pdelim,$params).')');
170         else
171           echo '&lt;b&gt;DISALLOWED (' , $action , ')&lt;/b&gt;';
172   }
173
174
175 }
176          </pre>
177         </li>
178         <li>nucleus/libs/PARSER.php のコードが下記のようになっていることを確認して下さい。(75行目から):
179         <pre>
180 // $params = array_map('trim',$params);
181 foreach ($params as $key =&gt; $value) { $params[$key] = trim($value); }
182         </pre>
183         </li>
184   </ul>
185
186 <?php }
187
188 function upgrade_manual_atom1_0() {
189
190         $sth = 0;
191
192         // atom 1.0
193         $query = 'SELECT sddesc FROM ' . sql_table('skin_desc')
194                 . ' WHERE sdname="feeds/atom"';
195         $res = mysql_query($query);
196         while ($o = mysql_fetch_object($res)) {
197                 if ($o->sddesc=='Atom 0.3 weblog syndication')
198                 {
199                         $sth = 1;
200 ?>
201 <h2>Atom 1.0</h2>
202 <p>Nucleus 3.3 から atom feed が 1.0 対応になりましたので、次の手順でスキン・テンプレートのアップグレードをして下さい。</p>
203
204 <p>管理者画面を開き、管理ホームにあるスキンの「読込/書出」を開きます。そこから atom を選択し、読み込みボタンを押して上書きインストールしてください。</p>
205
206 <p>もし atom のスキンやテンプレートを変更している場合は、既存の内容をファイルに書き出して(skinbackup.xml というファイルが作成されます)、/skins/atom/skinbackup.xml (これが新しいファイル)と比較し、この新しいファイルを更新します。その後、前述の通り管理者画面からスキンの「読込/書出」を開いて同様にして上書きインストールして下さい。</p>
207
208 <?php
209                 }
210         }
211
212         // default skin
213         $query = 'SELECT tdnumber FROM ' . sql_table('template_desc')
214                    . ' WHERE tdname="default/index"';
215         $res = mysql_query($query);
216         $tdnumber = 0;
217         while ($o = mysql_fetch_object($res)) {
218                 $tdnumber = $o->tdnumber;
219         }
220         if ($tdnumber>0)
221         {
222                 $query = 'SELECT tpartname FROM ' . sql_table('template')
223                            . ' WHERE tdesc=' . $tdnumber . ' AND tpartname="BLOGLIST_LISTITEM"';
224                 $res = mysql_query($query);
225                 if (!mysql_fetch_object($res)) {
226
227                         $sth = 1;
228 ?>
229 <h2>Default スキン</h2>
230 <p>Nucleus 3.3 からいくつかのフォームの CSS が変更になっています。たとえば最初のページのログインフォームや、コメント投稿のためのフォームなど。このためフォームの表示が崩れるので、次の手順でDefault スキンのアップグレードをして下さい。</p>
231
232 <p>管理者画面を開き、管理ホームにあるスキンの「読込/書出」を開きます。そこから default を選択し、読み込みボタンを押して上書きインストールしてください。</p>
233
234 <p>もし default のスキンやテンプレートを変更している場合は、既存の内容をファイルに書き出して(skinbackup.xml というファイルが作成されます)、/skins/default/skinbackup.xml (これが新しいファイル)と比較し、この新しいファイルを更新します。その後、前述の通り管理者画面からスキンの「読込/書出」を開いて同様にして上書きインストールして下さい。</p>
235 <?php
236                 }
237         }
238
239         return $sth;
240 }
241
242 ?>