[ 新規 | 編集 | 差分 ] [ 検索 | 一覧 | FrontPage ] [ 履歴 (RSS) | 差分履歴 (RSS) ] [ ログイン ]
【PR】Amazon | SL-C3000 | SL-C1000(3/18発売!) | SL-C860 | SL-6000W | SL-6000L | SL-6000N

WalWiki/カスタマイズ/ページ編集確認

編集

最初の編集時に編集確認画面を表示します。

[confirm edit]

編集

最初に編集を行う際に確認画面を表示し、編集を行うかどうかの確認を行います。
最近になって増えてきているSPAM書き込みの対応になればと思っています。
確認画面での選択項目は変更可能&表示順はランダムなので、海外からのSPAMに特に有効だと思われます。

また、記名有りのコメントを投稿しても、編集可能状態になります。

関連するカスタマイズ

編集

resource.txtへの追加

編集
confirmmsg編集を行いますか?初回編集時のみ、Cookieにデータを保存する必要があります。
confirmyes編集を行います。
confirmno編集を行いません。

confirmno には : で区切って複数の選択肢を記述する事が出来ます。

例)

confirmno=編集を行いません。:考え中です。:やっぱりやめます。

@cookie_listへの追加

編集

myconfirmを追加します。

my @cookie_list = ('mypassword','myname','myindexlooks','mycss','myconfirm');   # yakty add [use cookie]

check_confirm()追加

編集
# yakty add [confirm edit] start
sub check_confirm
{
    if($form{myname} ne ""){
        &set_cookie('myconfirm', $resource{confirmyes});
        return 0;
    } elsif($form{myconfirm} eq $resource{confirmyes}){
        return 0;
    } else {
        &print_confirmform;
        return 1;
    }
}
# yakty add [confirm edit] end

print_confirmform()追加

編集
# yakty add [confirm edit] start
sub print_confirmform
{
    my $page = $form{mypage};
    &print_header($page);
    print <<"EOD";
<form action="$url_cgi" method="post" class="confirm">
<p>
$resource{confirmmsg}
<br>
EOD
    foreach my $k (keys %form){
        next if($k eq 'myconfirm');
        print qq(<input type="hidden" name="@{[ &escape($k) ]}" value="@{[ &escape($form{$k}) ]}">\n);
    }
    my @result = ($resource{confirmyes}, split(/:/, $resource{confirmno}));
    while(@result){
        my $r = splice(@result, int(rand(scalar(@result))), 1);
        my $er = &escape($r);
        print qq(<input type="radio" name="myconfirm" value="$er">$er<br>\n);
    }
    print <<"EOD";
<input type="submit">
</p>
</form>
EOD
    &print_footer($page);
}
# yakty add [confirm edit] end

do_comment()内の変更

編集

最初の方の適当な箇所に下記の処理を追加。

return if(&check_confirm()); # yakty add [confirm edit]

do_edit()内の変更

編集

最初の方の適当な箇所に下記の処理を追加。

return if(&check_confirm()); # yakty add [confirm edit]

03303