- 更新情報 - マニュアル

はじめに

これは WEB サイトの更新情報などを登録し表示する perl5 スクリプトです。 サイトの更新情報や簡単な日記などにお使いください。

SSI または IFRAME をつかって、HTML ファイルに新着データを埋め込むことが出来ます。 SSI が使えないサイトでも HTML テンプレートファイルを作成することによって 更新情報を埋め込んだ文書を作成することも出来ます。

更新情報はカテゴリわけが出来、カテゴリごとの表示も可能です。 また、複数の更新情報データをひとつのCGIで管理することが出来ます。

注意:
Ver0.xx の時から Ver1.xx になったときに設定パラメータが少々増えました。 バージョンアップの時には初期設定をやり直さないと、不具合があるかもしれません。
もひとつ注意:
Ver1.xx の時から Ver2.xx になったときにデータディレクトリが変わり、 設定パラメータが少々変更されました。 バージョンアップの時には wnew.txt と wnew.ini の2つを dat ディレクトリに移動して、 初期設定をやり直さないと不具合があるかもしれません。
さらなる注意:
Ver2.xx の時から Ver3.xx になったときにまたもや設定パラメータが増えました。 バージョンアップの時には初期設定をやり直さないと、不具合があるかもしれません。

インストール

ファイルのダウンロードと解凍

プログラムのアーカイブファイルをダウンロードします。 lhasa 等 lha 形式のアーカイブファイルが解凍できるツールでファイルを解凍します。

解凍ツールによってはサイズが0のファイルを解凍しないタイプのものがあるようです。 その場合、設定ファイルとデータファイルが見つからないかもしれませんが、 エディタなどで中身が空のファイルを各ファイルの名前で作成すればOKです。

スクリプトファイルのカスタマイズ

設定のほとんどは WEB 上で行えるようになっています。 もし、ご利用のプロバイダでの perl パスが /usr/local/bin/perl ではない場合のみ、 wnew.cgiの先頭部分、

#!/usr/local/bin/perl

をプロバイダのマニュアルのとおりのパスに変更して保存してください。

表示するページの見栄えはすべて、スタイルシートで行っています。 見栄えを変えたい場合は wnew.css を編集してください。

更新情報の表示

上のほうが簡単な方法。下のほうはどうもうまい説明ができないので、 なんのこっちゃわからなかったら一番目を使ってください。

CGI で更新情報を表示したい場合

普通に wnew.cgi を呼び出してください。

IFRAME で呼び出す場合

呼び出す HTML ファイルに以下の例のようなタグを入力してください。

<iframe src="wnew.cgi?mode=IFRAME"><a href="wnew.cgi">更新情報</a></iframe>

SSI で更新情報を表示したい場合

SHTML ファイルを作成し、更新情報を埋め込みたい部分に、

<!--#include virtual="wnew.cgi?mode=SSI"-->

というタグを埋め込んでください。

外部HTMLファイルに書出したい場合

テンプレート HTML ファイルを作成し、更新情報を埋め込みたい部分に、

<!-- WhatsneW -->

というタグを埋め込み、初期設定の infile にそのテンプレートファイルを指定してください。

埋め込み先のHTMLファイルを作成し(中身は空でいいです)、 初期設定の outfile に埋め込み先ファイルを指定してください。

ファイルの転送

ftp ソフトを使って、必要なファイルをすべて転送します。 (この説明書は転送する必要がありません)

下の設置例を参考に、 CGIが作成するHTMLを保存するディレクトリやデータを置くディレクトリを作成し、 ファイルとディレクトリの属性を変更してください。

スタイルシート内で背景などを使った場合は、 それらの画像データも忘れず転送してください。 サーバーによって置き場所などが決められている場合は、 指定の場所(cgi-bin など)にファイルを置くようにしてください。

CGIの設置例

▼ public_html/
+▼ cgi-bin/ (705) - CGI設置ディレクトリ
|+□ wnew.cgi (705) - 更新情報CGI
|+□ wnew.css (604) - CGI用スタイルシート
|+□ wnewcnf.cgi (600) - HTML出力設定スクリプト
|+□ wnewcnf.dat (600) - 設定データファイル
|+□ stdlib.cgi (600) - サブルーチン集スクリプト
|+□ parslib.cgi (600) - 入力パラメータ解析スクリプト
|+□ rss.cgi (600) - RSS 整形スクリプト
|+□ jcode.pl (604) - 日本語処理ライブラリ
|+□ sample.shtml (604) - SSI 使用例ファイル
|+□ input.htm (600) - HTML テンプレートファイル
|+□ output.htm (604) - HTML 埋め込み先ファイル
|+▼ dat/ (700) - データディレクトリ
||+□ wnew.txt (600) - 更新情報データ
||+□ wnew.cat (600) - 種別データ
||+□ wnew.ini (600) - 設定ファイル
|

ファイル埋め込みをしない場合はHTMLテンプレートファイルと、埋め込み先ファイルは必要ありません。

上記の設置例は一例です。 SHTML ファイル、HTMLテンプレートや埋め込み先ファイルは、 お好きな名前でお好きな場所に転送してもかまいません。 その際は、SSIの埋め込みタグや、初期設定でのファイル指定の際にディレクトリ指定を忘れないように。


CGIの使い方

簡単な使い方

CGI を呼び出すと、下方に設定メニューへのリンクがあります。 このリンクをクリックするとパスワード入力画面になります。 パスワード(初期値は:passwd)を入力して行いたい作業を選択してください。

初期設定はメニューの説明をよんで、適当に設定してください。 判らないところは触らなくてもかまいません。


ちょっと凝った使い方

Ver2 より、1つのCGIで複数のデータを扱えるようになりました。 更新情報と日記を分けておきたい、いろんなネタでコラム集作りたい、 などコンテンツを複数起きたいけど、複数の CGI の管理が面倒だという方におすすめです。

複数のデータを使い分けたい場合は、dat ディレクトリにサブディレクトリを作成して、 そこに wnew.txt と wnew.ini の2つのファイルをコピーしてください。

|+▼ dat/ (705) - データディレクトリ
||+▼ news/ (705) - サブディレクトリ1(更新情報)
|||+□ wnew.txt (600) - 更新情報データ
|||+□ wnew.ini (600) - 設定ファイル
||+▼ diary/ (705) - サブディレクトリ2(日記)
|||+□ wnew.txt (600) - 更新情報データ
|||+□ wnew.ini (600) - 設定ファイル
||+▼ column/ (705) - サブディレクトリ3(コラム)
|||+□ wnew.txt (600) - 更新情報データ
|||+□ wnew.ini (600) - 設定ファイル
|

↑こんなかんじ。この例では、更新情報と日記とコラムの3つを分けておいてあります。

CGI の呼び出しは、wnew.cgi の後に id=ディレクトリ というパラメータをつければOKです。 上記の例でいくと、更新情報は「wnew.cgi?id=news」 日記は「wnew.cgi?id=diary」コラムは「wnew.cgi?id=column」というふうに指定します。


Q&A

SSI が上手くいきません

  1. スクリプトを編集していますか? まずは配布されている状態でサーバーに転送して試してみてください。
  2. お使いのサーバーは SSI が使えますか? サーバーのホームページ設置マニュアルをご覧ください。 CGI が使えても SSI が使えないサーバーがあります。
  3. 呼び出す側の HTML ファイルの拡張子は shtml になっていますか? お使いのサーバーによって、SSI を使用するとき HTML ファイルの拡張子を shtml にしないと動作しない場合があります。 サーバーのSSI設置マニュアルなどを参考にしてください。
  4. SSI 用のタグをミスってませんか? まず、sample.shtml を転送して表示させてみてください。
  5. SSI 用のタグの中の CGI URL は実際に自分が設置した URL になっていますか? 呼び出す HTML ファイルと CGI が別のディレクトリにある場合は、 タグの URL 部分も編集してください。

設置してまず初期設定をしようと思ったのに、 デフォルトのパスワード「passwd」を入力してもエラーになります

おそらく、お使いのサーバーのパスワード暗号化の仕様が私の使っているサーバーと違うために、 入力したパスワードとこちらで作成した暗号化パスワードが合致しないためだと思います。 wnew.ini ファイルをテキストエディタで開いて(最初は中身が空だと思います)、

passwd=

とだけ書いて保存し、サーバーにアップロードしてください。 最初のパスワード入力がスキップされます。

その後はかならず、初期設定でパスワードを設定してください。 パスワードが空のままにしておいて、悪意ある人にいたずらされても責任取れません。

設定例のとおりにパーミッションを指定したら、 ファイルが読み込めません等のエラーがでます。

データが読み込めない、書き込めないなどのエラーがでる場合は、 上記設置例で700 になっているディレクトリを 707 もしくは 777、 600 になっているファイルのパーミッションを 606 もしくは 666 にしてみてください。

出力HTMLが気に入りません

色や文字の大きさ、枠の太さなど、ちょっとしたレイアウトレベルでしたら、 スタイルシート wnew.css をいじると幸せになれます。 ニュース部分のタグは初期設定でサンプルが表示されるのでそれを参考に。

「IE3や NN4、DreamPassport、Zaurus 等スタイルシートに不自由なブラウザに気を使いたい」という方、 「なんで HTML4.01 Transitional なんか使ってるかなー。XHTML1.1 でしょ、フツ〜」という方、 「マークアップも何も、そもそも根本的にお前の作ったレイアウトはだめだ。ぜんぜん気に入らない」という方、また他の理由でとにかくHTML出力部分だけいじくりたい方は、 HTML 出力部分を wnewcnf.cgi というファイルににまとめてみたので、 そのファイルを改造してみてください。

ついでにどこか文法的に間違ってる部分を発見したら教えてくれるとうれしいです。

初期設定の「何か」関係って何?

Windows用デスクトップマスコット 「伺か。」 及び、その互換プログラムである SSPCROW 用のプラグインプログラム 「ヘッドラインセンサ for いろんなホームページ」 用の専用タグを吐き出す機能の設定をします。

「伺か。」ってなんだ?という方はまず さくらナビ.com 初心者モード をご覧ください。

専用タグはコメントタグになっているので、 「伺か。」設定をしてもしなくても特にブラウザからの見た目はかわりません。 がまあ、「伺か。」に興味がなくてコメントタグ1行すら転送量が気になる場合は、 初期設定の「ヘッドライン出力数」を0にすると出力しなくなります。

しかし、最近は「伺か。」を起動する回数も減った、というか、 むしろまったく起動しなくなってからはや1年以上。 しかも、「伺か。」本体は配布継続されてるものの、2002年の7月で開発終了のようだし、 「ヘッドラインセンサ」にいたっては作者様のサイトがいつからか工事中になったままで、 なんというか配布終了っぽい感じがぎゅんぎゅんします。 DLL 自身は再配布可能ですけど、この分だとヘッドラインセンサの利用者は減る一方かもしれない。

RSS って何?

よくわかんないけど最近流行ってるらしいです。 神崎さんのとこの解説を読んでください。

他に問題点あるんじゃないですか?

使ってる最中に気が付いたけど「まあ、今のところ私困ってないしー」 と棚上げしてるモノを列挙します。 このリストにあるものは改善するかどうかすら判りません。 私が困るようになれば、即座に修正されるでしょう。

登録されたデータの日付が変更できない
変更できないと困るかなあ?(確かに最初に昔のデータをだだーっと補完してから公開したい、 なんて時は最初だけ困るような気が・・・うーん、確かに困る。困ってきた。どうしようか)
最初のページに表示されない古いデータを修正しても HTML や RSS が修正される
ファイルの日付変わっちゃうので、アンテナとかで意味もなく上に上がる。 そんな古いデータは普通書き換えないと思うけど、どうだろう。
Jcode.pm がないのに RSS を出力する設定にできちゃう
エラーチェックしてません。すみません。
んで、Jcode.pm のかわりに jcode.pl を使ってると、 多分 RSS ファイルが UTF-8 を言いつつ実は Shift_JIS なファイルを作成、 しちゃうんじゃないかなあと思うのです。 実際にテストしてないので、もしかしたら別の結果になるかもしれませんが、 まっとうな UFT-8 なファイルは絶対に出来ません。
Jcode.pm は最近はたいていのサーバーにインストールされてますが、 @nifty とか @nifty とか @nifty とかで使おうとしてる人は RSS 出力はあきらめてください。 (自力で自分の cgi-bin に Jcode.pm 突っ込める人は別)
過去ログ
実は前からちょっと自分でも欲しいんだけど、データの保存方法の実装で悩んでおります。

その他

おことわり

履歴

2001.1.10 Ver0.01
2001.1.? Ver0.02
2001.02.26 Ver0.03
2001.02.26 Ver0.04
2001.02.27 Ver0.05
2001.12.04 Ver0.07
2002.02.15 Ver0.08
2002.02.19 Ver0.09
2002.04.10 Ver1.00
2002.05.16 Ver1.01
2002.05.17 Ver1.02
2002.05.20 Ver1.03
2002.05.27 Ver1.04
2002.06.17 Ver1.05
2002.07.01 Ver1.06
2002.07.31 Ver1.07
2002.08.07 Ver1.08
2002.08.28 Ver2.00
2002.09.03 Ver2.01
2002.09.17 Ver2.02
2002.08.17 Ver3.00(テスト版)
2002.09.22 Ver3.01(人柱版)
2002.09.24 Ver3.02(ひきつづき人柱版)
2002.09.24 Ver3.03(ひきつづき人柱版)
2002.11.04 Ver3.04
2002.02.14 Ver3.05
2002.09.24 Ver3.06

Kazuho/V.Sonic CXM01411@nifty.ne.jp fiptips.com