MTVote の出力順をカスタマイズする

| コメント(0) | トラックバック(1)

早速たくさん投票していただきありがとうございます。 どうやら一人で何度もポチっとしてくださる方がいらっしゃるようで^^; 押した後の再構築でエラーになることが多いから、何度もやってしまうんだと思うのですけどね・・・・

さてさて、 投票結果をトップページの左側に表示するようにしたのですが、 表示順は平均点となってしまうよう。 これだと一人が "5" を投票したページのほうが、 十人が "4" を投票したページの上にいってしまう。 なんかおかしいなと思い、 総合点順で並べ替えを行うように改造します。 ついでに、 平均や投票者数でも並べ替えられるようにしちゃいましょう。

変えるのは、 votes.pl と結果表示用のタグです。

まず、 votes.pl です。 40行目付近にあるこんな記述を見つけます。


my @topVotes = sort
{ $totalVoteData{$b}->{average} <=> $totalVoteData{$a}->{average} } keys %totalVoteData;

これを、下のように置き換えます。 太字が変更箇所です。


my $sortkey = $args->{key} || "value";
my @topVotes = sort
{ $totalVoteData{$b}->{$sortkey} <=> $totalVoteData{$a}->{$sortkey} } keys %totalVoteData;


次に投票結果を出力するページには、下記のようなタグを追加しています。


<MTEntries limit="1">
<ol>
<MTVotes lastn="10" key="value">
<li><a href="<$MTEntryPermalink$>" target="_blank"
title="<MTVoteNumber>人評定<平均>MTVoteAverage lastn="300">点)">
<$MTEntryTitle trimj_to="15"$></a><<MTVoteTotalValue>)
</li>
</MTVotes>
</ol>
</MTEntries>

新たに、 <MTVotes> タグに key が追加しました。 ここでソート順を指定します。 指定しない場合は、 総得点順に多いほうから並べて出力します。 key に指定できるのは、 value (総合点順)、 average (平均点順)、 total (投票数順) です。

今回も「やむやむ」さんのページと、 「VS再構築」さんのページを参考にさせていただきました。 ありがとうございます。

この記事はどうでしたか?

ちょっと時間かかりますが、よかったらポチッとしてください^^。
もしエラーになっても、リロードしないでね~w(このページの結果はすぐに反映されません)
Bad ←          → Good    平均点:(3.8) 総合点:(148) 投票人数:(39)

トラックバック(1)

トラックバックURL:

 

MTvoteを付けたのは良いのだけれど、 なんだかよくわからない記事にたくさん投票されてます。 アクセスログを見てみると、 どうもクローラー(ボット)から... 続きを読む

コメントする

カテゴリ

アーカイブ

人気ブログランキング - よんだりくわんだり
Powered by Movable Type 4.261
Counter
本日: today 昨日: アクセス一覧

お買い物




楽天で探す



マクロミルへ登録

広告

デル株式会社 宅配ピザのドミノ・ピザ セブンネットショッピング

Blog pet

このブログ記事について

このページは、chikaが2009年3月20日 05:26に書いたブログ記事です。

ひとつ前のブログ記事は「MTvote プラグイン」です。

次のブログ記事は「今年はクリスタル」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。