ページ評価アンケートを組み込む MovableType プラグイン:PageRating

Posted by
ぴろり
Posted at
2005/08/23 13:58
Trackbacks
関連記事 (0)
Comments
コメント (15)
Post Comment
コメントできます
Category
プラグイン カテゴリ

 個人サイトなどで「Web拍手」と書かれた小さなボタンを見かけられたことはあるでしょうか? 前者はWeb拍手公式サイトWhat's "PatiPati"?などで公開されている無料サービスが有名です。これはweb拍手って何?にも書かれている通り、小さいながらもリーダーの反応があることでサイト運営へのヤル気が出るということに大きな意味があります。
 また、企業ページや技術文書などの文末に「役に立ちましたか?」という設問に対して「はい」または「いいえ」を回答するような簡単なアンケートが設けられたものがあります。これにはサイト内文書の中で人気のあるページを集計し、コンテンツ改善や今後のサイト企画立案のためのマーケティングデータとして活用するなどの使途があるようです。何れにせよ、リーダーが気軽にクリックできるという点が重要で、そしてそれはサイト運営者のヤル気の元であったり、次の企画のための貴重なマーケティングデータとなるわけです。

 これら両者の機能を MovableType と組み合わせて使えないだろうか、という発想のもと、今回、MovableType のエントリに簡単なページ評価アンケートを組み込めるプラグインを作ってみました。 簡単な選択項目を設定し、また任意で簡単な一行コメントを入力することができます。また、どの記事に対してどんな評価がされたのか、送信されたデータはエントリ毎に集計されるようになっています。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

はじめに

 アンケート集計の部分は、プラグインによってページに埋め込まれた PHP スクリプトが行っています。 そのため、サーバーで PHP が動作している必要があります。

 このプラグインでも ディープリンク防止機構を実現する MovableType プラグイン と同じ手法で PHP スクリプトを埋め込みます。 最近、"プラグイン"と名乗ることに違和感が…

早速、このサイトにもページ評価アンケートを設置してみました。 各エントリページの一番下に置いてあります。 どうかヨロシクm(_ _)m

追加されるテンプレートタグ

MTUsePageRating
アンケート集計のための PHP スクリプトを埋め込みます。 以下に続くテンプレートタグを使用するページに必ず置いてください。
path
集計データファイルを保存するデータファイルのあるパスを指定します。 パス指定には英数字、アンダーバー(_)、ハイフン(-)が使えます。 絶対パスが無難かと(相対パスは試していません)
name
先述の path の下に作られるデータファイル名を指定します。 ファイル名指定には英数字、アンダーバー(_)、ハイフン(-)が使えます。 後述の type オプションも参照してください。
type
データファイルの生成方法を指定します。 例えば path="/home/your/account/data/rating"name="hogehoge" の場合、 type による指定により以下の動作を行います。
0
デフォルト値。 集計結果を "/home/your/account/data/rating/hogehoge.log" に追記します。 このファイルが存在しない場合、何もしません。
1
月ごとに集計ファイルを生成します。 集計結果を "/home/your/account/data/rating/hogehoge/YYYYMM.log" に集計します(YYYY は西暦 4 桁、MM は月 2 桁)。 "/home/your/account/data/rating/hogehoge" ディレクトリが存在しない場合、何もしません。
2
集計ファイルを毎日生成します。 集計結果を "/home/your/account/data/rating/hogehoge/YYYYMMDD.log" に集計します(YYYY は西暦 4 桁、MM は月 2 桁、DD は日 2 桁)。"/home/your/account/data/rating/hogehoge" ディレクトリが存在しない場合、何もしません。
MTPageRatingDone
アンケートに回答頂いた時に表示するメッセージのためのコンテナタグです。
MTPageRating
アンケートフォームを作るためのコンテナタグで、アンケートに未回答の場合に表示されます。 その実質はアンケートフォーム用の form タグを生成します。 id、class、style オプションを指定することでタグに値を渡すことができます。
MTPageRatingItem
アンケート用のラジオボタンを生成します。 その実質はアンケートフォーム用の <input type="radio"> タグを生成します。 id、class、style、tabindex、accesskey オプションを指定することでタグに値を渡すことができます。
value
集計されるデータ値を指定します。
default
デフォルト選択肢を設定する場合に使用します。 "1" を与えると、タグに checked オプションが付加されます。
MTPageRatingComment
アンケート用の一行コメントの入力欄を生成します。 その実質はアンケートフォーム用の <input type="text"> タグを生成します。 id、class、style、value、tabindex、accesskey、size オプションを指定することでタグに値を渡すことができます。
MTPageRatingSubmit
アンケート用の送信ボタンを生成します。 その実質はアンケートフォーム用の <input type="submit"> タグを生成します。 id、class、style、value、tabindex、accesskey オプションを指定することでタグに値を渡すことができます。

導入方法

Step 0. プラグインのインストール

 アーカイブに含まれる MTPageRating.pl を MovableType のプラグインディレクトリにコピーします。 そして、MovableType の管理画面のメインメニューで、"使用可能なプラグイン"欄に表示されていることを確認します。

Step 2. 個別アーカイブテンプレートの修正

 ページ評価アンケートを設置するため、個別アーカイブテンプレートを修正します。
<MTUsePageRating path="/home/your/account/data/rating" name="hogehoge" type="0">

<MTPageRatingDone>
<!-- このコンテナタグ内部はアンケート回答後に表示されます-->
アンケートへのご協力ありがとうございました。<br />
回答頂いた内容は今後の企画立案の基礎データとして役立たせていただきます。
</MTPageRatingDone>


<MTPageRating class="yourClass">

<!-- このコンテナタグ内部はアンケートに未回答の場合に表示されます -->
<h3>この記事に対するあなたの評価をお聞かせください</h3>

<!-- アンケートの選択肢を作成しています -->
<MTPageRatingItem value="1">ダメ
<MTPageRatingItem value="2">いまいち
<MTPageRatingItem value="3">普通
<MTPageRatingItem value="4">良い
<MTPageRatingItem value="5">とても良い

<!-- default オプションで規定の選択肢を作成しています -->
<MTPageRatingItem value="0" default="1">とりあえず拍手

<!-- アンケートへの回答ボタンです -->
<MTPageRatingSubmit value="送信">

</MTPageRating>

Step 1. 集計データフォルダの準備

<MTUsePageRating> の type オプションの指定に応じて、データ集計ディレクトリを準備します。 例えば path="/home/your/account/data/rating"name="hogehoge" の場合、type による指定により作業が異なります。
type = "0"
"/home/your/account/data/rating/hogehoge.log" という名前で空のファイルを作成しておきます。
type = "1" または "2"
"/home/your/account/data/rating/hogehoge" という名前でディレクトリを作成しておきます。

トラブルシュート - 動かない時は?

この項目は作成中です。

いろいろ

  • データ集計用のスクリプトも書かないとダメなんですよね…(未着手)
  • 集計用 PHP スクリプトにより、記事毎にファイルサイズが約 1200 バイト増加します
  • オリジナルの著作権表示を改変しない限り、自由に改造・転載・配布できます

ダウンロード

ダウンロード / MD5バージョン日付サイズ(Bytes)動作環境備考
MTPageRating
GetMD5Hash('MTPageRating010.zip');?>
0.10 new '05/08/23 GetFileSize('MTPageRating010.zip');?> MovableType 3.151-ja で動作確認

楽屋裏

 このプラグイン作成の動機となったのは、はてな代表取締役近藤さんの ブログ作者に投げ銭を という記事。 加えて、 ディープリンク防止機構を実現する MovableType プラグイン のコメントにあるように、MovableType プラグインとして配布できる何かパッケージっぽいものを作ってみたかったこと。
 今のところ、このプラグインで実現できるのは、単なるアンケートフォームに過ぎません。 しかし、今後、 Acount Auto-Discovery のような機械処理できるメタデータ仕様が共通に広く普及すれば、 このプラグインや他 CGI サービスで設置したアンケートであっても、 はてなポイントのようなインターネット通貨を横断的に交換できるようになるんじゃないかなぁと思うわけです。 はてなポイントは、はてなのサーバで集中管理されている(と思っている)わけですが、 ブログやサイト同士が P2P 的な繋がりでお互いの信頼性を保証し合うような仕組みが出来れば、 もしかすると空想で終わらない面白いことになるんじゃないかとも思います。 その時は、このプラグインも真っ先に対応しちゃいますよ(`・ω・´)
この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  



関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

寄せられたコメント (全 15 件中、最新 5 件まで表示しています)

Posted by
techontechon
at
2008/06/05 10:13
ID
Q7.lt06I
.htaccessにAddType application/x-httpd-php .htmlを書いて解決しました
Posted by
techontechon
at
2008/06/04 19:03
ID
r8SLstL.
評価用のプラグインを探していてベストなものだと思いましたが
このプラグインはphp化しないと利用できませんか?
htmlでやると表示されましたが送信でMethod Not Allowedとエラー表示されます
解決方法が教えていただけると助かります
Posted by
raizoraizo
at
2006/11/01 14:31
ID
EO6wVOWY
こんにちは。
Perl 5.8.4 です。
MTはUnicodeで使っています。
"w-"→"w"としてみたところ、再構築時に以下のエラーとなりました。
<MTUsePageRating>タグでエラーが発生しました: MTUsePageRating - 不正なパス指定
ちなみに、パスにはドット"."が入っています。
お気づきの点があれば、よろしくお願いいたします。
Posted by
ぴろりぴろり
at
2006/10/31 10:05
ID
23dd29Ow
こんにちは。
正規表現式が変だよーって言われているようですね。
お使いのPerlのバージョンは何でしょうか?
あと,"w-"→"w"として症状が変わるか見て頂けますか?
コメントアウトするのはちょっと危険です…
Posted by
raizoraizo
at
2006/10/30 10:03
ID
SWhaN5lQ
はじめまして。こんなプラグインを探していました。
ぜひ活用させていただきたいと思います。
MT3.3に設置したのですが、以下のエラーが出て動きませんでした。
False [] range "w-" in regex; marked by <-- HERE in m/[^w- <-- HERE /]/ at /virtual/raizo/public_html/reponavi.jp/mt/plugins/MTPageRating.pl line 41.
とりあえず、該当行をコメントアウトして動かしてみます。

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。