2005年はこととねにおけるweb拍手年。web拍手関連文書はまだまだ公開されます。
前回はweb拍手の一言メッセージ文字数を増やすという改造を紹介した。これはどちらかといえば、拍手を送る側にとっての便利を考えたものといえる。対して今回の改造は、web拍手を通じて色々なものを公開したいと考える、設置側のための改造である。今回増やすものとは、web拍手を送った際に表示される画面、web拍手送信完了のお礼メッセージである。
web拍手に対するお礼メッセージは、デフォルトで五種類。clapinit.cgiの22行目から数行にかけて、拍手送信後画面用お礼メッセージを入力するための変数が並べられている。言葉にするとなんだかよくわからないが、見れば一目瞭然。web拍手CGIをわざわざ導入してみるようなユーザーになら、お礼メッセージの書き方をいちいち説明することもないだろう。
さて、このお礼メッセージであるが、増やすことはできないものだろうか。例えば行をコピーして増やして、六番目、七番目のメッセージを用意してみるとどうなるだろうか。
# 拍手送信後画面用お礼メッセージ6(タグ使用可)
$message[5]='拍手が送信されました。<br>ありがとうございました!';
# 拍手送信後画面用お礼メッセージ7(タグ使用可)
$message[6]='拍手が送信されました。<br>ありがとうございました!';
(強調は変更部分。メッセージの番号と$message[n]の数字がずれていることに注意)
これではなにも起こらない。いや、プログラムの内部では確かに変化はあるのだが、出力結果であるweb拍手送信完了画面には現れないのである。この六番目、七番目のメッセージが表示されるようにするには、もう一点改造すべき箇所があるのだ。
修正する場所というのは、clap.cgiの139行目に見えるrand(5)という部分である。
#------メッセージ
$i = int(rand(5));
print "<center>\n";
print "$message[$i]<br><br><br>\n";
ここで行われてることを簡単に説明すると、rand(5)で0から4までの乱数を発生させ、乱数は小数点以下も含まれるから、int()関数で少数以下を切り捨てて整数に丸める。上に取り出した最後の行では、こうして得られた数0から4をもって、clapinit.cgiでセットされたお礼メッセージを取り出している。
お礼メッセージは、$message[n]という配列にセットされているのだが、clapinit.cgiのお礼メッセージを指定するところを見てもらえばわかるように、ここには0から4までの違った番号がつけられている。この数字を添字というのだが、添字を乱数で生成することで、五種類あるお礼メッセージをランダムにとり出しているのだ。
さっき、clapinit.cgiで、六番目、七番目のメッセージを用意してみて、けれどそれが使えないのは、メッセージを呼び出すために使っている乱数が、4までしか生成されないようになっているからだ。なので、この乱数の生成される範囲を広げてやればいい。さっき、clapinit.cgiに新しく加えたお礼メッセージを表示させるには、そう、乱数の生成範囲を6まで増やしてやればいい。
なんで6かって? clapinit.cgiのお礼メッセージの部分を読んでもらえればわかると思うけれど、$message[n]の数字は0から始まっているからだ。私たち人間は数を数えるときに1からはじめるが、コンピュータは0からだ。なので、0から6で全七種類。慣れるまでは間違いやすいので気をつけよう。
clapinit.cgiに加えられた六番目、七番目のお礼メッセージを有効にするには、乱数の生成される範囲を増やせばいいということを説明してきた。では、それは具体的にどうすればいいのだろうか。
修正個所は、clap.cgiの139行目とはすでにいったとおり。ここのrand(5)の数字を増やしてやればよいのだ。
#------メッセージ
$i = int(rand(5));
#------メッセージ
$i = int(rand(7));
rand(7)としてやることで、生成される乱数の範囲は0から6にまで拡大された。これで、最初に用意した六番目、七番目のメッセージが表示されるようになったはずだ。
生成される乱数と、用意されたお礼メッセージの数をちゃんと合わせておかないといけない。もしこの数がずれていると、セットされていない配列を取り出すことになってしまう。なので、いまいちよくわからんという人は手を出さないほうが無難かと思う。
お礼メッセージが増えるのは、拍手する側からしても嬉しいことではあるが、あんまり多くなると、全部のお礼を見られないということにもなりかねない。なにしろランダムで表示されるんだから、どうしてもなかなか出てこないようなものもあるからだ(理屈では同確率なんだけどね)。
増やしたい人がいるなら増やすことは構わないと思うけれども、五つくらいがやっぱり妥当な数だと思う。特に魅力的な画像が用意されてるようなところだと、やっぱり全部見たいものだから、あんまり表示されるメッセージ数が多いと、拍手を叩き続ける羽目にもなりかねない。
程々の数にとどめられるよう、どうかお願いしたい。
< web拍手改造:一言メッセージ文字数を増やす web拍手改造:連投規制を緩和する >