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

BugTrack-plugin/80

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

保存時に強制的にcommentプラグインは存在しません。をつけてみるプラグイン

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

 内容

BBS-サポート掲示板/127を読んで、興味本位で作ってみました。

プラグイン名の良い名前が思いつかない(いつもですが)ので、とりあえず、testという名前で^^;

 新規保存時にのみ、commentプラグインは存在しません。を付加する。

Install.pm

package plugin::test::Install;
sub install {
   my $wiki = shift;
   $wiki->add_hook("save_before" ,"plugin::test::Test");
   $wiki->add_hook("save_after" ,"plugin::test::Test");
}
1;

Test.pm

package plugin::test::Test;
sub new {
   my $class = shift;
   my $self = {};
   $self->{new} = 0;
   return bless $self,$class;
}
sub hook {
    my $self = shift;
    my $wiki = shift;
    my $name = shift;
    my $cgi  = $wiki->get_CGI;
    my $page = $cgi->param("page");
    if($name eq "save_before"){
        $self->{new} = $wiki->page_exists($page) ? 0:1;
    }elsif($name eq "save_after"){
        if($self->{new}){
            my $src = $wiki->get_page($page);
            $src .= "\n{{comment}}\n";
            $wiki->save_page($page, $src);
            $self->{new} = 0;
        }
    }
}
1;

保存前に、ページの有無を調べて、ページが存在しなければ、新規なので、保存後に、保存したページのソースに直接、commentプラグインは存在しません。をつけたして、保存します。

複数のユーザが、同時にページの保存をした際の挙動に、かなり自信ないです^^;;(特にmod_perl上で動作している場合)

あとは、commentプラグインは存在しません。を編集した際に削除される恐れは、当然あります。というわけで、保存時に、commentプラグインは存在しません。がなければ、勝手につけてしまおうというプラグインも作ってみました。

 保存時にcommentプラグインは存在しません。がなければ、勝手に付加する。

Install.pm

package plugin::test::Install;
sub install {
    my $wiki = shift;
    $wiki->add_hook("save_after" ,"plugin::test::Test");
}
1;

Test.pm

package plugin::test::Test;
sub new {
   my $class = shift;
   my $self = {};
   return bless $self,$class;
}
sub hook {
    my $self = shift;
    my $wiki = shift;
    my $cgi  = $wiki->get_CGI;
    my $page = $cgi->param("page");
    my $src = $wiki->get_page($page);
    if($src !~ /\n\{\{comment\}\}(\n|$)/){
        $src .= "\n{{comment}}\n";
        $wiki->save_page($page, $src);
    }
}
1;

 コメント

お名前: コメント:

最終更新時間:2007年01月22日 07時47分05秒