2005年はこととねにおけるweb拍手年。web拍手関連文書は続々公開される運びとなっています。
そんなわけで、今やWebサイト必携ともいえるCGIとなったweb拍手であるが、この素晴らしいCGIに対する意見としてたびたび現れるのが、一言メッセージの文字数に関する不満である。
web拍手送信完了画面から送れる一言メッセージの文字数は、デフォルトでは五十文字である。五十文字。これを長いと見るかあるいは短いと見るかは人それぞれだろうが、ある程度まとまった声援を送ろうとすれば簡単に制限を超えてしまうのもまた事実だ。拍手は連続で十回送れるんだから、わけて送ったらいいじゃんかという考えもあって、実際私もそう思ってはいるのだが、あんまりに長い文章を小分けにして連続でじゃんじゃん送るというのも、なんか拍手を受ける側としては困るのではないか、変なプレッシャーを与えるのではないかと思って気後れしてしまう。
いや、私は全然気にしないから。連投大歓迎だから。
もうちょっとくらい送れる文字数が多くってもいいのになあと思う人に今回の更新を捧げます。
web拍手公式サイトでweb拍手CGI一式をダウンロードして、まずはreadme.txtを読んでみよう。この文書にはweb拍手の改造や再配布に関する注意書きがあって、それによれば、web拍手CGIの改造やカスタマイズはユーザーの判断に任されているのだが、改変したものの再配布はご遠慮願いたいとのことだ。ご遠慮くださいというのは、やめてくれの遠回しな表現にほかならないから、私は改造CGIを配ることは決してしない。なので、以後の文章は、採用するもしないもユーザーおのおのが判断した上で、自己責任で利用していただきたい。
一言メッセージを五十文字が制限されるのはいったいどうしてだろう。実はこれは、文字を入力するフィールドに入力文字数の最大値を設定する属性が書き加えられているからだ。
web拍手送信完了画面のソースを見ていただきたい。ざっと見回すと、以下にあげるような文字列を見付けることができるだろう。
<input type=text name=hitokoto size=50 maxlength=50><br>
この文字列のうち、重要なのはmaxlength
と書かれた部分である。maxlength
属性に設定される数値が、テキストフィールドの文字数の最大値を決定しているのである。見れば、maxlength=50
とあって、確かに五十文字の制限がかけられていることがわかると思う。
maxlength
属性の値に従い入力最大文字数が決まるということで、じゃあこの値を大きくしてやれば一言メッセージの文字数も増やせるはずだ。とのことで、実際にmaxlength
属性の値を書き換えてみることにしよう。
問題のmaxlength
属性はいくつかあるcgiファイルのどこに含まれているかというと、clap.cgiである。これをテキストエディタで開いて、155行目あたりを見てみよう。以下にあげるような文字列を見付けることができるはずだ。
print '<input type=text name=hitokoto size=50 maxlength=50><br>',"\n";
今私たちが問題としているmaxlength
属性が見えるだろう。ここで設定されている値、50を好きな数値に変更してファイルを保存すれば、それで改造は完了だ。実際にcgiをサーバに設置してみて、一言メッセージで送れる文字数が増えているか確認するといいだろう。
maxlength
属性の値だが、大きければいいってもんじゃないので注意が必要だ。メッセージの文字数が増えれば、当然ログファイル(一言メッセージはデフォルトではmes.datに保存される)が肥大する原因になる。自動的に古いメッセージは削除されるとはいえ、それこそ何百何千文字と送られればそれはそれで問題で、メッセージを読むのも一苦労だ。なので、程々の値にとどめておいたおくことをおすすめしたい。
というわけで、例えば、二百文字くらいがいいんじゃないだろうか。maxlength
属性値を200にすると、以下のようになる。
print '<input type=text name=hitokoto size=50 maxlength=200><br>',"\n";
二百文字あれば、ちょっとしたメッセージを送るにも余裕があるし、そうそうあふれるということもないだろう。ともあれ、自分の判断でもって、どれくらいの文字数にするかは決めて欲しい。自分のサイトの訪問者にとって、多すぎず少なすぎもしない程々の文字数というのは、結局そのサイトのオーナーにしか見極められないのだから。
< web拍手に画像を追加 その一 web拍手改造:お礼メッセージのバリエーションを増やす >