トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/122

ページの作成や編集にはユーザ登録が必要です。

【FSWikiLite】Diffプラグイン

  • 投稿者: Qz
  • カテゴリ: 新規
  • 優先度: 低
  • 状態: 提案
  • 日時: 2004年05月24日 23時15分02秒

 内容

FSWikiLite用のDiffプラグインです。興味本位で作ってみました。

別途、Algorithm::Diffモジュールが必要なので、通常版のFSWikiを解凍して入手するか、CPANあたりから、入手してください。

差分の表示は、面倒なのでpreで囲ってしまっています。なので気に入らない方は適当に修正してください。

 インストール方法

diff.cgiの先頭行の、

#!/usr/bin/perl

を環境に合わせてください。そして、wiki.cgiと同じディレクトリにコピーして、パーミッションも、環境に合わせてください。

Algorithm::Diffモジュール(Diff.pm)をlibディレクトリにアップロードしてください。[1]

次にメニュー部分に、「差分」という表示をさせるための方法を説明します。

setup.plに、以下の行を追加してください。

$DIFF_SCRIPT     = 'diff.cgi';

common.plのヘッダを表示する関数print_headerのメニュー部分のお好きなところに、

if($show==1){
    print "    <a href=\"$DIFF_SCRIPT?p=" . &Util::url_encode($in{"p"}) . "\">差分</a>\n";
}

と記述してください。

たぶん、これでインストールはできると思います。

 メニューに差分を追加する例

ヘルプの左隣に「差分」と表示させる例です。

#-------------------------------------------------------------------------------
# ヘッダを表示
#-------------------------------------------------------------------------------
sub print_header {
    my $title = shift;
    my $show  = shift;

    print "Content-Type: text/html;charset=EUC-JP\n";
    print "Pragma: no-cache\n";
    print "Cache-Control: no-cache\n\n";
    print "<html>\n";
    print "<head>\n";
    print "<title>".&Util::escapeHTML($title)." - $SITE_TITLE</title>\n";
    print "<link rel=\"stylesheet\" type=\"text/css\" href=\"$THEME_URL\">\n";
    print "</head>\n";
    print "<body>\n";

    if(&Wiki::exists_page("Menu")){
         print "<div class=\"main\">\n";
    }

    print "<div class=\"adminmenu\">\n";
    print "  <span class=\"adminmenu\">\n";
    print "    <a href=\"$MAIN_SCRIPT?p=FrontPage\">FrontPage</a>\n";
    print "    <a href=\"$EDIT_SCRIPT?a=new\">新規</a>\n";
    if($show==1){
        print "    <a href=\"$EDIT_SCRIPT?a=edit&p=".&Util::url_encode($in{"p"})."\">編集</a>\n";
    }
    print "    <a href=\"$MAIN_SCRIPT?a=search\">検索</a>\n";
    print "    <a href=\"$MAIN_SCRIPT?a=list\">一覧</a>\n";

    ################################
    #追加
    if($show==1){
         print "    <a href=\"$DIFF_SCRIPT?p=" . &Util::url_encode($in{"p"}) . "\">差分</a>\n";
    }
    #追加終わり
    ################################

    print "    <a href=\"$MAIN_SCRIPT?p=Help\">ヘルプ</a>\n";
    print "  </span>\n";
    print "</div>\n";

    print "<h1>".&Util::escapeHTML($title)."</h1>\n";
}

 ライセンス

GPL[2]

 コメント

  • @niftyにFSWikiLiteを設置しています。最近「差分」があると便利だと思いこのプラグインを導入してみましたが、「CGIエラーが発生しました」となり動作しません。@niftyの場合特別に「diff.cgi」や「Diff.pm」の内容を変更しなければ動作しないのでしょうか?もし変更しなければいけないという事であってもどこを変更すればよいのか判りません。よろしくお願いいたします。 - Daichan (2006年06月30日 00時10分38秒)
  • 自己解決できました。 - Daichan (2006年07月03日 09時34分43秒)
お名前: コメント:
  • [1]lib/Algorithmディレクトリではなくて、lib直下にアップロードしてください。
  • [2]いつも記述するのを忘れてしまいます。他の拙作のプラグインもGPLでお願いします。
diff.zip

最終更新時間:2006年07月14日 06時49分00秒