mt-voteを少し改良。このページのvote!☆☆☆☆☆のように。Ojster.comさんを参考にして見よう見まねで作ってみました。
今のところの問題点は、
・ページ内に二つ以上のエントリーがある場合にはマウスロールオーバーが機能しない。
という点。
トップページとかカテゴリーページのように複数のエントリーがある場合にはどうも上手い具合いにロールオーバーしてくれない。ソフトが吐き出したjavascriptコードはちょっと何がどうなってということがわかりにくすぎる。柔軟性がないというかなんというか。手書きで作るにしてもjavascriptを一から勉強するというのはちょっとなぁ。それほどの魅力がjavascriptに感じられないというか。かといってソフト頼りでコードを出力したらもうあれ以上は柔軟な機能を持たせることは多分不可能だし。じゃあとばかりにflashで作ろうかと思ったけど、ちょっと無理すぎだし。いや、いけるかも。blogタイムスとかはmtが更新した時間とうまく連携することができてるみたいだし。
今回はちょっとギブアップです。action scriptならもうちょっと粘るんですがjavascriptが相手では分が悪い。どうでもいいことですがasとjsは何か似てる。名前以外の部分でも。
多分mt-voteネタはこれで最後。
やりたかったこと=averageの値を小数点以下まで表示させたい!
正直、これをやるのは私には十年早いです。無謀だということを承知でトライしました。C言語とかperlとかPHPとかRubyとか、そういった知識がある人ならなんでもないことだと思いますが、それらの知識が皆無な私にとってはかなりきつかったです。
とりあえずググッて情報を集めたところ、まあなんとかなりそうだと思ったので。…やったことと言えばほんのちょこっとファイルの中身を修正しただけなんですけども。以下、ど素人が試したことですので、あまりおすすめはできませんが記しておきます。
(mt-vote.plの修正)
mt-vote.plをエディタで開き86行目にある、
$avg = sprintf ("%.${places}f", $avg); を $avg = sprintf ("%.1f", $avg); と修正する。
${places}という値を1に変更しただけ。これで小数点以下1桁という意味になる。(勝手に私が思い込んでいるだけかもしれませんが…)
保存した後、サーバーへ再度アップロードで完了。以上。
これで今のところは小数点以下1桁までの平均点が表示されていると思います。変更した値の1を2とか3にすることで、小数点以下の桁数を増やすこととか色々できそうですが、そこから先は私にはお手上げ。あと、最後にもう一度mt-voteのエントリー用のテンプレを修正したので再アップします。文法をちょこっと修正しました。
<ul>
<li>Vote!:
( <a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=1">1</a>
<a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=2">2</a>
<a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=3">3</a>
<a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=4">4</a>
<a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=5">5</a> )</li>
<li>Votes average:(<MTVoteAverage lastn="300">)</li>
<li>Number of votes:(<MTVoteNumber>)</li>
</ul>
mt-voteを設置するためのリファレンスをと思ったのですが、複雑すぎて説明ができません。代わりに私が現在使用しているmt-vote用のテンプレを参考までに晒します。mt-voteのプラグインの入手先とアップロード方法等はDavid Raynes MTVoteに書いております。
So, to use this plugin, download either vote.tar.gz or vote.zip, unpack it, and place mt-vote.cgi in your base MT directory, Vote.pm in the lib/MT/App/ directory, and votes.pl in the plugins/ directory.
(エントリー毎に付け加えたテンプレート。”<”と”>”は全角に変換しております。これをスタイルシートでdisplay:inlineとかで私は表示しておりますです。)
<ul>
<li>Vote!:</li>
<li>(<a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=1">1</a></li>
<li><a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=2">2</a></li>
<li><a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=3">3</a></li>
<li><a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=4">4</a></li>
<li><a href="<$MTCGIPath$>mt-vote.cgi?__mode=vote&entry_id=<$MTEntryID$>&value=5">5</a>)</li>
<li>Votes average:(<MTVoteAverage lastn="300">)</li>
<li>Number of votes:(<MTVoteNumber>)</li>
</ul>
(トップページのサイドバーへ付け加えたテンプレ。テンプレの内容は、averageの高い順に5件表示するという内容です。<MTVotes lastn="5">の値の5が表示件数になってます。)
<dl>
<dt>Votes Result</dt>
<dd>
<ol>
<MTVotes lastn="5">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTVotes>
</ol>
</dd>
</dl>
はじめに自分がやりたかった構想とは大きく違う結果に…。どうも、エントリー毎にしか投票機能とその結果は表示できないみたい。んー。
トップページにくだらないアンケートでも、と思ってたんだけどそういう風な使い方はmt-voteではできない模様。あー疲れた。
色々と試行錯誤しながらなんとか投票機能を使えるように試してるのですが、うまくいかないです。うーん。
mt-voteのプラグインファイルを覗いたところ、<MTVote>タグに付加することができる属性は”lastn”と”current_blog_only”という属性のみしか使えないのではないだろうか、と今のところ思ってます。いや、よくわからないですけど。
mtタグにlast="N"という属性を付加することで、最新の件数を表示させるという意味で合ってると思うのですが、それがうまく反映されなくて難航中。例えば、<MTEntries last="10">とすると最新のエントリー10件が表示されることになります。この属性は色々と使う場面が多くてcategoryとかtrackbackを表示するときにも使い、同様に最新の~件という風に使うのですが、<MTVote>に使うと上手く表示してくれない…。なんでだ。
<MTVote last="1">とすれば、最近投票されたエントリーを一件表示するという意味でいいはずだと思うけど、そうではないみたい。うぬぬぬ。この問題さえクリアできればあとはなんとかなるのになー。
アンケートとか投票といったことをホームページでやるためのプラグイン…ということでいいのかな。とりあえず形だけは導入してみました。ほんとに形だけ。今のところ投票しても機能しません。フォームにすると何故かエラーになるから、仕方なくテキストリンクにしてはみたけど(これは他に原因がありそう…)。うーん、どうやったらいいのかわからん。検索して調べてみてもmt-voteに関する情報が少なすぎる。少ない上にほとんど英語サイト_| ̄|○
それだけマイナーというか使おうとする人が少ないのかわかりませんが、上手く機能させることができるようになったらリファレンスでも作ります。(アンケートやるなら無料配布のcgiを使った方が簡単だと薄々気づいてるけど、あえてmt-voteで)
例えば、投票した後のデータはどこに保存されるのか。MTVoting Systemとは何なのか。何故現在のところ1票だけ投票が反映されているのか。そのデータはどこに保存されているのか。データとかそういうものではないのか。エントリーID2を投票用にテストで運用してみてはいるんだけど、それが何故サイドに表示されているのか(他にもテストで別のエントリーに投票しているため)。
メモリ不足。強制終了。ぐーzzz