『訪問先一覧』で利用しているプログラム(WebLibrary)の改良について
1.WebLibrary Ver0.89 のオリジナルは
・WebLibraryのオリジナルは、我楽多cgi@nifty から入手できます。
・このホームページから、WebLibrary をダウンロードします。
・このプログラムは、perlで組まれており、画像の添付できる簡易データベースです。
【注意事項】 改良は、あくまで自己責任で行ってください。当方は、責任は持てませんので、
必ずバックアップを取って、試してから行ってください。
2.WebLibraryにソート(並び替)機能を追加
データを追加や修正した後に、ソートしないので見にくいので、簡単にソート機能を追加しました。
(1)プログラム本体の行末に、下記のサブルーチンをカット&ペーストして追加します。
## ログのソート 始め------------------------------------------
sub sort {
foreach $lines (@new) {
($no,$indx,$class) = split(/,/, $lines);
# 索引を2文字に省略し、登録順と分類を合成
$index2 = substr($indx,0,4);
$no2 = sprintf('%03d',$no);
$sort_key = $index2.$class.$no2;
#ソート対象項目を行先頭に付加
push (@slog ,$sort_key. ",". $lines ) ;
}
#行先頭により昇順ソート(索引、登録順、分類でソート)
@slog = sort(@slog) ;
@new = () ;
#行先頭にあるソート対象項目を削除して@newに格納
foreach $lines (@slog) {
@_ = split(/,/,$lines) ;
shift(@_) ;
$lines= join(",",@_) ;
push (@new , $lines) ;
}
}
## ログのソート 終り------------------------------------------
|
(2)ソートしたい箇所(リスト表示や更新処理など)に「&sort;」を挿入して、ソート機能を追加します。
# ログのリスト表示 ------------------------にも挿入
&sort;
#ページ制御
#更新処理-----------------------------------にも挿入
&sort;
# ログを更新
|
以上です。
(3)ソートキーの変更
「# 索引を2文字に省略し、登録順と分類を合成」の下に、ソートキーとなる変数を順番を考えた合成すれば、ソートキーが出来上がります。
# 索引を2文字に省略し、登録順と分類を合成
$index2 = substr($indx,0,4);
$no2 = sprintf('%03d',$no);
$sort_key = $index2.$class.$no2;
|
この部分を変更します。
(4)ソート機能を、「昇順ソート」から「降順ソート」に切替える
perlのsort関数の使い方で、変更できます。
#行先頭により昇順ソート(索引、登録順、分類でソート)
#@slog = sort(@slog) ;
#行先頭により降順ソート(索引、登録順、分類でソート)
@slog = sort { $b cmp $a } (@slog) ;
|
3.データの更新日の自動表示
データの更新日をデータのファイルのタイムスタンプから自動的に表示するようにした。
(1)データのファイル名をfilenameに記入して、#フォーム情報デコードの後半部に追加します。
# 更新日の取得
$name = "filename";
($sec, $min, $hour, $day, $mon, $year) = localtime((stat($name))[9]);
$year += 1900;
$mon ++;
|
(2)更新日を表示した場所($submsg)の後に、print文を追加。
## 更新日を追加
print "更新日:\t$year/$mon/$day $hour:$min:$sec\n";
|
|