Look Modified

SSI

サンプルダウンロード構成ファイル設置方法表示設定ご注意

 SSIまたはJavaScriptで、HTMLファイル内に更新日を表示するスクリプトです。特長は次の通りです。

  • 複数のファイルの更新日時を調べ、そのうちの最新日を表示します(newモード)。
  • 複数のファイルの更新日時を調べ、指定ファイルの更新日を表示します(eachモード)。
  • これらを同時に利用できます。
  • また、newモード時に比較対象から外したい例外ファイルを1つ設定できます。
  • SSI表示のほかJavaScript表示も可能なので、多くのサーバで使えます。
表示サンプル
SSI表示JavaScript表示
・最新の最終更新日
2012/12/25(Tue) 15:42:58
・個別ファイルの更新日
ファイル1:2012/12/25(Tue) 15:42:42
ファイル2:2012/12/13(Thu) 13:26:22
ファイル3:2012/12/25(Tue) 15:42:58
・最新表示の例外ファイル(1つ指定可能)
ファイル4:2012/12/13(Thu) 13:26:22
・エラー表示のサンプル
ファイル5:ERROR : 指定ファイル sample.html が見つかりません。
・最新の最終更新日
・個別ファイルの更新日
ファイル1:
ファイル2:
ファイル3:
・最新表示の例外ファイル(1つ指定可能)
ファイル4:
・エラー表示のサンプル
ファイル5:
ダウンロード
環境に応じて以下よりダウンロードしてください(Virex、Norton AntiVirusにてウイルスチェック済)。最新バージョンは1.0。

SIT形式:lookmodified_10.sit(7KB)
LHA形式:lookmodified_10.lzh(6KB)
ZIP形式:lookmodified_10.zip(6KB)

※Mac版IE等一部のブラウザではダウンロードファイル名が異なる場合がありますが、そのまま解凍すれば問題ありません。
構成ファイル
解凍すると、以下のグリーンの文字の2つのファイルになります。
  • lookmodi.cgi……スクリプト本体
  • readme.html……解説ファイル(サーバへのアップロードは不要です)
構成例(参考)

public_html / …… ホームディレクトリ
    |
    |-- lookmodi.cgi(755)
    |
    |-- index.shtml …… トップページ(表示ページ)
    |-- directory / …… 任意のディレクトリ
           |-- aaaa.html …… 任意のファイル(対象ファイル)

lookmodi.cgiから見た対象ファイルの相対パス:./directory/aaaa.html
index.shtmlから見たlookmodi.cgiの相対パス:./lookmodi.cgi
lookmodi.cgiの仮想パス:/public_html/lookmodi.cgi
cgi-binにスクリプトを置く場合の構成例(参考)

public_html/ …… ホームディレクトリ
    |
    |-- index.shtml …… トップページ(表示ページ)
    |-- directory / …… 任意のディレクトリ
    |       |-- aaaa.html …… 任意のファイル(対象ファイル)
    |
    |-- cgi-bin / …… cgi専用ディレクトリ
            |
            |-- lookmodi.cgi(755)

lookmodi.cgiから見た対象ファイルの相対パス:../directory/aaaa.html
index.shtmlから見たlookmodi.cgiの相対パス:./cgi-bin/lookmodi.cgi
lookmodi.cgiの仮想パス:/public_html/cgi-bin/lookmodi.cgi
  • スクリプトはフォルダに入れず(入れてもかまいませんが)に、「lookmodi.cgi」をそのまま、cgi-bin限定の場合はcgi-binに、それ以外は表示するトップページと同じ第1階層に置くのが簡単です。
  • カッコ内の数字はパーミッションです。サーバによっては755→700など異なるケースもありますから、ご確認ください。
スクリプトの設置方法
lookmodi.cgi」をテキストエディタで開き、1行目のパスを合わせます。
通常は「#!/usr/bin/perl」「#!/usr/local/bin/perl」のいずれかです。
続いて初期設定で、(1)対象ファイル、(2)表示フォーマット、(3)例外ファイルをそれぞれ指定します。必要に応じて赤字部分を変更してください。

 (1) 対象ファイルの指定
対象ファイルは、上記構成図の「lookmodi.cgiから見た対象ファイルへの相対パス」を参考にしてください。[ ]内の数値がファイル番号になります。
# 調べるファイルをこのCGIからの相対パスで指定
$filename[0] = "./directory/aaaa.html";
$filename[1] = "./directory2/bbbb.html";
$filename[2] = "./directory3/cccc.html";
$filename[3] = "";
$filename[4] = "";
対象ファイルを追加したい時は、行をコピーしてファイル番号をひとつずつ増やします。

 (2) 表示フォーマットの指定
あらかじめセットしてあるなかからフォーマットを選んで、その番号で指定します。
# 表示データのフォーマット
# 0:2004/01/01(Sun) 00:00:00
# 1:2004年01月01日(日) 00:00:00
# 2:2004/01/01(Sun)
# 3:2004年01月01日(日)
# 4:2004/01/01
# 5:2004.1.1
# 6:2004年1月1日
# 7:Jan 1, 2004
$date_format = "3";

 (3) 例外ファイルの指定
最新の更新日表示で比較対象から外したい例外ファイルがあるときは、そのファイル番号を指定します。ファイル番号は対象ファイルの[ ]内の番号です。
# newモード時に比較対象から除く例外ファイルをファイル番号で指定(なければ指定不要)
$except_no = "2";

初期設定がすんだら「lookmodi.cgi」をテキストモードでサーバに転送し、パーミッションを設定します。
表示するHTMLファイル側の設定
トップページなどHTMLファイルの表示させたい位置で、次のように指定します。末尾に「?」をつけ、「ssi」や「js」という引数を付加します。複数の引数を付ける場合は「+」で区切ります。
表示データにスタイル的な処理はしてありません。HTMLファイル上で適宜CSSスタイルシートなどご利用ください。
 (1) SSI表示設定例
SSI表示の場合、多くのサーバではHTMLファイルの拡張子を「.shtml」にする必要があります。
cgiスクリプトを仮想パスで指定します。上記構成図の「lookmodi.cgiの仮想パス」を参考にしてください。もし仮想パスがわからないときは、相対パスでも表示する場合があります。
  • ノーマル(ファイル番号[0]の更新日を表示)
    <!--#include virtual="/public_html/lookmodi.cgi?ssi" -->
  • newモード(最新の更新日を表示)
    <!--#include virtual="/public_html/lookmodi.cgi?ssi+new" -->
  • eachモード(指定ファイルの更新日を表示)
    <!--#include virtual="/public_html/lookmodi.cgi?ssi+each+ファイル番号" -->
 (2) JavaScript表示設定例
cgiスクリプトを相対パスで指定します。上記構成図の「index.shtmlから見たlookmodi.cgiの相対パス」を参考にしてください。
JavaScript表示の場合、HTMLファイルのヘッダに以下のメタ属性を指定することをおすすめします。
<META http-equiv="Content-Script-Type" content="text/javascript">
  • ノーマル(ファイル番号[0]の更新日を表示)
    <SCRIPT LANGUAGE="JavaScript" type ="text/javascript" SRC="./lookmodi.cgi?js"></SCRIPT>
  • newモード(最新の更新日を表示)
    <SCRIPT LANGUAGE="JavaScript" type ="text/javascript" SRC="./lookmodi.cgi?js+new"></SCRIPT>
  • eachモード(指定ファイルの更新日を表示)
    <SCRIPT LANGUAGE="JavaScript" type ="text/javascript" SRC="./lookmodi.cgi?js+each+ファイル番号"></SCRIPT>
 (3) 留意点
「〜.cgi?」に続く引数の指定は、たとえば次のようにします。次の例は、SSI表示でファイル番号[2]の更新日を表示するケースです。
./lookmodi.cgi?ssi+each+2
引数は、順番通りに正しく記述してください。間が抜けると正しく動きません。たとえば、「./lookmodi.cgi?ssi+2」はエラーになります。
"ssi"または"js"の指定がないと正しく表示できませんので、ご注意ください。
"new"または"each"のモード指定がない場合は、それぞれファイル番号[0]の更新日を表示します。調査ファイルが1つだけの場合は、これでもOKです。
  • 仮想パス」とは「http://サーバ名/パス名」のうち「/パス名」の部分です。
    ディスクのディレクトリの第1階層が、ルートディレクトリとしてスラッシュ(/)で示されます。公開されているwwwサーバのルートディレクトリは、実際のディスク上のディレクトリの位置を示すパスを省略して関連づけたいわばショートカットです。そこでこれを仮想の(/)とし、そこから始まるパスを「仮想パス」と呼ぶそうです。
  • 「#exec」については「#exec cgi」でも「#exec cmd」でも、私の使用しているサーバ(Apache1.3.xx)では、引数を渡す動作確認ができませんでした。
  • SSIやパスについて詳しくは「とほほのWWW入門」が参考になります。
    「パス」について
    「#Include」について
    「#exec」について
利用にあたってのご注意
本スクリプトはフリーウェアです。下記にご留意の上、私用、商用を問わず自由に利用・改造・流用・再配布していただいてけっこうです。
著作権の表示は削除しないでください。
改造は自己責任で行ってください。
本スクリプトの開発環境はMacOS X 10.3.3です。いかなる環境においても動作することを保証するものではありません。
このスクリプトの利用が原因で起こるいかなる損害にも、えでぃっとはうすは一切の責任を負いません。
著作・制作
えでぃっとはうす


][