# アンケート(Polls)プラグイン

アンケート機能はかつてGeeklogのコアコードの一部でしたが、Geeklog 1.4.0よりプラグインとして分離されました。

## 設定

アンケートプラグインの設定は、「管理者用メニュー - コンフィギュレーション - アンケート」から変更できます。

### アンケートのメイン設定

項目(変数) | デフォルト | 説明
--- | --- | ---
ログインを要求する(pollsloginrequired) | いいえ(0) | はい(1)にすると、登録ユーザーしか最近のアンケートにアクセスできなくなります。 この設定値よりも、「管理者用メニュー - コンフィギュレーション - Geeklog - ユーザーと投稿」の「すべてにログインを要求する(loginrequired)」の設定の方が優先されます。「すべてにログインを要求する」をはい(1)にすると、アンケートプラグインでログインを要求していなくても、ゲストユーザーはアンケートにアクセスできなくなります。
メニューに表示しない(hidepollsmenu) | いいえ(0) | はい(1)にすると、サイトのメニューに「アンケート」メニューを表示しません。
アンケート毎の質問の最大数(maxquestions) | 10 | アンケート毎の質問の最大数を指定します。
質問毎の選択肢の最大数(maxanswers) | 10 | 質問毎の選択肢の最大数を指定します。
アンケート結果の表示順(answerorder) | 登録順(submitorder) | アンケート結果を「得票順(voteorder)」に並び替えるか、アンケートの「登録順(submitorder)」で並び替えるかを指定します。
投票者のクッキーの有効期間(pollcookietime) | 86400(秒) | 投票者のクッキーの有効期間を秒数で指定します。いったん投票すると、この期間は同じ質問に投票できません。デフォルトは86,400秒(＝24時間)です。
投票者のIPアドレスの有効期間(polladdresstime) | 604800 | 投票者のIPアドレスの有効期間を秒数で指定します。いったん投票すると、この期間は同じIPから投票できません。デフォルトは604,800秒(＝7日間)です。
所有者の削除と共に削除する(delete_polls) | いいえ(0) | はい(1)にすると、アンケート所有者のアカウントが削除されたときに、所有していたすべてのアンケートが全コメントと共に削除され、いいえ(0)にすると、Rootグループに属するユーザー(たとえば、サイトの管理者)に引き継がれます。

アンケート保存後の画面遷移(aftersave)

アンケート管理を表示する(list)

アンケートを保存した後にどのページへ移動するかをを指定します。

- 作成したアンケートを表示する(item): 作成したアンケートを表示します。
- アンケート管理一覧を表示する(list): 管理者用のアンケートのリストを表示します(デフォルト)。
- アンケート一覧を表示する(plugin): 公開されているアンケート一覧を表示します。
- Homeを表示する(home): サイトのHomeページ(トップページ)を表示します。
- 管理画面TOPを表示する(admin): 管理画面を表示します。

メタタグを有効にする(meta_tags) | いいえ(false) | アンケートを表示するときに、メタタグを出力するかどうかを指定します。
アンケートのlikesコントロール(likes_polls) | 1 | 0にするとLikesコントロールを無効にし、1にするとLikesとDislikesを有効に、2にするとLikesのみ有効にします。アンケートのLikesコントロールを有効にするには、Geeklogのコンフィギュレーション(likes_enabled)でLikesを有効にしなければなりません。

### 新着ブロック

項目(変数) | デフォルト | 説明
--- | --- | ---
アンケートの"新着"期間(newpollsinterval) | 1209600秒 (= 2週間) | アンケートが新着ブロックに表示される期間を秒数で指定します。
新着アンケート(hidenewpolls) | 表示しない | 新着ブロックに、'表示しない'、'作成日付によって表示する'、'編集日付によって表示する'を選択します。
タイトル最大長(title_trim_length) | 20 | 新着ブロックに表示するタイトルのトリミングの文字数を指定します。

### パーミッションのデフォルト

項目(変数) | デフォルト | 説明
--- | --- | ---
パーミッションのデフォルト[0](default_permissions[0]) | 表示・編集 | アンケートに関する所有者のパーミッションのデフォルトを指定します。
パーミッションのデフォルト[1](default_permissions[1]) | 表示 | アンケートに関するグループのパーミッションのデフォルトを指定します。
パーミッションのデフォルト[2](default_permissions[2]) | 表示 | アンケートに関するメンバーのパーミッションのデフォルトを指定します。
パーミッションのデフォルト[3](default_permissions[3]) | 表示 | アンケートに関するゲストユーザーのパーミッションのデフォルトを指定します。

### 自動タグのパーミッション

項目(変数) | デフォルト | 説明
--- | --- | ---
自動タグ[poll: ]のパーミッション[0](autotag_permissions_poll[0]) | 利用する | 自動タグの利用に関する所有者(デフォルトはRootユーザー)のパーミッションを指定します。
自動タグ[poll: ]のパーミッション[1](autotag_permissions_poll[1]) | 利用する | 自動タグの利用に関するPolls Adminグループのパーミッションを指定します。
自動タグ[poll: ]のパーミッション[2](autotag_permissions_poll[2]) | 利用する | 自動タグの利用に関するメンバーのパーミッションを指定します。
自動タグ[poll: ]のパーミッション[3](autotag_permissions_poll[3]) | 利用する | 自動タグの利用に関するゲストユーザーのパーミッションを指定します。
自動タグ[poll_vote: ]のパーミッション[0](autotag_permissions_poll_vote[0]) | 利用する | 自動タグの利用に関する所有者(デフォルトはRootユーザー)のパーミッションを指定します。
自動タグ[poll_vote: ]のパーミッション[1](autotag_permissions_poll_vote[1]) | 利用する | 自動タグの利用に関するPolls Adminグループのパーミッションを指定します。
自動タグ[poll_vote: ]のパーミッション[2](autotag_permissions_poll_vote[2]) | アクセス不可 | 自動タグの利用に関するメンバーのパーミッションを指定します。
自動タグ[poll_vote: ]のパーミッション[3](autotag_permissions_poll_vote[3]) | アクセス不可 | 自動タグの利用に関するゲストユーザーのパーミッションを指定します。
自動タグ[poll_result: ]のパーミッション[0](autotag_permissions_poll_result[0]) | 利用する | 自動タグの利用に関する所有者(デフォルトはRootユーザー)のパーミッションを指定します。
自動タグ[poll_result: ]のパーミッション[1](autotag_permissions_poll_result[1]) | 利用する | 自動タグの利用に関するPolls Adminグループのパーミッションを指定します。
自動タグ[poll_result: ]のパーミッション[2](autotag_permissions_poll_result[2]) | アクセス不可 | 自動タグの利用に関するメンバーのパーミッションを指定します。
自動タグ[poll_result: ]のパーミッション[3](autotag_permissions_poll_result[3]) | アクセス不可 | 自動タグの利用に関するゲストユーザーのパーミッションを指定します。

### アンケートブロック

項目(変数) | デフォルト | 説明
--- | --- | ---
有効(block_enable) | true | ブロックを有効化します。
左ブロックで表示する(block_isleft) | 1 | 左ブロックで表示(1) あるいは右 (0)に表示します。
ブロックの順番(block_order) | 50 | ブロックカラムの並べ替え番号を指定します。
話題オプション(block_topic_option) | 'all' | 'すべて'なら、すべてのページで表示。'ホームページのみ'ならホームページのみで表示。'話題を選択する'なら選択された話題でのみ表示されます。
話題(block_topic) |  | 話題オプションが '話題を選択する'のときだけ表示されます。
グループ(block_group_id) | Calendar Admin | パーミッションで使われるグループ
アンケートブロックのパーミッション[0](block_permissions[0]) | 表示 | ダイナミックブロックの表示に関するブロック管理者(デフォルトはRootユーザー)のパーミッションを設定します。
アンケートブロックのパーミッション[1](block_permissions[1]) | 表示 | ダイナミックブロックの表示に関する、アサインされた管理者グループ(コンフィグオプションblock_group_idを参照)のパーミッションを設定します。
アンケートブロックのパーミッション[2](block_permissions[2]) | 表示 | ダイナミックブロックの表示に関するメンバーのパーミッションを設定します。
アンケートブロックのパーミッション[3](block_permissions[3]) | 表示 | ダイナミックブロックの表示に関するゲストユーザーのパーミッションを設定します。

## アンケートの仕組み

(Geeklog FAQより転載)

アンケートの恣意的な操作を防ぐ(少なくとも困難にする)ために、Geeklogは投票時に次の2つのことを行います。

1. クッキーを保存します。
2. 投票者のIPアドレスを記録します。

クッキーとIPアドレスは一定期間有効で(下記参照)、その期間中は同じアンケートに答えることはできません。

クッキーとIPアドレスの有効期間は「管理者用メニュー - コンフィギュレーション - アンケート」で変更できます(上記参照)。

    $_PO_CONF['pollcookietime']    = 86400;
    $_PO_CONF['polladdresstime']   = 604800;

単位は共に秒で、上記の例ではクッキーの有効期間は24時間であり、IPアドレスは1週間記録されることになります。

複数の人間が同一コンピュータや同一IPアドレスを使用する状況では、いずれか(または両方の)数値を `1` に設定するとよいでしょう。

どんなアンケートでも操作される可能性があることを忘れないでください。したがって結果をあまり重大に受け止めない方がよいでしょう。

## 自動タグ

アンケートプラグインは、`[poll:]`、`[poll_result:]`、`[poll_vote:]`という3種類の自動タグを提供します。

- `[poll:]` 自動タグはアンケートへのリンクに変換されます。コロンの後にアンケートIDを記述してください。既定では、アンケートのタイトルがリンクテキストとして使用されます。別の方法としては、アンケートIDの後に半角スペースに続けて独自のリンクテキストを指定することもできます(閉じカッコの前でなければなりません)。
- `[poll_result:]` 自動タグを使用すると、アンケート結果を記事(や、自動タグが使用できるところならどこにでも)に埋め込むことができます。
- `[poll_vote:]` 自動タグを使用すると、アンケートを記事(や、自動タグが使用できるところならどこにでも)に埋め込むことができます。ユーザーがアンケートのページへ移動する手間を省くわけです。