ki:blog

右手に萌えを、左手にネタを。

<< February 2005 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 >>

拍手で遊ぼう

拍手をアンケにしたり小窓で出したりする方法をご紹介します。
が、その前に。

A.公式サイトでレンタルしている場合
*この方法では小窓では出せません
*フォームを1つ以上つけることはできません
 →コメントのフォームを無くしてアンケートに変えることは出来る(たぶん)
理由:GETでデータを送れないため。

B.公式サイトのスクリプトを自分で設置している場合
*1と同じです
*が、スクリプトの方に一文加えてもらえば色々できます
理由:要するにGETでもデータ受信できるようにするわけよ。

C.cclapを利用している場合
*やりたい放題
理由:作った本人が何も考えてな遊びたいから。

D.patipatiシステムを利用している場合
*不明
理由:見てないから知らん(機能持ってるし)

そんな感じで。
説明分りづらかったらごめんなさい。気合いで感じてください(笑)
間違いやこうした方がいいんじゃね?という箇所があったらお知らせください。というか、むしろ教えてください。
尚、バグについては受け付けますが、サポートはしませんごめんなさい。(そんなに知識ないのでー)(と言い訳して逃げてみる)

尚この記事はそのうち逃げてしまいますのでよろしくどうぞ!
では行ってみよー!(長いです!)(疲れた!笑)



前置き:
※【】は適宜変えてください。
※最低限しか書いてないのでsizeなどはご自由に。
※動作のアルファベットは前述を参考にしてください。
※B'はスクリプト本体を改造した場合に使えるものです。改造方法はこちら
※公式サイトを利用の方は赤文字のcommenthitokotoに変更してください。
※青文字は自由に変更可ですが変更した際に動かねぇYO!といわれても困りけり。(分かる人だけ変えてください)
※ブログなどShift_JIS以外の文字コードの場所へ設置する場合はこちらを参照してください。

1.拍手のコメントフォームをサイト内に設置する(動作:A,B,C)
以下のタグを適当なところにペシっと貼ってください。
<form action="【拍手アドレス】" method="post" target="_blank">
<input type="text" name="comment">
<input type="submit" value="拍手">
</form>
要するに拍手ボタンで出たお礼の画面のフォームそのまま付ければOKなのです。

2.コメントの変わりにアンケートフォームにする方法(動作:A,B,C)
以下のタグを適当なところにペシっと貼ってください。
<form action="【拍手アドレス】" method="post" target="_blank">
<input type="radio" name="comment" value="回答1">回答1
<input type="radio" name="comment" value="回答2">回答2
<input type="submit" value="拍手">
</FORM>
コメントの代わりにラジオボタンの選択したモノを送るようにしただけですね。当然テキストエリアも可能。
チェックボックスでも使えますが、「回答1回答2」ってな感じで全部一緒になってしまうので、value="回答1/"とか区切り線やかっこなどを入れておくといいかもしれません。

この辺りに関してはこちらのサイトさんで詳しくご説明されているのでむしろその方が分りやすいかも^^;

3.小窓でお礼画面を出す方法(動作:B',C)
新しいウィンドウではなく、JavaScriptでツールバーや画面サイズなどを制御して小窓を出す方法です。
<SCRIPT type="text/javascript">
<!--
function OpenWin1() {
var comment = document.clap.comment.value;
if (comment == "") {
document.clap.comment.value = '';
comment = document.clap.comment.value;
} else {
comment = document.clap.comment.value;
}
window.open ('【拍手アドレス】?comment='+ comment, 'newwin', 'menubar=no,scrollbars=yes, width=【ウィンドウ幅】, height=【ウィンドウ高さ】');
}
//-->
</SCRIPT>
<form name="clap">
<input type=text name="comment">
<input type="submit" value="拍手" onClick="OpenWin1()">
</FORM>
青字の部分で、ブラウザの上にあるメニューなどを表示・非表示に設定できます。詳しくはJavaScriptのサイトを参照してください。

4.コメントフォーム+アンケート(動作:B',C)
以下は基本形です。フォームによって//**の部分が変わります。
<SCRIPT type="text/javascript">
<!--
function OpenWin1() {
var comment = document.clap.comment.value;
var sub = document.clap.sub.value;
if (comment == "") {
document.clap.comment.value = '';
comment = document.clap.comment.value;
} else {
comment = document.clap.comment.value;
}
//**1
window.open ('【拍手アドレス】?comment='+ comment + sub, 'newwin', 'menubar=no,scrollbars=yes, width=【ウィンドウ幅】, height=【ウィンドウ高さ】');
}
//-->
</SCRIPT>
<form name="clap">
//**2
<input type=text name="comment">
<input type="submit" value="拍手" onClick="OpenWin1()">
</FORM>

4−1.テキストボックス、テキストエリアを追加する場合
//**の場所をそれぞれ書き換えてください。
//**1
if (sub == "") {
document.clap.comment.value = '';
sub = document.clap.sub.value;
} else {
sub = '' +document.clap.sub.value+ '';
}
//**2
<input type="text" name="sub">

4−2.ラジオボタンを追加する場合
//**の場所をそれぞれ書き換えてください。
//**1
var flag,sub='';
for (var i=0; i < document.clap.sub.length; i++) {
flag = document.clap.sub[i].checked;
if(flag){ sub = '' +document.clap.sub[i].value+ ''; }
}
//**2
<input type="radio" name="sub" value="回答1">回答1
<input type="radio" name="sub" value="回答2">回答2

4−3.チェックボックスを追加する場合
//**の場所をそれぞれ書き換えてください。
//**1
var flag,sub='';
for (var i=0; i < document.clap.sub.length; i++) {
flag = document.clap.sub[i].checked;
if(flag){ sub += '' +document.clap.sub[i].value+ ''; }
}
//**2
<input type="checkbox" name="sub" value="回答1">回答1
<input type="checkbox" name="sub" value="回答2">回答2


【 ブログのばやい 】
ブログっていうか、異なる文字コード(Shit_JIS)以外の場所で設置する場合、文字化けの可能性があります。
submitのボタンに、緑字の部分を入れてください。
<vinput type="submit" value="拍手" value="Shift_JIS" onClick="document.charset;document.charset='shift_jis';OpenWin1()">

【 改造方法 】
公式サイトスクリプトを改造してデータをGETで受け取れるようにします。
通常CGIではデータはPOSTといって目に見えない形で送られますが、このデータをURLにくっつけて目に見える形でデータを送ります。これをGETといいます。
clapinit.cgiの110行目と111行目の間に以下の文を入れます。
else { $buf = $ENV{'QUERY_STRING'}; }
   ↓入力後
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
}
else { $buf = $ENV{'QUERY_STRING'}; }
%in=();
- :: comments (0) :: trackbacks (89)
1