FreeStyle Wikiに更新履歴を表示する

FreeStyle Wiki(FSWiki)のトップページ(FrontPage)に、投稿の更新履歴(変更履歴)を表示するようプログラムを改造しました。
かなり手を抜いてます。プラグインじゃありません。patchファイルの提供もありません。プログラムを直接変更します。

ページの更新履歴をファイルに保存する。

ページ更新時に、更新履歴保持用のファイルに書き込みます。
cgi-bin/FSWiki/lib/Wiki.pmを修正します。

sub save_page {
(中略)
# パラメータを読み込み直す
$content = $self->get_CGI()->param("content");

if($self->{"storage"}->save_page($pagename,$content,$sage)){
if($content ne ""){
$self->do_hook("save_after");
#修正開始
my($d, $m, $y) = (localtime(time))[3..5];
$y += 1900;
$m++;
my $line = "$y.$m.$d - [[$pagename]]\n"; #更新情報のフォーマット my $exist = 0; open(RECENT, "</FULL/PATH/TO/CGI-BIN/FSWIKI/data/recentupdate.wiki"); my @updates; @updates = ; close(RECENT); foreach my $update(@updates){ if($line eq $update){ $exist = 1; } } if($exist == 0){ #同じファイル・同じ日付の時はファイルを更新しない unshift(@updates, $line); open(RECENT, ">/FULL/PATH/TO/CGI-BIN/FSWIKI/data/recentupdate.wiki"); print(RECENT @updates); close(RECENT); } #修正終了 } else { $self->do_hook("delete"); } (後略) } }

トップページをWiki上で修正する

トップページ(FrontPage)を編集して、以下の内容を追記します。

!!!更新情報
{{include "recentupdate"}}

これでトップページに更新情報が表示されるはずです。
もし「ファイルがありません」が出たら、「recentupdate」ページを新規で作成してみてください。

おまけ

更新ファイルができたことだし、自サイトのトップページに最新変更日時を表示するようにしました。

<blockquote<!--#flastmod virtual="./CGI-BIN/FSWIKI/data/recentupdate.wiki"-->

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です