法則36 Ajaxを利用して人気記事ランキングを表示する
prototype.pagerank.jsのカスタマイズ
Cookieを有効にする
//14 行目
var pagerank_enable_cookie = 1;
ブログIDを指定する
//21 行目
var pagerank_blogid = <$MTBlogID$>;
トップページのURLを指定する
//33 行目
var pagerank_blog_url = '<$MTBlogURL$>';
関連ファイルの場所を指定する
//34 行目
var pagerank_home_url = 'js/pagerank/';
ランキングの表示件数を指定する
//57 行目
var pagerank_ranking_max = 15;
ランキングの表示形式を選択する
//63 行目
var pagerank_ranking_type = 1;
ランキングのタイトルを指定する
//274 行目
var title = document.title.replace(' - ブログ名', '');
rank_config.phpのカスタマイズ
アクセスログのファイル名を指定する
//9 行目
$GLOBALS['RANK_DATA'] = 'data.txt';
集計期間のファイル名を指定する
//13 行目
$GLOBALS['PERIOD_DATA'] = 'period.txt';
集計期間を指定する
//19、20、21 行目
$GLOBALS['PERIOD_MONS'] = 0;// 月:0 . 3 の間で設定
$GLOBALS['PERIOD_DAYS'] = 14;// 日:0 .31 の間で設定
$GLOBALS['PERIOD_HOUR'] = 0;// 時:0 .24 の間で設定
除外IPアドレスを指定する
//29 行目
$GLOBALS['SELF_ADDR'] = array('0.0.0.0');
集計用のJavaScriptを呼び出す(X)HTMLソース
<script type="text/javascript" src="<$MTBlogURL$>js/pagerank/prototype.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/pagerank/prototype.pagerank.js"></script>
ランキングを表示する(X)HTMLソース
<div id="pagerank_viewer">
<script type="text/javascript">pagerank_view();</script>
</div>
出力される(X)HTMLソース
<ul id="page-rank" class="widget-list">
<li class="widget-list-item rank-list-odd">
<a title=" ページタイトル" href=" エントリーURL" target="_blank">
<span class="right rank-list-1st"> アクセス数</span> ページタイトル</a></li>
<li class="widget-list-item rank-list-eve">
<a title=" ページタイトル" href=" エントリーURL" target="_blank">
<span class="right rank-list-2nd"> アクセス数</span> ページタイトル</a></li>
<li class="widget-list-item rank-list-odd">
<a title=" ページタイトル" href=" エントリーURL" target="_blank">
<span class="right rank-list-3rd"> アクセス数</span> ページタイトル</a></li>
</ul>
<p style="text-align:right;">30 日間ログを集計します。</p>
rank_view.phpの46行目~76行目の内容
$cnt = 0;
$s = "<ul id='page_rank' class='widget_list'>\n";
foreach ($count as $key => $val) {
$class = $class_rrobin[$cnt++%2];
$rankclass = $class_rankin[($cnt>3)?0:$cnt&3];
$s .= '<li class="widget_list_item list_entry'.$class.'"><a title="'.$title[$key].'" href="'.$url[$key].'" target="_blank">';
if ($GLOBALS['TYPE']) {
if (2 == $GLOBALS['TYPE']) {
$val = sprintf("%3.2f%%", ($val / count($count) * 100));
}
$s .= '<span class="right'.$rankclass.'">'.$val.'</span>';
}
if ($desc[$key]) {
$s .= $title[$key].'<span class="desc">'.$desc[$key].'</span></a></li>'."\n";
}
else {
$s .= $title[$key].'</a></li>'."\n";
}
// 指定された上位ランク数に達したら終了します
if ($GLOBALS['MAX'] && $cnt >= $GLOBALS['MAX']) break;
}
$s .= '</ul><p style="text-align:right;">14 日間ログを集計します。</p>';
ダウンロード
Movable Type備忘録
リンク
Movable Type備忘録