ここでは、σ(^_^)が行ってるドンペリの改造を紹介します。
意味が分からんって人は、ここの改造をしない方がいいよ(;^_^A
アセアセ・・・
て、ことだったんですが、かふぇさんの許可が得られたので、書き換えたファイルを公開します。
変更点は、
CGIの中にぼそっと書いた事で誤解されるといけないので、ちょっと書いときます。
以前のバージョンでは、「▲」または「▼」ボタンをすばやく2回押すと、IEやNS4.xでは、1ポイントしかプラスまたはマイナスされませんでした。
(ダブルクリックと見なされ、クリック・イベントが起きない。NS6では、大丈夫でした。)
そこで、IEやNS4.xでも2ポイントプラスまたはマイナスされるように改善したのです。
(単純にダブルクリック・イベントでポイントを1つ変えると、NS6では、ダブルクリックで3ポイント変わってしまうので、ちょっと細工をしましたが…)
という訳で、IEでもNSでも大丈夫(のはず)です。
(IEはインターネット・エクスプローラの事で、NSはネットスケープナビゲータの事です。念のため)
おためし用のドンペリを設置しました。
HNはドンペリ、パスワードは、1234 です。
適当に書き込んでもらって結構です。
ドンペリは、点数順に記入しなくてはいけないという制約があります。
ここでは、どういう順番に記入しても良いようにする方法を紹介します。
ドンペリの163行目の辺りの次の行、
if ($p1<$p2 || $p1<$p3 || $p1<$p4 || $p2<$p3 || $p2<$p4 || $p3<$p4) { &error("記入順が間違っています",'NOLOCK'); }
|
を以下のように変更します。
#if ($p1<$p2 || $p1<$p3 || $p1<$p4 || $p2<$p3 || $p2<$p4 || $p3<$p4) { &error("記入順が間違っています",'NOLOCK'); }
{ # 並べ替え
my @names = ($n1, $n2, $n3, $n4);
my @points= ($p1, $p2, $p3, $p4);
my @SortNo = sort {
$sort_ret = $points[$b] <=> $points[$a];
if($sort_ret == 0){
if($a eq $yrhn){
if($b eq $yrhn){$sort_ret = 0}
else{$sort_ret = -1}
}
elsif($b eq $yrhn){ $sort_ret = 1}
else{ $sort_ret = $a cmp $b}
}
$sort_ret
} (0 .. 3);
$n1=$names[ $SortNo[0]];$n2=$names[ $SortNo[1]];$n3=$names[ $SortNo[2]];$n4=$names[ $SortNo[3]];
$p1=$points[$SortNo[0]];$p2=$points[$SortNo[1]];$p3=$points[$SortNo[2]];$p4=$points[$SortNo[3]];
}
|
これで、点数順に、同点なら名前順に(ただし、自分の名前が優先的に前になる)並び替えられます。
$yrhn は、自分の名前が収められている変数であることを一応確認しといてね。
ドンペリの114行目の辺りの次の行、
<tr><td><input type="text" size="12" name="N1"></td><td><input type="text" size="2" name="P1"></td></tr> |
を以下のように青い部分を追加します。
<tr><td><input type="text" size="12" name="N1" value="$yrhn"></td><td><input type="text" size="2" name="P1"></td></tr> |