圧縮一括表示 拡張機能 On-line manual
for うぇぶ会議室システム

Counter

Go back


特徴

一括表示機能はNKさんによって作成され,にあさんの提供しているうぇぶ会議室システムの拡張機能です。
基本機能である一括表示の使用方法についてはWebForum Extensionを 参照して下さい。

ここで紹介するのは一括表示データを圧縮し,各部屋のデフォルトページに圧縮データのリンクを挿入するよう改造したもの。
記事一括表示機能部分についてインタフェースの互換は保たれています。

この一括表示データはオフラインで読む事を前提とする為,記事に含まれる絶対リンクを相対リンクに置き換えます。
置き換える絶対リンクは会議室に投稿された参照記事に限ります。
アーカイブ(一括)された記事のブロックを跨ぐリンクも実現されています。
置き換えられるリンクは参照する記事番号を一つのアーカイブの記事数を元に算出されます。
よってアーカイブする記事数は固定値にする必要があります。
会議室間の絶対リンクが張られているような場合,それぞれの会議室のアーカイブ記事数もそろえる必要があります。

アーカイブ操作は操作を簡便且つミスの無いようにする為,アーカイブ(一括)された記事のブロック番号と管理者コードのみの指定で行われます。

別途必要なモジュール/ファイル

NamePurposeLinkComments
init_room.pl各部屋のデフォルトページに圧縮データのリンクを挿入する アーカイブファイルに含まれています このモジュールは本スクリプトと同じディレクトリに入れておく
loadparaex.pl各種定義ファイルをloadする Perl script index このモジュールは本スクリプトと同じディレクトリに入れておく
forum.lst各種設定情報を定義したファイル アーカイブファイルに
サンプルが含まれています
このファイルは変数$parametersで指定される
template.html 生成された圧縮ファイルのリンクを挿入するHTMLテンプレートファイル
各会議室毎に作成する。リンクは定義されたkeywordと置換される。
アーカイブファイルに
サンプルが含まれています
このファイルはroom_name型の識別子templateで指定される
debuglog.plデバッグ用標準エラー出力のログを作成する Perl script index デバッグ時に使用する。通常は必要ない

スクリプトの引数

room=room_name 会議室名
sort=sort_order 記事のソート順
mainte=function メインテナンス機能の種別(archive以外は用意されていません)

例:cgi-bin/archive-ex.cgi?room=test&sort=date&mainte=archive

ユーザーの環境に合わせる修正

archive-ex.cgi

Variable NameExplanation
perlのpath使用するサイトでのperlコマンドへのpath
require ("debuglog.pl") デバッグログモジュールのパスを指定する。
デフォルトではコメントアウトされている必要に応じて使用する。
$debuglog 標準エラー出力を保存するファイル名を指定する。 ログを作成するにはdebuglog.plが必要
デフォルトではコメントアウトされている必要に応じて使用する。
&Debuglog'RedirectSTDERR($debuglog) 標準エラー出力を指定ファイルにリダイレクトする。
本サブルーチンはdebuglog.plに定義されている。 デフォルトではコメントアウトされている必要に応じて使用する。
&Debuglog'ResumeSTDERR 標準エラー出力のリダイレクトを元に戻す。
本ルーチンを呼び出す場合には&Debuglog'RedirectSTDERR($debuglog)が実行されていなければならない
本サブルーチンはdebuglog.plに定義されている。 デフォルトではコメントアウトされている必要に応じて使用する。

init_room.pl

Variable NameExplanation
perlのpath使用するサイトでのperlコマンドへのpath
$common_path $parametersを定義する為のワーク
それぞれを直接定義すれば必要ない
require ("loadparaex.pl") ロードパラメータモジュールのパスを指定する。
$parameters パラメータ定義ファイル名とパスを指定する。
デフォルトは'forum.lst'で変更する必要が無ければそのままで良い。
パラメータには以下に示すものを定義する。

定義ファイルについて詳細はloadparaex.pl online manualを参照

圧縮操作に必要な情報,各部屋のデフォルトページに圧縮データのリンクを挿入に必要な情報を定義する。
各情報は会議室名毎に定義する。
定義データはroom_nameによって選択される。
サンプルデータはプリプロセッサディレクティブを使用してダイナミックに変化します。
tarコマンドパスとオプション
一括表示データをアーカイブする時に実行するアーカイバのパスとオプションスイッチを定義する
	
	room_name tar{
		tar command path and options;
	};
	
	
gzipコマンドパスとオプション
tarによってアーカイブされたデータ圧縮する時に実行するgzipのパスとオプションスイッチを定義する。
	
	room_name gzip{
		GNU Zip command path and options;
	};
	
	
一括表示記事のファイル名
記事をアーカイブしたファイル名
ファイル名はsprintfを使って変換される。
必ずブロック番号に置き換わるフィールド指定子'%d'を入れる事
	
	room_name arch_name{
		Archive base name;
	};
	
	
一括表示記事数
一括表示する記事数を定義する
	
	room_name block_size{
		archive article count;
	};
	
	
一括表示記事の圧縮ファイルのリンク挿入テンプレート
一括表示記事の圧縮ファイルのリンク挿入テンプレートと
リンクを挿入したHTMLの出力ファイル名そして出力用一時ファイル名を定義する。
一旦,一時ファイルにHTMLファイルを出力した後リネームでファイル名を変える。
	
	room_name template{
		HTML template;
		output HTML;
		output work;
	};
	
	
一括表示記事の圧縮ファイルへのリンク書式
次に示すkeywordにより置き換えられる一括表示記事の圧縮ファイルへのリンクの書式を定義する。
書式はsprintfを使って変換される。2つの%sがそれぞれ続く'URL','title'の定義の順で置き換わる。
'URL'は圧縮ファイルのパスを示し'title'は以下に示すtitleで定義されたタイトル名もしくはファイル名を示す。
	
	room_name format{
		hyper link format string with 2 %s that is replace by following word;
		URL or title;
		title or URL;
	};
	
	
テンプレートファイル中のキーワード
templateで示されたリンク挿入テンプレートに含まれる
圧縮一括表示記事のリンクに置き換えられるキーワードを定義する。
	
	room_name keyword{
		replaced keyword by compressed archive article file in template;
	};
	
	
圧縮一括表示記事のサフィックス
圧縮一括表示記事のサフィックス
各会議室のディレクトリ内にあるファイルでマッチするものが圧縮一括表示記事として扱われる。
	
	room_name suffix{
		suffix of compressed archive article file ;
	};
	
	
圧縮一括表示記事のタイトル
圧縮一括表示記事のリンクに使われるホットキーを定義する。
定義されて無い場合は圧縮一括表示記事ファイル名が使用される。
この定義はformatで定義される'title'で参照される。
圧縮一括表示記事名とホットキーが'&'によって結合される。
	
	room_name title{
		file name of compressed archive article without path & hot key;
	};