Movable Type入門 » カスタマイズ 上級編

Movable Type 人気エントリーランキング

「自サイト内の人気エントリーランキング」を検索してみたところ、二つの方法を見つけました。

1.MTで人気記事ランキングを作る - #BLOGさん
 |-人気記事ランキング再び (MT-MostVisited) - blog:N@TURE BRAINさん
2.人気記事のランキングを表示する - Open MagicVox.netさん
 |-人気記事ランキング -  りえすけ島ナンデモ日誌さん

両方共試してみましたが、一番近い環境がりえすけさんのサイトだったので、
こちらを中心に参考にさせて頂きました。

ポイント
 ・XREA ※ロリポップは1.のスレ先でapacheログの代わりを自作したサイトがあったので後で試します。
 ・エントリーのファイル名がフリー ※1.は基本的にエントリーID。スレ先に改良版あり?

設定

まずは、人気記事のランキングを表示するからphpをダウンロードし、 上記の記事内容をしっかり読んでください。

という訳で私の設定状況ですが、

21、24行目を書き換え

$szLogDir= '/virtual/自分のID/log';
$szOutput = '/virtual/自分のID/public_html/hottopic.php';

53-55行目を書き換え
if ($past == 0) {
array_push ($ret, sprintf ("独自ドメイン.log"));
}else{
array_push ($ret, sprintf ("独自ドメイン.%d.log",$past));
}

79行目を書き換え 私はarchives抜きのyyyy/mm/entry_base.php
return (preg_match ("/^¥/¥d{4}¥/¥d{2}¥/(¥w+)¥.php/", $url));※ ¥は半角に修正して下さい。

そして出力ファイル名を「hottopic200.php」で保存&再構築。

しかし、hottopic200.phpにアクセスすると


#!/usr/local/bin/php
最近の注目記事集計スクリプト for Movable Type

--- Top Entry ---
Array
(
[nDivDay] => 7
[nTopEntry] => 5
)
--- Output ---
■ 最近の注目記事

Warning: fopen(/virtual/私のID/public_html/hottopic.inc.php) [function.fopen]: failed to open stream: Permission denied in /virtual/私のID/public_html/hottopic200.php on line 12385


となり、hottopic.inc.phpは生成されていない…
hottopic200.phpのパーミッション?

2006.09.03解決 やはりパーミションでした。 705→707にしたら解決。

そもそもlogには何も入ってないんですけど、apacheのログを吐き出すように事前設定が必要?
public_html/log/にはログを吐き出しているんですが、これとの違いは?

2006.09.03解決 XREAの管理画面のアクセスログ閲覧設定が誤ってました。

で、hottopic200.phpにアクセスし、hottopic.phpが生成されたのですが、

ブラウザからアクセスすると

Warning: Unknown: SAFE MODE Restriction in effect. The script whose gid is 48 is not allowed to access /virtual/私のID/public_html/hottopic.php owned by uid 48 in Unknown on line 0

Warning: Unknown: SAFE MODE Restriction in effect. The script whose uid is 48 is not allowed to access /virtual/私のID/public_html/hottopic.php owned by uid 48 in Unknown on line 0

Warning: Unknown: failed to open stream: Success in Unknown on line 0

Warning: Unknown: Failed opening '/virtual/私のID/public_html/hottopic.php' for inclusion (include_path='.:/usr/local/lib/php') in Unknown on line 0

と表示されます。

FTPでソースをみると

■ 最近の注目記事

 
となっているので、またアクセスブロックのようですね。。。 SAFE MODEってなんでしょう?

2006.09.03夕方解決 これはinclude用のファイルなので
そのように使えば問題なし。

ちなみにFTPのソースが空欄なのは、独自ドメインって書いてある所でcomが抜けてました…

という訳で、できた画面なんですが…
来週あたりに公開するホームページなのでその時にはリンクを貼ります。