差分表示
- 最後の更新で追加された行はこのように表示します。
- 最後の更新で削除された行はこのように表示します。
最初の編集時に編集確認画面を表示します。
* [confirm edit]
最初に編集を行う際に確認画面を表示し、編集を行うかどうかの確認を行います。
最近になって増えてきているSPAM書き込みの対応になればと思っています。
確認画面での選択項目は変更可能&表示順はランダムなので、海外からのSPAMに特に有効だと思われます。
また、記名有りのコメントを投稿しても、編集可能状態になります。
** 関連するカスタマイズ
- [[WalWiki/カスタマイズ/クッキーを使用する]]
** 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]
03309