『訪問先一覧』で利用しているプログラム(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";