OSDN Git Service

add skinvar elseif/ifnot/elseifnot
[nucleus-jp/nucleus-jp-ancient.git] / utf8 / nucleus / documentation / tips.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP" xml:lang="ja-JP">
3 <head>
4         <!-- $Id: tips.html,v 1.6 2007-02-04 06:28:45 kimitake Exp $ -->
5         <!-- $NucleusJP: tips.html,v 1.5 2006/07/12 07:11:46 kimitake Exp $ -->
6         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
7         <title>Nucleus - 便利な使い方ヒントの紹介</title>
8         <link rel="stylesheet" type="text/css" href="styles/manual.css" />
9 </head>
10 <body>
11
12 <div class="heading">
13 Tips &amp; Suggestions
14 </div>
15
16 <h1>Introduction</h1>
17
18 <p>
19 <a href="index.html">Nucleusマニュアルに戻る</a>
20 </p>
21
22 <p>
23 ここでは便利な使い方ヒントをご紹介します。</p>
24
25 <h1><a name="toc"></a>目次</h1>
26
27 <ul>
28         <li>
29                 <a href="#searchengines">検索エンジンにひっかかりやすくする方法</a>
30                 <ul>
31                         <li><a href="#searchengines-fancyurls">Fancy URL モード</a></li>
32                         <li><a href="#searchengines-rewrite">mod_rewrite</a></li>
33                 </ul>
34         </li>
35         <li><a href="#filepermissions">ファイルとディレクトリのパーミッション変更ガイド</a></li>
36         <li><a href="#backups">バックアップをリストア(復元)する方法</a></li>
37         <li><a href="#newblog">新しくweblogを作成する方法</a></li>
38         <li><a href="#xhtml">XHTMLサポートについて</a></li>
39 <!--
40         <li><a href="#"></a></li>
41         <li><a href="#"></a></li>
42         <li><a href="#"></a></li>
43         <li><a href="#"></a></li>
44 -->
45 </ul>
46
47
48
49
50
51
52
53
54
55
56 <h1>Googleなどのサーチエンジンに引っかかりやすくする方法 <a name="searchengines" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
57
58 <div class="note">
59 <b>留意点:</b> これらの方法は、サーバの環境によっては動作しない事があります。
60 </div>
61
62 <p>
63 Nucleus はアクセスごとにページを生成しています。アクセスするURLは「<code>index.php?archive=2001-09&amp;blogid=1</code>のようになっています。残念ながらURLに「?」やそのほかの余分な文字列がたくさんあるとgoogleなどの検索エンジンに登録されにくくなってしまいます。無駄なロボット巡回を省くための措置だそうです。
64 </p>
65
66 <p>この対策を2つ紹介しておきます。しかしながら必ず動作するとは限りませんのでご注意下さい(動作するかどうかはサーバ側の設定によります)。</p>
67
68 <ol>
69         <li><a href="#searchengines-fancyurls">Fancy URLモード</a></li>
70         <li><a href="#searchengines-rewrite">mod_rewrite</a></li>
71 </ol>
72
73 <a name="searchengines-fancyurls"></a>
74 <h2>Fancy URLモード</h2>
75
76 <p>Nucleusではバージョン2.0からグローバル設定において「URLモード」というオプションを設けています。ここを「FancyURLモード」に設定して以下の作業を行うと、URLが「<code>http://example.org/index.php?itemid=1234</code>」から「<code>http://example.org/item/1234</code>」に変わります。このURL形式の方が検索エンジンに登録されやすくなります。 </p>
77
78 <p>手順:</p>
79
80 <ol>
81         <li>Copy all files from the <code>/extra/fancyurls</code> ディレクトリにある<code>index.html</code>以外の全部のファイルをルートディレクトリ(<code>index.php</code> と <code>action.php</code>があるディレクトリ)にコピーします。</li>
82         <li>すでにルートディレクトリに<code>.htaccess</code>ファイルを設置している方はまず現在の<code>.htaccess</code>ファイルをダウンロード後に今回の <code>/extra/fancyurls</code> ディレクトリにある<code>.htaccess</code>ファイルの中身を追加してください。(FTPソフトでは標準設定では<code>.htaccess</code>ファイルは見えないことが多いので、確認方法を調べた上で存在を確認してください。)<br />
83         <code>.htaccess</code>ファイルを設置していなかった方は<code>/extra/fancyurls</code> ディレクトリにある<code>.htaccess</code>ファイルをそのまま使用してください。</li>
84         <li>「<code>fancyurls.config.php</code>」という名前のファイルの中の<code>$CONF['Self']</code>の値を自分のトップページのURLとします。 <br /><strong>重要: URLの末尾にスラッシュは<em>絶対に</em>入れないでください。</strong></li>
85         <li>同様に<code>index.php</code>ファイルの<code>$CONF['Self']</code>の値を編集(引用符の中を削除)します。これをやらないと、URLが<code>index.php/item/1234</code>などとおかしくなります。</li>
86         <li>これらの新しくルートディレクトリに追加したファイルをサーバにアップロードします。</li>
87         <li>最後に、管理エリアのグローバル設定においてURLモードを「FancyURLモード」に変更します。</li>
88         <li>これで完了です。</li>
89 </ol>
90
91 <p>もしページが正常に表示されない場合(Internal Server Errorなどと表示される場合)は、残念ですがこの対策は使えません。上の作業で追加したファイルを速やかに削除し(<code>.htaccess</code>ファイルの削除も忘れずに)、管理エリアのグローバル設定においてURLモードを元に戻してください。</p>
92
93
94 <a name="searchengines-rewrite"></a>
95 <h2>mod_rewrite</h2>
96
97 <p>
98 次に紹介する対策はApacheサーバを使用していて、かつ、「mod_rewrite」の使用が許可されている環境でのみ有効な方法です。アクセスするページがhtmlファイルであるかのようにみせかける方法です。
99 </p>
100
101 <p>
102 ルートディレクトリに「<code>.htaccess</code>」という名前のファイル(ファイル名の先頭はピリオドです)を作成し、以下の内容を書き込みます:
103 </p>
104
105 <pre>
106 RewriteEngine On
107 RewriteRule ^archive-([0-9]+)-([0-9]+)-([0-9]+).html+ index.php?archive=$2-$3&blogid=$1
108 RewriteRule ^item-([0-9]+).html+ index.php?itemid=$1
109 RewriteRule ^archivelist-([a-z]+).html+ index.php?archivelist=$1
110 </pre>
111
112 <p>
113 このファイルを <i>index.php</i> や <i>config.php</i> があるディレクトリにアップロードします。ブラウザで「<code>archive-1-2004-06.html</code>」にアクセスしてみましょう。きちんとページが表示されればこの方法が使える環境です。(このURL例は2004年6月の記事を表示させるURLですから該当月のログがない場合は「記事がありません」となりますが、これは成功している事を意味します。)<br />もし、アクセスした際に  500 error (internal server error) が表示されていたらそのサーバ環境ではこの方法は使えません。.htaccess ファイルを削除してください。
114 </p>
115
116 <p>
117 成功していたら、次にこのURLにジャンプするようにテンプレートを書き換えます。上のURL例をリンク先とする場合は、アーカイブリスト(アーカイブ一覧ページ)で指定しているテンプレートの「アーカイブ一覧の本体」の部分を以下のように変更します:
118 </p>
119
120 <pre>
121 &lt;a href="archive-&lt;%blogid%&gt;-&lt;%year%&gt;-&lt;%month%&gt;.html"&gt;...&lt;/a&gt;
122 </pre>
123
124 <p>
125 これで検索エンジン対策の説明はおしまいです。あとは検索ロボットが到来するのを待ってみましょう。
126 </p>
127
128
129 <h1>ファイルとディレクトリのパーミッション変更ガイド <a name="filepermissions" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
130
131 <p>
132 Nucleusのいくつかの機能を正常動作させるためにはパーミッションの変更作業が必要となります。ここではFTPソフト(FTPクライアント)を使ってパーミッションを変更する方法を紹介しておきます。
133 </p>
134 <p>
135 まずはパーミッション変更ができるFTPソフト(FTPクライアント)を入手します。英語ガイドでは「CuteFTP」というソフトを例にとって説明されていますが、シェアウェアであり日本ではメジャーではないのでOS別に分けて説明します。</P>
136
137 <h2>Windows</h2>
138 <p>
139 Windows版では、「FFFTP」というソフトを例に用いて説明させていただきます。FFFTPはフリーウェアです。『<a href="http://www2.biglobe.ne.jp/‾sota/ffftp.html">Sota's Product : FFFTP</a>』で入手できます。また、FFFTPのインストールや基本的な使い方につきましては、『<a href="http://ftp.hm/ffftp/manual.shtml">初心者マニュアル - FFFTP Support Page.</a>』をご覧下さい。
140 </p>
141
142 <p>
143 まずサーバに接続します。パーミッションを変更したいサーバ側のファイル又はディレクトリをクリックして選択します。(画面右側がサーバに置いてあるディレクトリとファイルのリストとなっています。)
144 </p>
145
146 <p>
147 メニューバーの <tt>コマンド &gt; 属性変更</tt> を選択します。
148 </p>
149
150 <div class="screenshot">
151         <img src="pics/screen4.png" width="370" height="257" alt="menu" />
152 </div>
153
154 <p>
155 パーミッションを設定するウィンドウがポップアップします:
156 </p>
157
158 <div class="screenshot">
159         <img src="pics/screen5.png" width="305" height="189" alt="The window that pops up" />
160 </div>
161
162 <p>
163 このポップアップしたウィンドウの下の方に数字を入れる所がありますから、ここに説明書に記載されている数字(例えば777とか666)を入力してOKボタンを押します。これでおしまいです。
164 </p>
165 <h2>MacOS</h2>
166 <p>
167 MacOS上で動作する日本語が使えるFTPクライアントでは、「Fetch日本語版」が最も人気があるようです。『<a href="http://www.hart.co.jp/fetch/">Fetch日本語版公式ホームページ</a>』よりダウンロードできます。(使い続ける方は有料になります。)
168 </p>
169 <p>
170 パーミッションの変更画面では数字を入力する機能がないようですので、どこにチェックを入れたら(はずしたら)よいかがよくわからない方は『<a href="http://trynext.co.jp/tips/chmod/">TryNext|Fetchによるパーミッション設定</a>』をご覧下さい。代表的なパーミッション設定例と、計算の仕方が説明されています。
171 </p>
172 <p>
173 または、下記の表にチェックを入れてみて指示されているパーミッション値になるようにテストしてみても良いかと思います。
174 (上記のWindows版FTPソフトの設定画面とは縦軸と横軸が逆になっていますので混同しないように。)
175 </p>
176 <SCRIPT language="javascript">
177 <!--//
178 //------------------------------------------------------------
179 //javascript by @うさ http://usagi-js.com/
180 //------------------------------------------------------------
181 var nCurrentValue;
182 function ResetValue()
183 {
184         nCurrentValue = 0;
185 }
186 function CheckValue()
187 {
188         //リセット
189         ResetValue()
190         //全てをチェック
191         if (document.frmSample.chkValue11.checked)
192         {
193                 nCurrentValue = eval(document.frmSample.chkValue11.value);
194         }
195         if (document.frmSample.chkValue12.checked)
196         {
197                 nCurrentValue += eval(document.frmSample.chkValue12.value);
198         }
199         if (document.frmSample.chkValue13.checked)
200         {
201                 nCurrentValue += eval(document.frmSample.chkValue13.value);
202         }
203         if (document.frmSample.chkValue21.checked)
204         {
205                 nCurrentValue += eval(document.frmSample.chkValue21.value);
206         }
207         if (document.frmSample.chkValue22.checked)
208         {
209                 nCurrentValue += eval(document.frmSample.chkValue22.value);
210         }
211         if (document.frmSample.chkValue23.checked)
212         {
213                 nCurrentValue += eval(document.frmSample.chkValue23.value);
214         }
215         if (document.frmSample.chkValue31.checked)
216         {
217                 nCurrentValue += eval(document.frmSample.chkValue31.value);
218         }
219         if (document.frmSample.chkValue32.checked)
220         {
221                 nCurrentValue += eval(document.frmSample.chkValue32.value);
222         }
223         if (document.frmSample.chkValue33.checked)
224         {
225                 nCurrentValue += eval(document.frmSample.chkValue33.value);
226         }
227         //表示
228         document.frmSample.txtTotal.value=nCurrentValue;
229 }
230 //-->
231 </SCRIPT>
232
233 <table align="center"><tr>
234 <FORM name="frmSample">
235 <td> </td>
236 <td >読む</td>
237 <td>書込</td>
238 <td>検索/実行</td>
239 </tr>
240 <tr>
241 <td>オーナー</td>
242 <td><INPUT type="checkbox" name="chkValue11" value="400" onClick="CheckValue()"></td>
243 <td><INPUT type="checkbox" name="chkValue12" value="200" onClick="CheckValue()"></td>
244 <td><INPUT type="checkbox" name="chkValue13" value="100" onClick="CheckValue()"></td>
245 </tr>
246 <tr>
247 <td>グループ</td>
248 <td><INPUT type="checkbox" name="chkValue21" value="40" onClick="CheckValue()"></td>
249 <td><INPUT type="checkbox" name="chkValue22" value="20" onClick="CheckValue()"></td>
250 <td><INPUT type="checkbox" name="chkValue23" value="10" onClick="CheckValue()"></td>
251 </tr>
252 <tr>
253 <td>全員</td>
254 <td><INPUT type="checkbox" name="chkValue31" value="4" onClick="CheckValue()"></td>
255 <td><INPUT type="checkbox" name="chkValue32" value="2" onClick="CheckValue()"></td>
256 <td><INPUT type="checkbox" name="chkValue33" value="1" onClick="CheckValue()"></td>
257 </tr>
258 <tr>
259 <td colspan="4">
260 パーミッション値(直接入力はできません)<br>
261 <INPUT type="text" name="txtTotal" readonly>
262
263 </td>
264 </FORM>
265
266
267 </tr></table>
268
269
270 <h1>バックアップをリストア(復元)する方法 <a name="backups" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
271
272 <p>
273 Nucleus には最高管理者が使うことができるデータベースのバックアップ機能があります。定期的に(週1回など)バックアップを取られることを強くおすすめします。 生成されるバックアップファイルはスタンダードなSQLクエリ文です。バックアップを取った時点のデータベース状態に再構成するコマンドが書かれています。
274 </p>
275
276 <p>
277 バックアップが作成できればリストアも簡単にできるはずですが、何らかの理由によりリストアが成功しないケースも考えられます。そこで、万が一管理エリアからリストアができない場合でも、データを書き戻す方法をいくつか紹介しておきます:
278 </p>
279
280 <div class="note">
281 バックアップ作成時にzip圧縮を選択していた方はまず最初に解凍してください(中身はsqlファイルです)。
282 </div>
283
284
285 <h2>方法その1: ブラウザ上にて行う方法</h2>
286
287 <p>
288 <a href="http://phpmyadmin.sourceforge.net/">PHPMyAdmin</a>のようなブラウザでデータベースを操作できる状態の方は、ローカルにあるsqlファイルをデータベースに取り込む機能が付いているはずですので、この機能を使用してみてください。
289 </p>
290
291 <h2>方法その2: Shellにアクセスして作業する方法</h2>
292
293 <p>
294 Shellにアクセスできる状態の方は、mysqlプログラムを実行して下記のようなコマンドを叩けばリストアできます:
295 </p>
296
297 <pre>
298 mysql -u <i>username</i> -p -h <i>hostname</i> <i>databasename</i> &lt; <i>backupfile.sql</i>
299 </pre>
300
301
302 <h1>新しくweblogを作成する方法 <a name="newblog" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
303
304 <h2>1. 新規weblogの作成</h2>
305
306 <p>最高管理者としてログインすると「新規weblog作成」メニューが使用できます。ここで画面の指示に従って作成してください。</p>
307
308 <h2>2. 作成したweblogにアクセスする</h2>
309
310 <p>新しく追加されたweblogにアクセスする方法はいくつかあります。</p>
311
312 <ol>
313         <li>URLにて<strong><code>blogid</code>の値</strong>を指定する:
314                 <pre><code>http://yourhost.com/index.php?blogid=<i>2</i></code></pre>
315                 (作成したweblogのblogidは管理エリアのトップページにあるblog一覧の中の該当blogのリンク先を見ればわかります。)
316         </li>
317         <li>
318                 アクセス専用のphpファイルを作成する:
319                 <pre><code>$CONF['Self'] = '<i>copy.php</i>';
320 include('./config.php');
321 selectBlog('<i>shortblogname</i>');
322 selector();
323
324 ?></code></pre>
325                 上のような内容の「<tt>copy.php</tt>」という名前(この名前は一例です)のファイルをルートディレクトリに作成し、これにアクセスすると新しく追加されたblogが表示されます。
326                 (作成したweblogの短縮名はは管理エリアのトップページにあるblog一覧の中から該当blogの設定画面に入るとわかります。)
327         </li>
328 </ol>
329
330 <h2>アクセス専用phpファイルの中で使用できるコマンド</h2>
331
332 <p>上記のサンプル内で使用している <tt>selectBlog</tt> というコマンドは、アクセス専用phpファイルにて使用できるコマンドの一例です。他にも使用できるコマンドがありますので紹介しておきます:</p>
333
334 <table><tr>
335         <th>コマンド</th>
336         <th>意味</th>
337 </tr><tr>
338         <td><code>selectBlog('shortblogname');</td>
339         <td>「shortblogname」という短縮名のblogを表示させる<br />
340         (* URLにて指定するblogidの方が優先されます。URLにて指定がない場合にこの指定が使われます)
341         </td>
342 </tr><tr>
343         <td><code>selectSkin('skinname');</td>
344         <td>「skinname」という名前のスキンを適用してページ表示する<br />
345         (* URLにて指定するskinidの方が優先されます。URLにて指定がない場合にこの指定が使われます)
346         </td>
347 </tr><tr>
348         <td><code>selectCategory(1234);</td>
349         <td>IDが「1234」のカテゴリを選択した状態でページ表示する<br />
350         (* URLにて指定するcatidの方が優先されます。URLにて指定がない場合にこの指定が使われます)<br />
351         この指定にはカテゴリ名を指定する事もができますが、複数blogが存在している場合は同じカテゴリ名があることが考えられますのでID指定の方が無難でしょう。</td>
352 </tr><tr>
353         <td><code>selectItem(1234);</td>
354         <td>IDが「1234」の記事を選択した状態でページ表示する<br />
355         (* URLの指定が優先されます。URLにて指定がない場合にこの指定が使われます)</td>
356 </tr><tr>
357         <td><code>selectLanguage('french');</td>
358         <td>言語を「french」にしてページ表示する
359          (PHPエラーが出る可能性がありますので注意してください)</td>
360 </tr></table>
361
362 <p>
363 アクセス専用phpファイルの中にこれらのコマンドを書く時は、コードの順番に留意してください。これらのコマンドは、<code>include('./config.php')</code>よりも<strong>後に</strong>書き、かつ、<code>selector();</code>という行よりも<strong>前に</strong>書かなくては反映されません。
364 <p>
365
366 <h2>サブディレクトリに新しいblogを配置する場合</h2>
367
368 <p>例えば、最初のblogが <tt>http://yourhost.com/</tt> で表示されていて、新しく追加するblogは <tt>http://yourhost.com/sub/</tt> のようにサブディレクトリに配置したい方は、上記のサンプルと同じアクセス専用phpファイルをそのサブディレクトリに作成します。このサブディレクトリに配置したアクセス専用phpファイルの<code>include('./config.php');</code> という部分を <code>include('../config.php');</code>と書き換えるだけで動作します。</p>
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384 <h1>XHTML サポートについて <a name="xhtml" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
385
386 <p>
387 自分のページのソースコードを見た時、<code>&lt;br /&gt;</code>のようなタグコードにお気付きかと思います。これは、Nucleusが自動生成するコードがW3Cにて策定されているXHTML 1.0 standard(HTML4継承)に則っているからです。webの将来性を鑑みてこのようにしております。知る限りでは、XHTML形式の記述が古いブラウザとの互換性を損なってはいないようです。
388 </p>
389
390 <p>
391 ですから、スキンとテンプレートの記述でミスを犯していなければ完全なXHTML準拠のソースコードが生成されるはずです。1点だけ付け加えておきますと、標準添付のスキンでは、敢えてdoctypeを「HTML 4 Loose」と宣言しております。これは、XHTML準拠でないコードをスキンやテンプレートや記事内に登録してしまい、正常にページ表示ができなくなる可能性を回避する為です。
392 </p>
393
394
395
396 </body>
397 </html>
398