last updata : 2000/02/14

diary.cgi (Perlスクリプト)

特 徴

カレンダー表示付きweb日記です。 表示スタイルは、ユーザーが用意したHTMLファイルを読み込み そのファイルに設定された変数やブロックを文字列置換して表示します。 また、1ヶ月分毎にHTMLファイルを残す事もできます。

日付の繰り返し処理が多いので重くなっています。

Ver 2.0 更新(2000/02/14)

Ver 2.0からの変更点

更新時間設定機能を追加

ここから ダウンロード[diary20.lzh] ができます。

  1. サンプル表示
  2. 一番下の入力に「guest」と入力し送信ボタンを押すと書き込み画面が出ます。(書き込みはできません。)

  3. diary.html
  4. web日記表示用 HTMLファイルです。

  5. month.html
  6. 保存用 HTMLファイルです。

設定について

1行目 - Perlのパス設定

#!/usr/local/bin/perl

各プロバイダの設定に合わせて変更してください。

日本語コード変換ライブラリの設定

require './jcode.pl';

jcode.plを指定します。相対/絶対アドレスどちらでも大丈夫です。

変数設定

$password - パスワード

web日記への書き込みを行なう為の管理者パスワードです。 必ず設定が必要です。

$htmlfile - 日記表示用 HTML

このファイルを読み込み、日記を表示します。 相対/絶対アドレスどちらでも大丈夫です。

$monthfile - 先々月の1カ月日記用 HTML

保存用のHTMLファイルです。空白にした場合は、作成されません。 相対/絶対アドレスどちらでも大丈夫です。

$ChangeHour - 更新時間

この時間に日記表示を切り換えます。それまでは前日の日記を表示します。 0~23の数字を入力します。 21(午後9時)を初期値に入れてあります。

$datadir - データディレクトリ

表示用HTMLや保存用HTMLを生成する為のディレクトリです。 相対/絶対アドレスどちらでも大丈夫です。 必ず最後は / を付けてください。

このディレクトリのパーミッションは、0777を指定してください。 安全の為ディレクトリ名を変更した方が良いでしょう。


難しい設定(通常変更する必要はありません。)

$flk - ファイルロック機能

ファイルを同時書き込みを禁止する為に、排他的処理を行なう機能です。

0 で機能を使わない。 1 で機能を使う設定になります。

$ref - 他ページからの書き込み

サーバー制限機能です。通常は変更しないでください。

$lnk - オートリンク機能

http://から始まるURLを日記に書き込んだ時自動的にリンクする機能です。

0 で機能を使わない。 1 で機能を使う設定になります。

$pic - 画像張り付け機能

日記に画像を表示します。下記の画像用ディレクトリと連動して使用します。

0 で機能を使わない。 1 で機能を使う設定になります。

$fnt - <B><I><FONT>の使用

文字修飾用のタグの使用を許可します。

0 使用しない。 1 使用する。

<B>と<I>普通に使えますが<FONT>は、下記の制限があります。

使えるFONT は、
<FONT color="xxx">~</FONT>< br/> <FONT size=x>~</FONT>
colorとsizeを同時に指定はできません。( <FONT color="red" size=1> は× )
colorは、必ず " " で囲みます。color=red と指定するとエラーになります。 不必要な空白等がありますとエラーになります

$rev - 月表示の並び指定

月の日記表示を1日から月末に表示していくか 当日から1日へ表示するか指定します。 0 順列(1日から月末へ) 1 逆列(当日から1日へ) の設定になります。

$pictdir - 画像用ディレクトリ

この指定したディレクトリの画像を日記に表示する事ができます。 必ず最後は / を付けてください。 $pictdir='../pictures/'; と設定し、日記の書き込み時に『$pict="test.jpg"』 の様に書き込むと、<IMG src="../pictures/test.jpg" alt="test.jpg"> に変換されイメージを表示します。

@month - 月の文字表示

1月から12月迄の文字による表記の設定です。

@week - 週の文字表示

日曜から土曜迄の文字による表記の設定です。

$ENV{'TZ'} - 環境変数

ローカルタイム(日本時間)を設定します。

$method - フォーム送信リクエスト

通常はPOSTです。使えない場合GETにしてください。

HTMLファイルについて

日記表示用htmlと保存用1ヶ月htmlが設定できます。 変数やブロックを使い表示を指定します。 その他は、通常のhtmlファイルと同じです。

カレンダーに付いて..

カレンダー表示は、万年カレンダーとして組み込んであります。 変数の $N1~$N37及び$L1~$L37 が対象です。
$N1/$L1 が第一週目の日曜日になります。
$N2/$L2 が第一週目の月曜日になります。

これを順番に繰り返して..
$N36/$L36 が第六週目の日曜日になります。
$N37/$L37 が第六週目の月曜日になります。

日にちは、この変数を見て生成されます。 1999/12/1は、水曜日ですので$N4が 1 に変換されます。 変換できない変数は、文字が入りません。

テーブルタグを使って表示すると良いようです。

変数

日記表示用htmlに使用できる変数です。この変数は、本cgiにより数字や文字に置き換えられます。

  1. 引数を持たない変数
  2. 引数が必要な変数

ver1.2で引数があるhtml用変数はありません。

変数名機 能 変数名機 能
$Tyear 当日の年 $Dyear 表示する日記の年
$Tmon 当日の月(数字) $Dmon 表示する日記の月(数字)
$Tmonth 当日の月(文字) $Dmonth 表示する日記の月(文字)
$Tday 当日の日 $Dday 表示する日記の日
$Twday 当日の曜日 $Dwday 表示する日記の曜日
       
$Lyear 先月の年 $Nyear 今月の年( ≠ $Tyear)
$Lmon 先月の月(数字) $Nmon 今月の月( ≠ $Tmon)
$Lmonth 先月の月(文字) $Nmonth 今月の月( ≠ $Tmonth)
$L1 ~ $L37 先月のカレンダー用 $N1 ~ $N37 今月のカレンダー用
       
$title 日記のタイトル $comment 日記の本文
       
       

変数一覧

ブロック

日記表示用htmlの特定の開始コメント文~終了コメント文の間に挟まれた部分を指します。 この部分にカレンダー用変数以外の変数を入れる事により、メッセージを生成することができます。

また、この部分は全て削除されたり置換されたりしますので、必ず開始タグ-終了タグが切れないようにしてください。

ブロック一覧

開始コメント文
|
終了コメント文
内容
<!-- pass -->
日記書き込み用パスワード入力部
この部分にパス入力フォームが生成されます。 終了コメント文はありません。
<!-- Show Diary -->
|
<!-- End Show Diary -->
一日分の日記
表示できる日記が無い場合削除されます。
<!-- Non Diary -->
|
<!-- End Non Diary -->
一日分の日記が無かった時のコメント用
表示できる日記が有る場合削除されます。
<!-- Show Monthly -->
|
<!-- End Show Monthly -->
一ヶ月分の日記
この部分を一日分の日記表示として、表示できる日記があるだけ繰り返し表示します。表示できる日記が無い場合削除されます。

設置について

基本構成
/public_html/             パーミッション
    |- /pictures/
    |     |- (imagefiles)   <644> 日記の中に張り付けられる画像ファイル
    |- /cgi-bin/
          |- diary.cgi      <755> 本cgi
          |- diary.html     <644> 日記表示用html(サンプル)
          |- monthly.html   <644> 1ヶ月保存用html(サンプル)
          |- test.cgi       <644> 日記表示用gif(サンプル)
          |- jcode.pl       <644> 日本語コード変換ライブラリ
          |- /data/         <777> 日記データを入れるディレクトリ

dataディレクトリを作ります。