Movable Type 備忘録
アクセスランキング・プラグイン(prototype.pagerank.js)
- Prev Page: prototype で Five Star Rating( Starbox )2
こんばんわ^^
prototype で動作するアクセスランキングの最新版を作ってみました。
機能は以下の通りです。
- prototype 1.6.0.3 で動作します。
※未確認だけど、それ以前のバージョンでも問題ないように思うのココロ。 - 最大 7 日分のログを収集して、その集計結果をランキング表示します。
たぶん、巷で配布されてるランキングと同様の表示のされ方だと思われまする。 - 複数のブログを運営されてる場合、個々のブログ内のランキング表示、すべてのブログを合わせたランキング表示といったことが可能です。
- JSON フォーマットでデータを取得するので、JavaScript 側で自由に加工することができます。
というかんじでしょうか( ̄∇ ̄)
[2010.04.12] 特定のページを除外したい場合のオプション名を間違って記載してました。
[2009.05.10] リファラ情報を JavaScript から転送するよう変更しました。
[2009.05.01] ランキング表示用のコードに不具合がありましたので修正しました。
[2009.04.07] 順位をデザインするためのクラス( rank_list_1st ~ rank_list_3rd )において、正しくマークアップされてなかったので修正しました。
[2009.03.28] ロギング開始実行時において prototype エラーが発生する不具合を対応しました。
[2009.03.22] prototype.pagerank.js 内に誤字がありましたので修正しました。
[2009.03.21] 任意のページタイトル名を指定できる( 以前のバージョンの機能復元 )よう対応しました。
ダウンロード
以下の場所からダウンロードできます。
ディレクトリ構成
以下のようなディレクトリ構成として説明していきます。
http://bizcaz.com/
|
+-- index.html ★メインブログ
|
+-- blog1/
| +-- index.html ★サブブログ1
|
+-- blog2/
| +-- index.html ★サブブログ2
|
+-- js/
| +-- pagerank/ ★ランキングスクリプトアップロード場所
| |
| | +-- parototype_pagerank.js
| | +-- rank_post.php
| | +-- rank_config.php
| | +-- rank_deny.php
| | +-- JSON.php
| |
| | +-- log/ ★ログ格納場所
| | +-- 01/ ★ブログ1用
| | +-- 02/ ★ブログ2用
| |
設置の仕方
以下の手順で設置します。
ランキングスクリプトのアップロード
上記からランキングスクリプトをダウンロードして、js/ フォルダ毎サーバにアップロードします。アップロード先はどこでも構いません。各自の環境に合わせてアップロードしてください。
ここでは、上記ディレクトリ構成のようにアップロードするものとして説明していきます。JavaScript の修正
各自のサイトのページタイトルに合わせて prototype.pagerank.js 内の 30 行目を修正します。
以下に主な例を記します。ページタイトル抜き出しの為のコード修正
■ページタイトルが「ページ名 - サイト名」の場合replace(' - サイト名', '')■ページタイトルが「サイト名 - ページ名」の場合replace('サイト名 - ', '')■ページタイトルが「ページ名:カテゴリ名:サイト名」の場合splite(':')[0]■ページタイトルが「サイト名:カテゴリ名:ページ名」の場合splite(':')[2]
基本的には正規表現を使って、TITLE 属性のテキストからページ名だけを抜き出せれば OK です。分からないことがあればご連絡頂ければと思います。
修正したら保存して所定の位置にアップロードします。
HTML ヘッダ( <head>~</head> )に追加
HTML ヘッダに以下の追加します。
HTML ヘッダ追記
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script><script type="text/javascript" src="http://●●●.com/js/pagerank/prototype.pagerank.js"></script>
青字の部分にはランキングスクリプトのアップロード先 URL で変更します。
赤字の部分は prototype.js をロードする為の記述ですが、既にロード済みの場合には不要です。ランキング表示用コード埋め込み
各テンプレート内に、ランキング表示したい場所に以下のコードを埋め込みます。
ランキングコード埋め込み
<div id="pagerank_viewer"><script type="text/javascript">new PageRank('pagerank_viewer', {blog_id :10,blog_url :'http://bizcaz.com/',script_url :'http://bizcaz.com/js/pagerank/',/**▼オプション▼*/include_all_logs:0,hide_rank :0,page_name :'',exclude_top :1,exclude_page :0,ranking_max :10,ranking_type :1,enable_cookie :1,target :''});</script></div>
赤字の部分を必ず同一にする必要があります。
また、各パラメータの詳細を以下に記します。blog_id
ブログ ID を指定します。必須です。
基本的には複数のブログで利用する場合に影響するもので、必ず各ブログでユニークな ID であればどんな値でも構いません。ただブログ ID が重複しないので無難かと思うのココロ。blog_url
ブログの URL を指定します。必須です。
script_url
ランキングスクリプトのアップロード先 URL を指定します。必須です。
上記ディレクトリ構成だと 'http://bizcaz.com/js/pagerank/' を指定します。include_all_logs
複数のブログでランキング表示している場合、統合したランキング表示したい場合に指定するオプションです。
- 0: 個別ブログランキング表示モード( デフォルト )
- 1: 全ブログランキング表示モード
hide_rank
ログ収集だけ行って、ランキング表示はさせたくない場合に指定するオプションです。
- 0: 通常モード( デフォルト )
- 1: 非表示モード
page_name
任意のページタイトルを指定するオプションです。
通常は使うことはありませんが、場合によっては TITLE 属性以外のタイトル名で表示したいって時などにお使いください。exclude_page
特定のページをランキングから除外したい場合に指定するオプションです。
- 0: 除外しない( デフォルト )
- 1: 除外する
exclude_top
トップページをランキングから除外したい場合には指定するオプションです。
- 0: トップページ除外しない
- 1: トップページ除外する( デフォルト )
ranking_max
上位何件分をランキング表示するか指定するオプションです。デフォルトでは上位 15 件分表示されます。
ranking_type
ランキング表示形式を指定するオプションです。以下の表示形式を選択することができます。
- 0: カウント非表示
- 1: カウンタ表示( デフォルト )
- 2: パーセント表示
target
リンクの TARGET 属性を指定します。
'_blank' や '_self' を指定することでクリック時に別ページで表示されるようになります。デフォルトは TARGET 属性なしです。enable_cookie
クッキーの有効/無効を指定するオプションです。クッキーを無効にしてしまうと、アクセスの度にカウントされます。
- 0: クッキー無効
- 1: クッキー有効( デフォルト )
マークアップ
実際に表示されるランキング一覧は以下のようにマークアップされてます。
<ul id="page_rank" class="widget_list"><li class="widget_list_item list_entry rank_list_eve"><a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル<span class="right rank_list_1st">No 1. アクセスカウント</span></a></li><li class="widget_list_item list_entry rank_list_odd"><a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル<span class="right rank_list_2nd">No 2. アクセスカウント</span></a></li><li class="widget_list_item list_entry rank_list_eve"><a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル<span class="right rank_list_3rd">No 3. アクセスカウント</span></a></li>::<li class="widget_list_item list_entry rank_list_eve"><a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル<span class="right">No10. アクセスカウント</span></a></li></ul><div class="rank_info">Range: 開始日-終了日: 収集期間<br />Total Count: 総カウント数</div>
そして、同梱してますサンプル( index.html )では以下のような CSS になっています。
CSS
#pagerank_viewer {margin: 1em;width: 460px;border:5px solid #4c597f;}#pagerank_viewer p {margin: 0;padding: .2em;color: #eee;background-color: #4c597f;}ul#page_rank {margin: 0;padding: 0;list-style: none;background-color: #eee;border: 1px solid #414e74;}ul#page_rank a,ul#page_rank a:link,ul#page_rank a:visited,ul#page_rank a:active,ul#page_rank a:hover {color: #303;text-decoration: none;}ul#page_rank li {margin: 0;padding: 0;width: 100%;line-height: 2;}ul#page_rank li a {padding-left: .5em;height: 100%;line-height: 2;display: block;border: 1px solid #e8e8e8;}ul#page_rank li a span.right {padding: 0 .5em;float: right;font-weight: 700;}ul#page_rank li a span.desc {display: block;line-height: 1;font-size: 80%;font-weight: bold;}ul#page_rank li.rank_list_odd a {background-color: #e4e4e4;}ul#page_rank li.rank_list_eve a {}ul#page_rank li a:hover {background-color: #dedede;border: 1px solid #dedede;}
全ブログを対象としたアクセス・ランキング表示の仕方
全ブログのアクセス・ランキングのケースを以下に記します。
- メインブログで全ブログのアクセスランキング表示
- 各サブブログでは個別のアクセスランキング表示
上記のケースの場合、以下のように設置します。
メインブログに、以下の全ブログ用アクセスランキング表示用のコードを埋め込みます。
全ブログ用アクセスランキング表示
<div id="grand_pagerank"><div id="grand_pagerank"><script type="text/javascript">$('#grand_pagerank').PageRank({blog_id:10,blog_url:'http://bizcaz.com/',script_url:'http://bizcaz.com/js/pagerank/',include_all_logs:1});</script></div>
ポイントは赤字のところです。
次に、各ブログに通常のアクセスランキング表示用のコードを埋め込みます。
全ブログ用アクセスランキング表示
<div id="grand_pagerank"><div id="book_pagerank"><script type="text/javascript">$('#book_pagerank').PageRank({blog_id:11,blog_url:'http://bizcaz.com/blog1/',script_url:'http://bizcaz.com/js/pagerank/'});</script></div>
cron を使って各ブログのログファイルを 1 つのファイルにまとめます。
具体的には以下のようなコマンドファイル( cmd.sh )を作成して、cron で定期的にコマンドファイルを実行するようにします。cd /home/user/www/js/pagerank/log find ./[0-9]*/ -name "data*" -exec cat "{}" \; > data00上記コマンドが実行されると、log/ フォルダ内に data00 というファイルが作成されます。
除外したい IP アドレスの登録
任意の PC からのアクセスをすべて除外( カウントに含めない )したい場合には以下のようにします。
rank_deny.php をブラウザから実行します。
http://●.com/js/rank_deny.php用途としては、自分自身のアクセスをカウントとして含めない・・・などです。
また、除外する IP アドレスはすべてのブログで有効になります。
以上です。
Trackback Pings(0)
No trackbacks found.




bzbellさん、早速のprototype版の作成ありがとうございます。
prototype1.6.0.3にて
prototype.pagerank.plugin-212を導入してみました。
log生成、pagerank/index.htmlでの表示は正常に行われるのですが、
pagerank/index.htmlの表示の際にスクリプト・エラーが出ます。
(BLOG本体ではhide_rankを非表示でテスト。現在はplugin自体を無効にしてます)
エラー内容は下記の通りです。
*****
エラー: handler.call is not a function
ソースファイル: http://www.mizunara.com/prototype.js
行: 3966
*****
prototype1.6.0でも同様でした。
インストール・マニュアルとの違いはjsディレクトリの代わりにscriptディレクトリ配下に
pagerankディレクトリを置いている位です。
logデータは残したままですので、http://www.mizunara.com/script/pagerank/index.html
でテストできると思います。
お気づきの点が有りましたらご教授をお願いします。
またまたご面倒をお掛けしますが、よろしくお願いします。
>>1 オーク さん
こんばんわ^^
エラー確認しました。
どうやら Ajax Request 送信後エラーが発生してるみたいですね。
で通信はできてるし、何だか勝手に!? エラーされちゃってるみたいな気がする
コードを読み返したところ特に問題なさそうなかんじなので、じっくり原因を追究しないとダメみたい。
お手数おかけしました & 少しお時間ください。
>>2 bzbell さん
ご面倒をおかけします。よろしくお願いします。
>>3 オーク さん
こんにちわ^^
遅くなりましたが、prototype.pagerank.js を修正しましたのでご確認頂けたらと思います
原因は Event.Observer にありました。
>>4 bzbell さん
>>4 bzbell さん
bzbellさん、ありがとうございました。
バッチリ解決です。またまたお世話になりました。
>>5 オーク さん
こんばんわ^^
> バッチリ解決です。またまたお世話になりました。
良かったですぅ
今後ともどうぞよしなに
すいません、パーミッションは
前バージョンと一緒でいいのでしょうか?
ローダーは動いてるのですが
全然表示されないんです
サーバーはヘテルム使っております。
ご指導よろしくお願いします。
>>7 かお さん
こんにちわ^^
パーミッションは同じでいいのです。
実際にサイトを見てないので何とも言えないのですが、たぶんサーバ側スクリプトが動作してないと思います。
ヘテムルだとちょと気になるところはありますが、たとえばブログ ID が 1 だった場合、log/01/ というようにあらかじめフォルダを作成しても動作しませんか!?
すいませんヘテムルでしたね(汗
フォルダを作ってみましたがダメでした
諦めて前バージョンに戻します。
ありがとうございました。
>>9 かお さん
こんばんわ^^
諦めちゃうんですか…そうですか。残念
お力になれなくってすいません
はじめまして!
prototype.pagerank.plugin-214を先ほど導入してみたんですが、表示がうまくいきません。
LOGファイルは正常に取れていますが、サンプルのindex.html及びブログのサイドバーでは
表示されません。
サンプルINDEXは以下のURLです。
http://game-hack.net/blog/js/pagerank/index.html
ブログはMT4.25
サーバーは自宅サーバー:OS Win Server2008でIIS7です。
どこか記述等間違っていますでしょうか?
お手数ですが、よろしくお願いいたします。
>>11 ヒロ さん
こんばんわ^^
すいません、不具合がありました。
上記を修正すれば表示されると思います具体的には prototype.pagerank.js 内の 97 行目を以下のように修正して頂くか、新たに DL して頂けたらと思います。
>>12 bzbell さん
こんばんわ!
早々のご対応ありがとうございました。
無事ランキング表示されました(^^)
あと、個別記事のみログを取りたいのでheadの箇所は個別記事のみにつけていたんですが、
ウィジェットとして登録しているのでランキング表示が個別記事のみになってしまいます。
この状態で、除外したページにランキグのみ表示する事は可能でしょうか?
はじめまして。kazuと申します。
こちらのランキングシステムの設置を試みているのですが
カウントとランキングが表示されません・・・。
テストページでは、以下のように表示されているだけです。
--------------------------
Range: 2009/05/02-2009/05/02
Count: 0/1Days
--------------------------
ちなみに、5月1日の修正版をアップロードするまでは
この表示もありませんでした。
ログファイルを生成していないようですので、私の設定に問題が
あるとは思うのですが・・・
ご教示頂けますと幸いです。
>>13 ヒロ さん
こんにちわ^^
> あと、個別記事のみログを取りたいのでheadの箇所は個別記事のみにつけていたんですが、
> ウィジェットとして登録しているのでランキング表示が個別記事のみになってしまいます。
>
> この状態で、除外したページにランキグのみ表示する事は可能でしょうか?
個別記事のみロギングして、他ページは表示だけ・・・ということですね。
それでしたら以下のようにするといいと思います。
<div id="pagerank_viewer"><script type="text/javascript"> new PageRank('pagerank_viewer', { <mt:Unless name="entry_archive">exclude_page: 1</mt:Unless> }); </script></div>上記はランキング・ウィジェットをカスタマイズした例になります。
個別記事以外の場合だけ exclude_page オプションに '1' を設定されます。
各テンプレート内でランキング・ウィジェットを mt:Include してるかと思いますが、再構築時にテンプレートのタイプがチェックされますので ヒロ さん の思惑通りになると思います
>>14 kazu さん
こんにちわ^^
応答が返って来ているので全体的なデータのやり取りはうまくいっていると思われます。
また、kazu さんの使い方を見る限り、1 日分だけログ収集するということでよかったですか。
※rank_config.php 内の ROTATION_DAYS を '1' に変更してるかと思います。
1 日というのが少し気になってます
試しに rank_config.php 内の ROTATION_DAYS をデフォルト( 7 )に戻して、stat ファイルというのを削除して確認してみて頂けますか。正しく表示されるようなら、予想通り 1 日と指定したことによる rank_post.php の不具合ということになります。
お使いのサーバの PHP 環境による問題かもしれません。
rank_post.php では log/ フォルダを作成してその中にブログ ID 毎のフォルダを動的に作成します。 このフォルダ作成ができないとログ収集もされないし、表示も 0 件のままとなります。 どちらのサーバをお使いですか!?
以上ご確認ください
>>16 bzbell 様
ご返答ありがとうございます。
KAZUです。
ROTATION_DAYS を '1' に変更いたしましたが、特に変化はないようです。
また、statファイルというものが見当たらなかったのですが、このファイルも
自動で生成されるものなのでしょうか?
今現在、最初にアップロードしたファイル以外に増えたファイルはありません(笑)
サーバーはクララオンラインのFPSサーバーを利用しています。
PHPの環境は以下となっております。
http://www.kenkogaku.com/info.php
ランキング表示用テストページは以下になります。
http://www.kenkogaku.com/js/pagerank/index.html
以下のテスト記事に解析用ソースをはりつけています。
http://www.kenkogaku.com/guide-diet/post.php
(18行目あたりになります。)
パーミッションも777にしたり、755にしたりと
色々と試してみましたが上手くいきません。
ちなみに、以下のバージョンのprototype版は動作いたしました。
http://bizcaz.com/archives/2007/11/23-215846.php
何か原因は考えられますでしょうか・・・。
>>15 bzbell さん
こんばんわ!
なるほど!そう言う方法があるんですね。勉強になります!
MTUnless を使ってカウントの取得制御は出来ました!
ありがとうございました(^^)
ただ、記事編集時のプレビューのページまでカウントされてしまいますが(^^;
盲点でした・・・URLでの制御が出来れば・・・
>>17 kazu さん
> ROTATION_DAYS を '1' に変更いたしましたが、特に変化はないようです。
いえ、'1' に変更するのではなく、デフォルトである '7' に変更してください…とお願いしたのですが
> …statファイルというものが見当たらなかったのですが…
分かりました。
明らかに PHP の問題と思われまする
> PHPの環境は以下となっております。
PHP 4.3.2 だと自動的にフォルダが作成できない( リカーシブに )かも
kazu さんご自身で以下のようにフォルダを作成して確認してみてください。
たとえば、ブログ ID=1 の場合には、01/ フォルダを作成し、ブログ ID=42 の場合なら 42/ フォルダというように作成します。
まとめると、rank_post.php 内では PHP の機能を使って階層的なフォルダを作成するのですが、kazu さんの PHP 環境では階層的なフォルダを動的に作成することができないんだと思います。
なので、予めフォルダを用意してあげることでログ収集 & 表示が可能になるのでは…と思います。
ご確認ください
>>18 ヒロ さん
> ただ、記事編集時のプレビューのページまでカウントされてしまいますが(^^;
> 盲点でした・・・URLでの制御が出来れば・・・
そうですねぇ。
それは MT の仕様上しょうがないですね
たとえば、mt.cgi が含まれた URL を弾くことはできます。
その場合には prototype.pagerank.js 内 の 48 行目を以下のように変更します。
上記はトップページ、および MT のインストール先 URL の場合にはロギングを行わないようにする処理になります。
これならプレビュー時においてはログ収集対象外にされると思われまする。
ご確認ください
>>20 bzbell さん
こんばんわ!
やっぱり仕様上仕方ないんですね(^^;
教えて頂いたスクリプトをprototype.pagerank.jsに記述してみましたが、駄目でした・・・
ログには
http://game-hack.net/blog/2008/09/mt-preview-4c317c7b386fa8633dd0d0d7ce02d76ca467fab2.html?184456
http://game-hack.net/blog/2008/07/mt-preview-79f475f732e23399e73ee32ed0c434dec4444c29.html?185358
の様になります。
URLのmt-previewを含むアドレスを対象外にする事は可能でしょうか?
お手数ですがよろしくお願い致します。
>>21 ヒロ さん
あっごめんなさい
わたしあまりプレビューって使ってないのでてっきり mt.cgi かと思ってました。 ご確認くださいmt.cgi じゃなくって mt-preview なんですね。
では、以下のように変更してください。
>>22 bzbell さん
ありがとうございます。変更してみたんですが・・・・
う~ん、mt-previewにしてもログを取られてしまいます~(^^;
>>19 bzbell さん
お世話になります。KAZUです。
/log/フォルダに手動でidのフォルダを作成いたしましたが
やはり何も変化が無いようです(^^;
ちなみに、ログ収集期間の設定は1ではなく7にしておりましたが
間違えて1とレスしてしまいました・・・。
PHPのバージョンの問題ということで、どうしようも無いようですね・・・。
旧バージョンを使用させて頂こうと思います。
ありがとうございましたm(_ _)m
>>23 ヒロ さん
> う~ん、mt-previewにしてもログを取られてしまいます~(^^;
えっ!? そんなはずはないんですが
ウチでも確認したところちゃんと弾いてるようですよ。
>>25 bzbell さん
すいません、他のPCからアクセスして確認したら問題ありませんでした(^^;
いろいろとありがとうございました!
非常に助かりました(^^)
こんばんは、はじめましてよっしーと申します。
このたびこちらのアクセスランキングを設置させていただき
どうにかこうにか表示もされるようになったのですが
どうしてもランキング表示に
ブログの記事名 - ブログのタイトル hit数
といった具合で表示されるのですがこれを
ブログの記事名 hit数といった具合に
ブログのタイトルを抜くことはできますでしょうか?
いろいろ試してみたのですがどうしてもわからず
ご教授いただければと思います。
お手数をおかけしますがよろしくお願いいたします。
>>27 よっしー さん
こんばんわ^^
よっしーさんのサイトのブログ記事名( TITLE )は以下のようなフォーマットでよいですか!?
それでしたら、prototype.pagerank.js 内の 32 行目によっしーさんとこのサイト名称で変更していただければ期待する表示になると思います
ご確認ください。
>>28 bzbell さん
サイトのブログ記事名のフォーマットで気がつきました。
思うような表示にできそうです。
大変迅速なお返事でとても助かりました。
ありがとうございました!
またこのような素晴らしいプラグインもありがとうございます
bzbell さん
アクセスランキング・プラグイン の開発ありがとうございます!
設置もでき、カウントもとれているようなのですが、、
5-2
> 次に、各ブログに通常のアクセスランキング表示用のコードを埋め込みます。
この記述をしているところで JS エラーが出てしまいます。
--
$("#book_pagerank") is null
[Break on this error] $('#book_pagerank').PageRank({
--
コードはブログ記事のテンプレートに記述しました。
サンプルは以下のようになっていましたが、閉じタグが足りないので
<div id="grand_pagerank">
<div id="book_pagerank">
「grand_pagerank」は削除したり、そのままでもやってみたりしていますが
解決しません..
確認は Firefox3.7 で Firebug を使っています。
初歩的な質問で恐縮です。
何か足りなさそうなところがあればご教授いただけると幸いです。
>>30 ymrhs さん
こんばんわ^^
ご質問の件ですが、ymrhs さんは jQuery 版をお使いということでよいですか!?
サンプルのコードにミスがありました。
jQuery のコンフリクト対策したコードになってなかったので、対応したものを UP( ver2.21 )しましたので改めて DL して頂くか、テンプレート内に埋め込んだコードを以下のように変更してください。
<div id="pagerank_viewer"> <script type="text/javascript"> j$('#pagerank_viewer').PageRank();</script> </div>以上ご確認ください
>>31 bzbell さん
早速のご返信ありがとうございます。
> ご質問の件ですが、ymrhs さんは jQuery 版をお使いということでよいですか!?
jQuery 版ではなくこちらの prototype 版を使わせていただきました。
(prototype.pagerank.plugin-215.zip をダウンロードしました)
分かりました!私の勘違いでした。。
お手数おかけしてホントすみません。
「全ブログを対象としたアクセス・ランキング表示の仕方」というのを
読み飛ばしてサンプルを記述していました。
今回は1つのブログだけに使っているので、記述の必要がなかったのですね。
勝手に「この記述でログをとっているのかなと」思い込んだりもしていました。
恥ずかしい限りです。かたじけないです。
ご親切にしていただき、ありがとうございました!
こんにちは。
いつも参考にさせていただいております。
prototype.pagerank.plugin-215の導入に挑戦したところ、RangeとCountは表示されましたが、logファイルが取得できませんでした。
(現在の表示)
-------------------------------------------
Range: 2009/05/03-2009/05/09
Count: 0/7Days
------------------------------------------
これまでのコメントを参考にして次のとおり確認しましたが、解決しませんでした。
1 logフォルダにブログIDフォルダを追加しました。
log/01フォルダ
2 パーミッションを設定しました。
フォルダ755 phpファイル644 jsファイル644
ブログはMT4.25、サーバーはXERAです。
ブログURL
http://www.jupi.jp/
スクリプトURL
http://www.jupi.jp/js/pagerank/
サンプルURL
http://www.jupi.jp/js/pagerank/index.html
(ブログには右サイドバーに設置)
どのように対処すればよろしいかご教示いただければ幸いです。
お忙しいところ申し訳ありませんが、よろしくお願いします。
>>33 jupi さん
こんにちわ^^
XREA をお使いとの事ですが、ウチも CORESERVER を使ってまして、PHP スクリプトを使用する際にはセキュリティの関係上ちょと小細工が必要になります。
pagerank/ フォルダ内に .htaccess を作成してその中に以下を記入してください。
通常 PHP スクリプトはモジュールモードで動作します。
このモードだとパフォーマンスに優れますが、PHP スクリプトに対してパラメータを渡すことができません。なので、特定のフォルダ内( .htaccess を置いたフォルダ配下 )の PHP については CGI モードで動作させる必要があるわけですが・・・ご存知でしょうか
ご確認ください
早速のお返事ありがとうございます。
.htaccessファイルが必要だったことをすっかり忘れていました。
おかげさまでlogファイルを生成できるようになりました。
大変助かりました。ぺこり
管理人さま はじめまして。
各プラグイン、たいへん活用させていただいています。
今回のアクセスランキングプラグインですが、ログファイルが生成されず、上記jupiさんと同じような状況になり悩んでいます。
使っているバージョンは、prototype.pagerank.plugin-217になります。
個別IDのフォルダを作り、パーミッションは各数値に変更して試しましたが変化はありませんでした。
サーバはさくらインターネット(スタンダードプラン)なのですが、やはりPHPとサーバの相性に問題があるのでしょうか・・・?調べてみたところ、さくらのPHP については CGI モードで動くみたいです。
CORESERVERと同じようにhtaccessで対処できると助かるのですが・・。
何か良い方法をご存じでしたらご教授いただけないでしょうか。
なにとぞ宜しくお願いします。
>>36 さとる さん
こんにちわ^^
さくらインターネットでしたら友達が使用してますし、わたしも先ほど確認したところ普通に利用できました
ただし、さくらインターネットでは PHP のバージョンを選択することができますが、わたしは PHP5( PHP 5.2.8 ) を選択しています。
たとえば pagerank/ フォルダを http://user.sakura.ne.jp/ 配下にアップロードしたと仮定すると、サンプルページ( pagerank/index.html )内のコードは以下のようになります。
<div id="pagerank_viewer"> <script type="text/javascript"> new PageRank('pagerank_viewer', { /* *▼必須▼ */ blog_id :1, blog_url :'http://user.sakura.ne.jp/', script_url :'http://user.sakura.ne.jp/pagerank/' }); </script> </div>php.ini の編集など、特に小細工なく使用できますのでご確認頂けたらと思います
bzbellさん
こんにちは。ご返答&ご確認ありがとうございます!
うーん、SAKURA環境だと問題なく使えるんですねー・・。
私の環境をもう一度確認してみます。
お手数をお掛けしました どうもありがとうございました!
>>28 bzbell さん、はじめまして。
私も「よっしー」さんと同様に、ブログのタイトルを取り除きたいのですが、
prototype.pagerank.js内のどこを修正すれば良いのでしょうか?
よろしくお願い致します。
>>39 ぽんた さん
おはよございます^^
ぽんた さんとこのブログの TITLE 属性のフォーマットによって記述が変わります。
たとえば、「サイト名称 - ページタイトル」というフォーマットだった場合には以下のように記述してください。サイト名称を除外するコードは prototype.pagerank.js 内の 32 行目を編集することで実現できます。
op.page_name = this.pagerank_espace(op.page_name.replace('サイト名称 - ', ''));上記『サイト名称』を、ぽんた さんとこのサイト名で変更します。
よく分からないようでしたら、ぽんた さんのブログの URL を教えていただければわたしの方で確認した上で修正方法をご連絡します
今後ともどうぞよしなに
こんにちは!
ご回答ありがとうございます。
私のサイトでは、
titleタグの構成が下記のようになっています。
「ペータイトル | サイト名 - サイト名のサブタイトル」
この場合は、
「 | サイト名 - サイト名のサブタイトル」の部分を取り除くのですよね?
>>41 ぽんた さん
では以下のように変更して確認してみてください。
確認ですが、
上記いずれも満たしているのでしたら、先ほどの例をそのまま使用して頂けたらと思います。
以上です
アドバイスありがとうございます。
1,の条件ですが、全角ではなく半角です。
説明不足で大変失礼致しました。
半角縦線でやってみたのですが、どうも出来ませんでした。
お手数をお掛け致します。
>>43 ぽんた さん
すいません>>44 bzbell さん
表示されました!!
丁寧にアドバイスして頂き、誠にありがとうございます。
これからも大切にプラグインを使わせて頂きます!
それでは失礼致します。
こんにちは、TOSHIZOと申します。
ランキング表示のプラグインを活用させて頂いております。
ありがとうございます。
なんとかランキング表示がされるところまでは出来たのですが、ランキングポイントとページタイトルの間にポイントのP(ポイントのP)のマークを表示したいのですが中々うまくいきません。
どこをどのように書き換えればいいのかご教授いただけないでしょうか。
初歩的な質問で申し訳ございません。
どうぞよろしくお願いします。
>>46 ajyuchoaheyo さん
こんばんわ^^
prototype.pagerank.js 内の 98 行目を以下のように変更してみてください。
out.push(['<span class="right">P', val, '</span>'].join(''));上記のように変更することで以下のような表示がされると思います。
ご確認くださいbzbellさん
早速、ご指導くださいましてありがとうございます。
思い通りの表示にすることが出来ました。
これからも色々と勉強させていただきたいと思ってます。
よろしくお願いします。
ありがとうございました。
こんにちは。
アクセスランキングの217を設定をして表示を確認したところ、
jupiさんのように、
(現在の表示)
Range: 2009/12/19-2009/12/25
Count: 0/7Days
は表示されるのですが、logが取得できていないようで
ランキングが表示されません。
rapidsiteのvpsを利用しています。
なにか特別な設定とうは必要になりますでしょうか。
おしえていただけないでしょうか。
宜しくお願いします。
>>49 jari10 さん
こんにちわ^^
返事が遅くなってすいません。
ご質問の件ですが、サーバサイドプログラムは応答を返してることから、たぶんサーバ環境の問題かと思われまする。
調べたところ、jari10 さんがお使いのサーバの PHP のバージョンは PHP4 をお使いということで間違いないでしょうか。
本来なら自動的に log/ フォルダを作成して、その中ブログ ID のフォルダが作成されます。
ですが、PHP4 では未サポートなコードを使用してるため、log/ フォルダなどが作成されない=ログが保存されない…という現象が発生してると思われます。
■PHP4 対策
rank_post.php 内の 9 行目を以下のように変更して確認してみてください。
変更前 if (!file_exists($param['LOGDIRS'])) @mkdir($param['LOGDIRS'], 0755, true); 変更後 // if (!file_exists($param['LOGDIRS'])) @mkdir($param['LOGDIRS'], 0755, true); if (!file_exists($param['LOGDIRS'])) { if (!file_exists('log')) @mkdir('log', 0755,); @mkdir($param['LOGDIRS'], 0755,); }以上ご確認ください
bzbellさん
以前にもお世話になりました ymrhs と申します。
前回とても便利に使わせていただいたので、また別件でもお世話になろうと思っております。
よろしくお願いします。
著作権に関して質問させてください。
http://creativecommons.org/licenses/by/2.1/jp/
「原著作者のクレジットを表示しなければなりません」とは
prototype.pagerank.js のコピーライトを消さずに残しておくということで
条件は満たされるでしょうか?
著作権のことがよくわかっていなくて、初歩的な質問ですみません。。
やりたいことは以下の通りです。
・ログの取得はプラグインをそのまま使わせていただく。
・ランキング表示はプラグインの JSON を使っての表示ではなく、別途 PHP プログラムを用意してランキングの HTML 生成をする。 ( readlog() 関数をコピーしてカスタマイズします。)
カスタマイズの理由は JavaScript OFF の方でも
ランキングは表示したいからです。(ログ取得はあきらます)
ランキング生成プログラムは cron で日に一度実行する予定です。
長文になってしまい申し訳ございません。
問題ないとよいのですが。。
>>51 ymrhs さん
こんばんわ^^
前のバージョンですと、PHP 側で HTML を出力するコードになってたのですが、PHP を知らないとデザイン変更がムズかしいかな…と思って JavaScript 側で出力するよう変更したんです。
それでしたらご報告頂けたのでご自由に使っていただいて構いませんよ
そんな変更も、JavaScript 知らないなら結局変更できないから意味ないですよね
ウチが作ったものについての著作権を言われてますか
>>52 bzbell さん
とてもありがたいです
ありがとうございます!!
ランキングプラグインを使用させていただいております。
素敵なプラグインをありがとうございます。
ひとつ質問させてください。
MT5に設置したのですが、
ブログのトップページは集計・表示しているのですが
子ページ(ブログ記事ページ)をどうも集計していないようなのです。
トップページには、
---
サイト名(トップページ)
Range: 2010/04/02-2010/04/08
Count: 28/7Days
---
というように、トップページの集計結果のみが表示されています。
子ページは、Javascriptは設置していますが、表示はありません。
ログには
http://www.domain..com/blog1/<>ブログ名<>111.22.33.44<>http://domain.com/blog1/2010/04/post.html
という感じで記述されています。
HTMLヘッダは各ページに設置してあります。
この状態で、どういう原因が考えらえれますでしょうか?
思い当たることがあれば、教えていただければと思います。
お忙しいところ恐縮ですが、よろしくお願いいたします。
>>54 うなびどん さん
こんばんわ^^
返事が遅くなりすいません。
トップページしかロギングされないとのことですが、それはおっかしいですね。
基本的にトップページ以外のページでは除外するようなことはしません。
ですが、オプションの exclude_page を使用された場合には例外ではありません。
各ページ内で exclude_page オプションを使用してないかご確認ください
>>55 bzbell さん
返信ありがとうございます。
exclude_page オプションは使用してないです。
再度DLからやり直してみたりしたんですが
どうしても解決できなかったので、
今回は違うプログラムを使用しました。
(締切もあるので(^_^;))
可能性があるとしたら・・・
MTユーザー(apach)とFTPのユーザーが違うことでしょうか・・・?
でもパーミッションは、対応するように設定してあるんですよね・・・。
また原因がわかりましたらご報告しますね。
お手数おかけしてすみませんでした
