ウェブログというのは、自分から見るとメインのページからの
階層構造になっていますが、訪問者にとっては、それぞれの記事が
入り口になっている場合が多いです。
そこで、個別の記事のページに同じカテゴリの記事のタイトルを
並べておくことで、他の記事も読んでもらえる可能性が高くなると思います。
さらにこのスクリプトでは、同カテゴリのトップ10を表示することで、
より、その効果を高められるのではないかと思います。
もちろん前バージョンの全記事のランキングやカテゴリのランキングも表示します。
PHPの埋め込みですので、レンタルのアクセス分析などのようにブラウザの機能に
左右されることはありません。
■ダウンロード
ryoko
こんにちは。上記のファイルをDLさせていただきました。
早速設置してみました。良いTIPSをありがとうございます。
ところで、書き出されるURLがarchives/000000.html…という記述になりますよね。
うちはarchives/200407/21-2252.phpというふうに、書き出し方を変えているので、
うまくランキングから記事へリンクされません。
とりあえず.htacceessにRedirectを記述して飛ばす……という対応をしてみたのですが
この方法ですとエントリが増えるたびに手動で書き出さないといけません。
何かいい方法はないでしょうか。
お知恵をおかしいただければ大変嬉しいです。
よろしくお願いいたします。
pekoe
MT3のUtil.pmを見ると
my $basename = $entry->basename();
$basename ||= dirify($entry->title());
$file = sprintf("%04d/%02d/%s", unpack('A4A2', $entry->created_on), $basename);
で、ファイル名を生成しているようなので、
$entryを$row2に換え、
fav_main2.phpの
$file = sprintf("%06d", $itemid);
とある行と入れ替えてみたらどうなるでしょう?
※その前にあるクエリーも書き換えないといけないですね。
$query = "SELECT entry_title, entry_blog_id, entry_created_on
とある行を
$query = "SELECT *
としてしまいましょうか。
ryoko
素早いご返答ありがとうございました。
しかしながら、門前の小僧なので……ちょっといじってみましたら怪しいソースが
ダラダラと流れ出てきてしまいました……。
・Util.pmの$entryを$row2に換える
・fav_main2.php(もしくはfav_main.php)の$file = sprintf("%06d", $itemid);を
→$file = sprintf("%04d/%02d/%s", unpack('A4A2', $row2->created_on), $basename);に変更
・さらに$query = "SELECT entry_title, entry_blog_id, entry_created_onを
→$query = "SELECT *に変更
という意味で間違っていないでしょうか?
お手数をおかけして申し訳ございません。
pekoe
Util.pmにファイル名の生成が書いてあるという意味で、
このファイルは書き換えないでください。
$entryを$row2に換えたものを
fav_main2.phpの
$file = sprintf("%06d", $itemid);
と入れ替えてください。
(1行を削除、3行追加となります)
$queryの行はそのとおりです。41行目です。
ryoko
何度も申し訳ありません。
> my $basename = $row2->basename();
> $basename ||= dirify($row2->title());
> $file = sprintf("%04d/%02d/%s", unpack('A4A2', $row2->created_on), $basename);
を
> $file = sprintf("%06d", $itemid);
と入れ替えいうことでよろしいんでしょうか。
pekoe
多分そうだと思います。
MT3はインストールしていないので、
本当にそういうテーブル名なのかわからないもので。
もしかしたら、
$row2->basename
を
$row2->entry_basename
のように「entry_」をつけるのかもしれません。
ryoko
たびたびすみません。
fav_main2.phpを書き換えたところ
Parse error: parse error, unexpected T_VARIABLE in /home/(省略)/fav_count/fav_main2.php on line 48
とエラー表示が出てしまいました。
また同カテゴリの記事ランキングは
そのままサイドバー等にソースをはり付けても
MTEntryタグコンテナの外では使えません、
とエラーになってしまいます。
fav_main.phpはいじっていないので
全記事のアクセスランキングは無事に表示できていますが、
URLはarchives/000000.html…のままなので、手動で対応しています。
ちょっと行き詰まってしまいました。
とてもいいTIPSなので残念です……。
pekoe
$basename ||= dirify…
の行の前に
require_once("/パス/mt/php/lib/MTUtil.php");
を挿入したらどうなるでしょう?
パスは書き換えてください。
dirifyという関数を定義しなくてはならないですから。
junichi_y
すばらしいスクリプトですね。
当サイトに早速設置させていただきました。
ありがとうございます。
pekoe
junichi_yさんへ。
使用開始の日付を書き換えていないような気がします。
1日あたりの数字が変かも。
junichi_y
あー!(笑)
ありがとうございます。
早速変更いたします。