MODxでCMSの恩恵を賜りつつ、validを保ち、かつWEB標準化を目指そう
Welcome !! Now 2010.02.09 17:55 (JST)
EasyPoll は、投票機能をサイトに追加します。スニペットとモジュールで成り立っています。通常は、クッキーを使って2重投稿を防止しますが、IPアドレスを記録することによってより厳しい2重投稿の防止を実現できます。管理画面のモジュールによって、質問と選択肢を設定し、スニペットコールによって、それを表示します。
1ページに複数の投票機能を設置することも可能です。また、違うページに設置した2つの投稿機能のデータをリンクさせることも出来ます。
参照ページ:EasyPoll
参照ドキュメント:EasyPollに同梱のdocumentation.html
<?php」
と、最後の行の「?>」は、必ず削除してください。そうしないと、エラーになります。次にモジュール画面「EesyPoll」で、質問と選択肢を作ります。
あとは、投票機能を呼び出したいところにスニペットコールを書くだけです。
[!EasyPoll? &lang=`jp`!]
必須パラメータ※投票用の質問や選択肢の言語で、モジュールEasyPollで、言語コードと言語ファイルを日本語にした場合は、上記を定義しないと、エラーになります。
モジュールEasyPoll で設定した、質問のIDを指定します。指定しなければ、「表示」チェックが入った質問の中で一番最後に作った、質問が投票に利用されます。デフォルト「false(指定しない)」
[!EasyPoll? &easylang=`jp` &lang=`jp`
&pollid=`5`!]
※ID=5の質問を利用する
スニペットで使う、言語を指定します。この言語ファイルは、EaayPoll/lang/以下になければなりません。デフォルト「en(英語)」。
モジュールEasyPollでの、質問と選択肢に使う言語を指定します。デフォルト「&lang」。
クッキーを利用して、訪問者の2重投票を制限するかどうかを指定します。デフォルト「false(制限しない)」
訪問者のIPアドレスを記録して、2重投票を制限するかどうかを指定します。IPアドレスは、データベースに書き込まれます。IPアドレスを消去するには、モジュールEasyPoll の「管理」から「記録された投票者のIPアドレスをすべて消去」をクリックします。デフォルト「false(しない)」。
クッキーの有効期間を指定します。デフォルト「one week(1週間)」。
Ajax の利用を不可能にするかどうかを指定します。デフォルト「false(しない=Ajaxを利用する)」。この場合、二つのスクリプトファイルが、<head>~</head>に追記されます。動作としては、投票した結果を画面遷移なしに(リロードすることなく)表示します。
これを「true」にセットすると、スクリプトファイルは、追加されませんが、単に投票後に画面をリロードして結果を表示するだけで、EasyPollは、きちんと動作します。また、同様の理由で、ブラウザのスクリプト機能が無効にセットされていてもEasyPollfは、動作しますするので、このパラメータは、通常、利用しません。もし、JavaScript機能が有効にセットされているブラウザに対して、敢えて、無効にしたい場合には、「true」をセットしてください(サンクス>sama55さん)。
スタイルシートを追加するかどうかを指定します。デフォルト「false(しない)」。
[!EasyPoll? &easylang=`jp` &lang=`jp`
&pollid=`5` &css=`assets/templates/common/ep.css`!]
投票結果のパーセンテージの小数点以下の桁数を指定します。デフォルト「1(小数点第1位まで表示)」
投票結果の表示順を指定します。デフォルト「Sorting ASC」以下を指定できます。
通常の出力の代わりに、すべての投票の投票結果を出力するかどうか指定します(投票は出来ません)。デフォルト「false」。このパラメータを「true」にすると、以下のバラメータは無効になります。
また、&customjs で指定したJavaScript が利用されます。
このパラメータは、arhiveがtrueの時に機能します。最初の投票をスキップして表示するかどうかをしていします。デフォルト「false(スキップしない)」
1ページに複数の投票を置く場合、それぞれのスニペットコールの中で、別の値を設定します。1つ1つの投票をスニペット側が識別するための設定です。デフォルト「easypoll」
mootoolsをソースに追記を停止するかどうかを指定します。デフォルト「false(停止しない=追記する)」。すでに、mootools が記述されている場合は、これを「true」にします。
自作のJavaScriptを利用できます。そのまま、ファイルまでのパスを書くか、または、<script>~</script>で、囲って直接スクリプトを書くこともできます。
また、チャンクにスクリプトを書く場合もかならず、<script>~</script>の間に書き、「'customjs=`@chunk チャンク名`」のように指定します。チャンクを使う場合、ファイル名までのパスを書くこともできます。
いかなるファンクションコールも可能です。それは、Ajaxが呼ばれるときと、完全に読み込まれたときに最初に呼ばれるでしょう(なんかよくわからん)。
このファンクションのためにふたつのパラメータが与えられます。ひとつめは、レスポンスです。レスポンスは、最初と、htmlが読み込み終わるまでの間、「false」です。
二つめは、poll エレメントのIDです。それは、&identifier と同じです。複数の投票を1ページに設置するための手助けになるでしょう(意味アヤシイです)。
エラー表示をさせるかどうかを指定します。デフォルト「false(しない)」。たとえば、存在しないpollidを指定したときなど、画面には何も表示されませんが、これを「true」にセットすると、エラーが表示されます。これは、テスト運用時には、大変有用ですが、実運用では、利用するべきではありません。
投票用のテンプレートです。一番外側に来ます。デフォルトは以下です。
<div class="pollvotes">
<h3>[+question+]</h3>
<ul>[+choices+]</ul>
[+submit+] [+results+]
</div>
※この外側に、「div with id="<&identifier>"
class="easypoll"」が入ります。
投票用のテンプレートです。tplVoteOuter の中の[+choices+]に入ります。デフォルトは以下です。
<li>[+select+] [+answer+]</li>
投票結果用のテンプレートです。一番外側に来ます。デフォルトは以下です。
<div class="pollresults">
<h3>[+question+]</h3>
<ul>[+choices+]</ul>
<p>[+totaltext+]: [+totalvotes+]</p>
</div>
投票結果用のテンプレートです。tplResultOuter の中の[+choices+]に入ります。デフォルトは以下です。
<li>
<strong>[+answer+]</strong> ([+votes+] / [+percent+]%)
<div class="easypoll_bar">
<div class="easypoll_inner" style="width:[+percent_int+]%"></div>
</div>
</li>
エラーメッセージ用のテンプレートです。デフォルトは以下です。
<div class="easypoll_error">[+message+]</div>
tplVoteOuterで利用できるプレースホルダは以下の通りです。
[+question+] ... 投票のタイトルを挿入します。[+choices+] ... 選択肢群を挿入します。tplVote
が入り込みます。[+submit+] ... 投票ボタンを挿入します。[+results+] ... 投票結果を見るためのボタンを挿入します。※上記のうち、[+question+], [+choices+], [+submit+]は、必ず入れてください。
tplResultOuterで利用できるプレースホルダは以下の通りです。
[+question+] ... 投票のタイトルを挿入します。[+totalvotes+] ... 総投票数を挿入します。[+totaltext+] ... 「総投票数:」等の言葉を挿入します。[+choices+] ... それぞれの選択肢とその結果を挿入します。※ [+question+], [+choices+] は、必ず入れてください。
tplVoteで利用できるプレースホルダは以下の通りです。
[+select+] ... ラジオボタンを挿入します。[+answer+] = 選択肢を挿入します。※上記は、二つとも必ず入れてください。
tplResultで利用できるブレースホルダは以下の通りです。
[+answer+] ... 選択肢を挿入します。[+percent+] ... 投票結果をパーセントで表示します。小数点以下の桁数は、&accuracy
で決定されます。[+percent_int+]
...パーセンテージの整数を挿入します。これは、CSSで利用されます。tplResultを参照してください。[+votes+] ...投票数を挿入します。tplError で利用できるプレースホルダは以下の通りです。
[+message+] ...
エラーメッセージを挿入します。