Movable Type 備忘録

 アクセスランキング・プラグイン(jquery.pagerank.js)

  • Oct042008
  • Vote:
    http://bizcaz.com/archives/2008/10/04-002457.php
  • Categories: jQuery
  • Tags: ,
  • Social Bookmark

こんばんわ^^

先日ご連絡したように、こちらのAjaxでアクセス・ランキングを表示する4でご紹介してる、jQuery 用のアクセスランキング・スクリプトをプラグイン化してみました。

プラグイン化に伴って少し使い方が変更されてます。

[2009.05.30] ランキング順位をシーケンシャルに表示できるよう変更したのと、CSS を外部参照するようにしました。

[2009.05.17] リファラ・ランキング機能を追加しました。いわゆる逆アクセス・ランキングです。

[2009.05.11] すいません。コンフリクト対応したコードが元に戻ってしまってましたので修正しました。

[2009.05.10] リファラ情報を JavaScript から転送するよう変更しました。

[2009.05.07] サンプルの記述にミスがありました。
正しくコンフリクト対応したコードに修正しました。

[2009.04.07] 順位をデザインするためのクラス( rank_list_1st ~ rank_list_3rd )において、正しくマークアップされてなかったので修正しました。

[2009.03.22] jquery.pagerank.js 内に誤字がありましたので修正しました。

[2009.03.21] 任意のページタイトル名を指定できる( 以前のバージョンの機能復元 )よう対応しました。

[2009.03.20]

  • ログ収集はするけど表示はさせないという機能を追加しました。
  • アクセス除外登録を、ブログ別ではなく、すべてのブログで有効となるよう変更しました。

[2009.03.19] ログ収集期間を表示できるよう機能追加しました。

[2009.03.18] 複数のブログに設置する場合の不具合を対応しました。

[2009.03.17] 以下の修正を行いました。

  • コンフリクト対策
  • JSON データ転送の際、サーバによっては HEADER を意図的に送信しなくてもよい!? のかエラーするのでコメントしました。
  • サンプルページを修正しました。

[2009.03.17] また ShowLoader の不具合を修正しました。何度もすいません(つω-`。)よく見ろってかんじですね。

[2009.03.16] 不具合を一点修正しました。
jquery.pagerank.js 内の ShowLoader に記述ミス( わたしのサイト用のコードになってた )がありましたので修正!! すいません。

[2009.03.15] 複数ブログでログ収集を行っている場合、cron を使うことで全ブログのラインキング表示に対応しました。
cron で定周期実行するコマンドは以下の通りです。

cd /home/xxx/xxx/js/jquery/pagerank/log
find ./[0-9]* -name "data*" -exec cat "{}" \; > data00

上記はでやってることは、

  1. ログ格納フォルダに移動( この時必ず絶対パスで指定すること )します。
  2. log/ フォルダから data* に該当するファイルの内容をすべて data00 というファイルにかき集めます。この時以前のデータは上書きされます( 一定周期で最新のデータを収集 )

combine.sh というファイルを新規作成して上記をコピー & ペーストします。
後はお使いのサーバの設定方法に従って、combine.sh を定期実行するようにします。

[2009.03.15] ランキングの期限を切らず、ローテーション( デフォルト 7 日 )しながらランキング表示するバージョンを追加しました。
旧バージョンとの互換はありません。

使い方

使い方はカンタンです。

  1. 以下の ZIP ファイルをダウンロードして、各自の環境に合わせてアップロードしてください。

  2. HTML ヘッダ( <head>~</head> )に以下のコードを追加します。

    HTML ヘッダに追加

    1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
    2. <script type="text/javascript">jQuery.noConflict(); var j$ = jQuery;</script>
    3. <script type="text/javascript" src="http://●●●/jquery.pagerank.js"></script>

    赤字の部分を jquery.pagerank.js のアップロード先 URL に変更します。

  3. テンプレート中のアクセス・ランキングを表示したい場所に以下のコードを追加します。

    ランキング表示

    1. <div id="pagerank_viewer">
    2.     <script type="text/javascript">
    3.         j$('#pagerank_viewer').PageRank({
    4.             /*
    5.              *▼必須▼
    6.              */
    7.             blog_id :1,
    8.             blog_url:'http://blog_url.com',
    9.             script_url:'http://script_url.com/js/pagerank/',
    10.             /*
    11.              *▼オプション▼
    12.              */
    13.             include_all_logs :0,
    14.             hide_rank :0,
    15.             page_name :'',
    16.             exclude_top :1,
    17.             exclude_page :0,
    18.             ranking_max :10,
    19.             ranking_type :1,
    20.             enable_cookie:1,
    21.             target :''
    22.         });
    23.     </script>
    24. </div>

    赤字の部分にランキング表示したいセレクタを指定します。
    青字の部分は必要に応じて以下のオプションを指定することができます。

    • blog_id

      ブログ ID を指定します。必須です。

    • blog_url

      ブログの URL を指定します。必須です。

    • script_url( only Ver2.1x )

      ページランキング・スクリプトのアップロード先 URL を指定します。必須です。

    • page_name

      任意のページタイトルを指定するオプションです。
      通常は使うことはありませんが、場合によっては TITLE 属性以外のタイトル名で表示したいって時などにお使いください。

    • include_all_logs( only Ver2.1x )

      複数ブログでアクセスランキングのトラッキングコードを埋め込んでいた場合、すべてのブログでのアクセスランキング表示したい場合に指定するオプションです。
      ただし、全ブログ用のログファイルは cron 実行により各ブログのログデータを 1 つのファイルに結合しておく必要がります。

      • 0: 個別ブログランキング表示モード( デフォルト )
      • 1: 全ブログランキング表示モード
    • include_ref_logs

      リファラ(逆アクセス)ランキングを表示したい場合に指定するオプションです。
      リファラ情報はページアクセスのログを使用します。ですので、ページアクセス用のコードは必ず埋め込んでおく必要があります。

      • 0: アクセスランキング表示( デフォルト )
      • 1: リファラランキング表示
    • hide_rank( only Ver2.1x )

      ログ収集だけ行って、ランキング表示はさせたくない場合に指定するオプションです。

      • 0: 通常モード( デフォルト )
      • 1: 非表示モード
    • exclude_page

      特定のページをランキングから除外したい場合に指定するオプションです。
      具体的には exclude_page:1 というように指定してください。

      • 0: 除外しない( デフォルト )
      • 1: 除外する
    • exclude_top

      トップページをデフォルトで除外したい場合には指定するオプションです。
      ですが、トップページはデフォルトで除外するようにしてます。ですので、除外したくない場合に指定してください。具体的には exclude_top:0 というように指定します。

      • 0: トップページ除外しない
      • 1: トップページ除外する( デフォルト )
    • ranking_max

      上位何件分をランキング表示するか指定するオプションです。デフォルトでは上位 15 件分表示されます。

    • ranking_type

      ランキング表示形式を指定するオプションです。以下の表示形式を選択することができます。

      • 0: カウント非表示
      • 1: カウンタ表示( デフォルト )
      • 2: パーセント表示
    • target( only Ver2.1x )

      リンクの TARGET 属性を指定します。'_blank' や '_self' を指定することでクリック時に別ページで表示されるようになります。デフォルトは TARGET 属性なしです。

    • enable_cookie

      クッキーの有効/無効を指定するオプションです。デフォルトではクッキー有効(1)です。
      クッキーを無効にしたい場合には enable_cookie:0 というように指定します。クッキーを無効にしてしまうと、アクセスの度にカウントされます。

      • 0: クッキー無効
      • 1: クッキー有効( デフォルト )
  4. HTML ヘッダ中に以下のコードを追加します。

    HTML ヘッダ

    1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
    2. <script type="text/javascript" src="http://●●●.com/js/jquery.pagerank.js"></script>

    青い時の部分を各自の環境に合わせて変更します。
    既に jquery.js をロード済みの場合には改めて追加する必要はありません。

  5. ランキング一覧は以下のようにマークアップされます。

    マークアップ

    1. <ul id="page_rank" class="widget_list">
    2.  
    3. <li class="widget_list_item list_entry rank_list_eve">
    4.     <a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル
    5.         <span class="right rank_list_1st">No 1. アクセスカウント</span></a></li>
    6.  
    7. <li class="widget_list_item list_entry rank_list_odd">
    8.     <a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル
    9.         <span class="right rank_list_2nd">No 2. アクセスカウント</span></a></li>
    10.  
    11. <li class="widget_list_item list_entry rank_list_eve">
    12.     <a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル
    13.         <span class="right rank_list_3rd">No 3. アクセスカウント</span></a></li>
    14.                                     :
    15.                                     :
    16. <li class="widget_list_item list_entry rank_list_eve">
    17.     <a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル
    18.         <span class="right">No10. アクセスカウント</span></a></li>
    19. </ul>
    20.  
    21. <div class="rank_info">Range: 開始日-終了日: 収集期間<br />
    22.     Total Count: 総カウント数</div>

    そして、同梱してますサンプル( index.html )では以下のような CSS になります。

    CSS

    1. #pagerank_viewer {
    2.     margin: 1em;
    3.     width: 460px;
    4.     border:5px solid #4c597f;
    5. }
    6. #pagerank_viewer p {
    7.     margin: 0;
    8.     padding: .2em;
    9.     color: #eee;
    10.     background-color: #4c597f;
    11. }
    12. ul#page_rank {
    13.     margin: 0;
    14.     padding: 0;
    15.     list-style: none;
    16.     background-color: #eee;
    17.     border: 1px solid #414e74;
    18. }
    19. ul#page_rank a,
    20. ul#page_rank a:link,
    21. ul#page_rank a:visited,
    22. ul#page_rank a:active,
    23. ul#page_rank a:hover {
    24.     color: #303;
    25.     text-decoration: none;
    26. }
    27. ul#page_rank li {
    28.     margin: 0;
    29.     padding: 0;
    30.     width: 100%;
    31.     line-height: 2;
    32. }
    33. ul#page_rank li a {
    34.     padding-left: .5em;
    35.     height: 100%;
    36.  
    37.     line-height: 2;
    38.     display: block;
    39.     border: 1px solid #e8e8e8;
    40. }
    41. ul#page_rank li a span.right {
    42.     padding: 0 .5em;
    43.     float: right;
    44.     font-weight: 700;
    45. }
    46. ul#page_rank li a span.desc {
    47.     display: block;
    48.     line-height: 1;
    49.     font-size: 80%;
    50.     font-weight: bold;
    51. }
    52. ul#page_rank li.rank_list_odd a {
    53.     background-color: #e4e4e4;
    54. }
    55. ul#page_rank li.rank_list_eve a {
    56. }
    57. ul#page_rank li a:hover {
    58.     background-color: #dedede;
    59.     border: 1px solid #dedede;
    60. }

全ブログを対象としたアクセス・ランキング表示の仕方

全ブログのアクセス・ランキングのケースを以下に記します。

  • メインブログで全ブログのアクセスランキング表示
  • 各サブブログでは個別のアクセスランキング表示

上記のケースの場合、以下のように設置します。

  1. メインブログに、以下の全ブログ用アクセスランキング表示用のコードを埋め込みます。

    全ブログ用アクセスランキング表示

    1. <div id="grand_pagerank">
    2. <script type="text/javascript">
    3. j$('#grand_pagerank').PageRank({
    4.     blog_id:0,
    5.     blog_url:'http://mainblog.com/',
    6.     script_url:'http://script_url.com/',
    7.     include_all_logs:1
    8. });
    9. </script>
    10. </div>

    ポイントは赤字のところです。

  2. 次に、各ブログに通常のアクセスランキング表示用のコードを埋め込みます。

    各ブログ用アクセスランキング表示

    1. <div id="book_pagerank">
    2. <script type="text/javascript">
    3. j$('#book_pagerank').PageRank({
    4.     blog_id:1,
    5.     blog_url:'http://blog.net/book/',
    6.     script_url:'http://script_url.com/'
    7. });
    8. </script>
    9. </div>

各ブログで上記トラッキングコードを埋め込んだら再構築します。

リファラ・ランキング表示の仕方

リファラ・ランキングはデフォルトのアクセス・ランキングのログを使用して表示します。
ですので、ページアクセス用のコードは必須で埋め込んでおく必要があります。

リファラ・ランキング表示する場合には以下のようなコードになります。

リファラ・アクセスランキング表示

  1. <div id="referer_pagerank">
  2. <script type="text/javascript">
  3. j$('#referer_pagerank').PageRank({
  4.     blog_id:1,
  5.     blog_url:'http://mainblog.com/',
  6.     script_url:'http://script_url.com/',
  7.     include_ref_logs:1
  8. });
  9. </script>
  10. </div>

赤字のところは必須です。
また、外部からアクセスされた URL をランキング表示用に変換する必要があります。 たとえば、http://search.yahoo.co.jp/ を「ヤフー検索」といったかんじで、お手数ですが各自のサイトにアクセスされた URL 個々に作成してください。

変換する為のテーブルは rank_config.php 内の 25 ~ 35 行目で定義しています。

rank_config.php / 変換テーブル

  1. $GLOBALS['REFTBL'] = array(
  2.     'http://search.yahoo.co.jp/' => 'http://search.yahoo.co.jp/<>Yahoo 検索(JP)',
  3.     'http://www.google.co.jp/' => 'http://www.google.co.jp/<>Google 検索(JP)',
  4.     'http://www.google.com/' => 'http://www.google.com/<>Google 検索(COM)',
  5.     'http://b.hatena.ne.jp/' => 'http://b.hatena.ne.jp/<>はてなブックマーク',
  6.     'http://search.live.com/' => 'http://search.msn.co.jp/<>MSN 検索',
  7.     'http://search.msn.co.jp/' => 'http://search.msn.co.jp/<>MSN 検索',
  8.     'http://search.goo.ne.jp/' => 'http://search.goo.ne.jp/<>GOO 検索',
  9.     'http://clip.livedoor.com/' => 'http://clip.livedoor.com/<>Livedoor Clip',
  10.     'UNKNOWN' => 'javascript:void(0)<>UNKNOWN',
  11. );

一番下の UNKNOWN はブラウザから直接アクセスされた場合、リファラ情報がないので UNKNOWN と表示するようにしています。
上記テーブルのフォーマットは以下の通りです。

'変換前URL' => '変換後URL<>表示名'

一応、目ぼしいとこの URL は記入しています。必要に応じて追加していってください。 また、必ず上記フォーマットに従ってください。

除外したい IP アドレスの登録

任意の PC からのアクセスをすべて除外( カウントに含めない )したい場合には以下のようにします。

  1. rank_deny.php をブラウザから実行します。

    http://●.com/js/rank_deny.php
    

    用途としては、自分自身のアクセスをカウントとして含めない・・・などです。
    また、除外する IP アドレスはすべてのブログで有効になります。

以上です。
よかったら使ってみてください (●´∀`●)

 Trackback Pings(1)

from rinatsuku.net

探してみて見つけたのが、下記の3つ。 Access Counter http:...

 Comments(158)

#1: Posted by okimo @ October 11, 2008 [REPLY]
user-pic

bzbell さん

はじまして。いつも参考にさせていただき、ありがとうございます。
以前からアクセスランキングも使わせていただいてるのすが、
今回のプラグインで不明な点があるので質問させていただきます。

「page_name:ページタイトル」となっていますが、具体的に何を入れたらよいのでしょうか。

#2: Posted by Author Profile Page bzbellからokimoへの返信 @ October 11, 2008 [REPLY]
user-pic

>>1 okimo さん

こんばんわ^^

> 「page_name:ページタイトル」となっていますが、具体的に何を入れたらよいのでしょうか。

MT をお使いですか!?
エントリページなら <MTEntryTitle> を指定すればいいと思います。
各アーカイブページ(カテゴリ、月別ページなど)なら <MTArchiveLabel> を指定すればいいかなパチパチ
基本的にはアクセスされたページ名称を指定してください。
ただし、サイトタイトル名は含めないほうが良いと思いますテレテレ

#3: Posted by okimoからbzbellへの返信 @ October 12, 2008 [REPLY]
user-pic

>>2 bzbell さん
なるほど、そういうことですね。

なかなかうまくいかないので、もう一度挑戦してみます!
ありがとうございました。

#4: Posted by Author Profile Page jupi @ November 6, 2008 [REPLY]
user-pic

こんにちは。はじめてランキングを設置しようと思います。

記事を参考にして設定した後、ランキング表示部分を確認したのですが、ローディング画像が表示されたままとなり、いつまで待ってもランキングが表示されませんでした。具体的な質問ができずに申し訳ないのですが、よろしければアドバイスをお願いします。

設置個所はhttp://www.jupi.jp/diary/
右サイドバー下方のブログパーツ(価格サイトランキング)の上でローディング画像がグルグル表示されているところです。

なお、設定した内容は次のとおりです。

---jquery.pagerank.js内の19行目のURL---
script_url:'http://www.jupi.jp/mt/js/pagerank/'// PHP スクリプトのアップロード先 URL

※pagerankフォルダアップロード済


---サイドバーのランキング表示部分に追加---
<div id="pagerank_viewer">
<script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:38, page_name:'<MTArchiveLabel>', blog_url:'http://www.jupi.jp/', ranking_max:10});</script>
</div><br>


---HTMLヘッダ中に追加---
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript" src="http://www.jupi.jp/mt/js/pagerank/jquery.pagerank.js"></script>


---パーミッションの設定---
pagerankフォルダ 755
phpファイル 705

※コアサーバ


(参考にした記事)
アクセスランキング・プラグイン(jquery.pagerank.js)---使い方1~3
http://bizcaz.com/archives/2008/10/04-002457.php
Ajaxでアクセス・ランキングを表示する4---設置の仕方4
http://bizcaz.com/archives/2007/11/23-215846.php

#5: Posted by Author Profile Page bzbellからjupiへの返信 @ November 6, 2008 [REPLY]
user-pic

>>4 jupi さん

こんばんわ^^
遅くなってすいません。

ご質問の件ですが、jupi さんのサイト拝見させてもらいました。
rank_view.php が応答してないようですね。
以下に考えられることを記します。

  • CORESERVER をお使いとのことですが、PHP スクリプトを CGI モードで動作させてますか!?
    CORESERVER のデフォルトでは PHP スクリプトはモジュールとして動作します。そうするとパラメータを渡すことができないなどの制約が伴います。その場合には pagerank/ フォルダ内に .htaccess ファイルを作成して以下をコピペしてみてください。

    AddHandler application/x-httpd-phpcgi .php
    
  • pagerank/ フォルダ内に lock_view/ というフォルダが存在してますでしょうか。
    そのフォルダが存在してると排他制御によりロックがかかりっぱなしになってしまいます。その場合にはフォルダを削除してください。

    本来なら CORESERVER ならもっとスマートな排他制御が可能なのですが、他のサーバに合わせて少し古い方法でファイルの排他制御を行ってるんですの。

  • 設置の前に圧縮ファイル中に同梱した index.html による表示確認されてますでしょうか。
    そもそもその表示ができない場合には、本サイトに設置しても表示できません。

こんなかんじでしょうかうぅ~ん
ご確認くださいぺこり

#6: Posted by Author Profile Page jupi @ November 6, 2008 [REPLY]
user-pic

お忙しいところお返事をいただきありがとうございました。まずはお詫びなのですが、大きな間違いをしていたようです。バリュードメインでドメインを取得したときに一緒に借りたサーバーはCORESERVERではなくXREAでした。すみませんでした。

今回教えていただいたものを試してみました。

1 pagerank/フォルダ内に.htaccessを作成し、AddHandler application/x-httpd-phpcgi .phpをコピペしてアプロードしたところ ローディング画像(グルグル表示)が出なくなりましたが、以前としてランキングは表示されませんでした。

2 pagerank/フォルダ内にlock_view/というフォルダはありません。

3 http://www.jupi.jp/mt/js/pagerank/index.php

圧縮ファイル中に同梱してあるindex.phpファイルのbody内を次のコードに書き換えてhttp://www.jupi.jp/mt/js/pagerank/index.phpを確認したところ、太枠で横長の長方形が表示されましたが、ランキングの内容は表示されませんでした。
<div id="pagerank_viewer">
<script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:38, page_name:'<MTArchiveLabel>', blog_url:'http://www.jupi.jp/', ranking_max:10});</script>
</div><br>

※上記作業を行った後、agerank/フォルダを確認したところ、blog38period.txtというファイルが生成されていました。

#7: Posted by Author Profile Page bzbellからjupiへの返信 @ November 7, 2008 [REPLY]
user-pic

>>6 jupi さん

PHP の CGI モードに関してはたぶん XREA でも同様だと思います。
それはさておき、表示側は問題解決のようですね。
今問題となってる原因はロギング側です。
表示後ロギングのスクリプトが実行されないと何も表示されません。
具体的には jquery.pagerank.js 内の 42 行目です。

でも今 jupi さんとこのサイト確認したところ実行されてますので表示できると思いますよワクワク

#8: Posted by Author Profile Page jupi @ November 7, 2008 [REPLY]
user-pic

いろいろとありがとうございます。

表示内容等を確認したところ次のような状況でした。

1 pagerank内にblog38data.txtファイルが生成されました。

2 blog38data.txtファイル内のソースは次のとおりです。
※ログは削除しました。by bzbell

3 サイドバーに次のように表示されました。
3
1<MTArchiveLabel>
14日間ログを集計します。

以上から、page_nameの設定を<MTArchiveLabel>ではなく、<MTEntries>~<$mt:EntryTitle$>~</MTEntries>に変更してみました。

(修正後のサイドバーのコード)
<MTEntries><div id="pagerank_viewer">
<script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:38, page_name:'<$mt:EntryTitle$>', blog_url:'http://www.jupi.jp/', ranking_max:10});</script>
</div></MTEntries>

すると次のように表示されました。
Warning: mkdir() [function.mkdir]: File exists in /virtual/hyousu/public_html/mt/js/pagerank/rank_view.php on line 94
3
1<MTArchiveLabel>
14日間ログを集計します。

この状態でランキングのデータがどのように表示されていくか様子をみればいいのかなと思いました。

#9: Posted by Author Profile Page bzbellからjupiへの返信 @ November 7, 2008 [REPLY]
user-pic

>>8 jupi さん

こんにちわ^^

page_name には記事中にも記してますように必須です。
ですので、ランキング対象とするすべてのページで指定するようにしてくださいね。
また修正後のサイドバーコードについてですが、MTEntries で回してしまうとループ回数分 ランキング用の JavaScript が実行されることになりますが…認識されてますかあせあせ

間違ってたらすいません…なのですが、jupi さんがやりたいことはページ名称を取得したいだけですよね!?
それでしたら、各テンプレート内で MTSetVar name="page_name" などとして、サイドバー内で MTGetVar name="page_name" としたらどうでしょふつう

ご参考まで。

#10: Posted by Author Profile Page jupi @ November 7, 2008 [REPLY]
user-pic

何度も申し訳ありません。やりたいことはご指摘のとおりページ名称を取得することです。

<$mt:EntryTitle$>を<MTEntries>~</MTEntries>で囲んで記事タイトルを表示しようとしましたがこれをやめて、教えていただいた方法でやってみることにして、ブログ記事テンプレートに<MTSetVar name="page_name">を追加し、ページタイトルのコードをpage_name:'<MTGetVar name="page_name">'に置き換えました。

表示を確認すると現段階のページタイトル4つ分のうち1つが表示されており、3つが表示されていませんでした。件数は4件すべて表示されていました。もしかするとこれからページタイトルを取得するものからうまく動作するのかもしれないと思い設定はそのままにして様子をみようと思います。

その他、最初に同包してあったindex.phpのcssコード(横幅や文字や背景のカラーコード等)をカスタマイズしてhead内に追加してスタイルを反映しました。また、rank_view.phpファイルの52行目に$s .= '<p style="text-align:center">ページアクセスランキング</p>';を追加してランキングのタイトルを表示しました。

#11: Posted by Author Profile Page bzbellからjupiへの返信 @ November 7, 2008 [REPLY]
user-pic

>>10 jupi さん

こんばんわ^^

ページタイトルで悩んでるようなら、以下のようにしてみてください。

  1. サイドバー内のランキング表示部を以下のように変更します。

    <div id="pagerank_viewer"><script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:<$MTBlogID$>, page_name:'', blog_url:'<$MTBlogURL$>'});</script>
    </div>
    

    そして再構築します。

  2. 次に jquery.pagerank.js 内の 22 行目に以下を追加します。

    opt.page_name = document.title.replace(' - 双極性障害と躁うつの大きな波', '');
    

    そしてファイル保存して元の場所にアップロードします。

以上でページタイトルを意識することがなくなりますパチパチ

#12: Posted by Author Profile Page jupi @ November 8, 2008 [REPLY]
user-pic

こんにちは。jupiです。

いろいろありがとうございます。

教えていただいた方法を設定してみました。ページタイトルを意識することがなくなりますという意味は記事名の代わりに強制的にサイト名を一律表示するということだったのですね。これだと記事名ではなくサイト名が繰り返し表示されるためページアクセスランキングとはいえないようです。

また、表示された記事名のリンク先をブログ記事のリンク先としたいのですが、すべてブログのメインページがリンク先になってしまうようです。

アクセスの多い記事名をカウント順に表示するランキングにしたいので、どこまでできるかわからないのですが、ページタイトルの取得、表示を記事名・記事リンク先とするようもう少し頑張ってみたいと思います。

#13: Posted by Author Profile Page bzbellからjupiへの返信 @ November 8, 2008 [REPLY]
user-pic

>>12 jupi さん

おはよございます^^

> 強制的にサイト名を一律表示するということだったのですね。

いいぇ、ページの TITLE タグを取得してサイト名称を削除するといったものですがあせあせ

> ページタイトルの取得、表示を記事名・記事リンク先とするようもう少し頑張ってみたいと思います。

はい。がんばってください。

#14: Posted by Author Profile Page jupi @ November 9, 2008 [REPLY]
user-pic

こんにちは。jupiです。

jQuery版スクリプトで設置しました。
ご指導をいただきありがとうございます。
これからもよろしくお願いします。

#15: Posted by aki @ December 24, 2008 [REPLY]
user-pic

いつもお世話になってます!
過去のコメントをざっと読んでこの質問が無かったと(思う)ので質問させてください。

例えば:
以下のように同じインデックスページに複数の異なるランキングを表示させることはできませんか?

ランキング1
<div id="pagerank_viewer"><script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:1, page_name:'', blog_url:'<$MTBlogURL$>'});</script>
</div>
ランキング2
<div id="pagerank_viewer"><script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:2, page_name:'', blog_url:'<$MTBlogURL$>'});</script>
</div>

私がトライしてみたところblog_idを変えても先に読み込まれたスクリプトにすべて統一されてしまいます。つまり「ランキング1」のデータが「ランキング2」のデータに書き変わってしまいます。複数のblog_idから同じページに表示させる事ができないのでしょうか?それとも表示されないのは私の見落としでしょうか?

#16: Posted by Author Profile Page bzbellからakiへの返信 @ December 24, 2008 [REPLY]
user-pic

>>15 aki さん

こんばんわ^^

ご質問の件ですが、たとえば、以下のようにやってみてもダメでしょうかワクワク

<div id="pagerank_viewer"><script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:1, page_name:'', blog_url:'<$MTBlogURL$>'});</script>
</div>
<div id="pagerank_viewer2"><script type="text/javascript">$('#pagerank_viewer2').PageRank({blog_id:2, page_name:'', blog_url:'<$MTBlogURL$>'});</script>
</div>

要するに、表示する先をセレクタを #pagerank_viewer と #pagerank_viewer2 というように分けて表示します。
同一セレクタだと、必然的にブログ 2 の表示で上書きされてしまいますのでキョロキョロ

#17: Posted by aki @ December 25, 2008 [REPLY]
user-pic

速答頂いてありがとうございます!
試してみたらできました!

#18: Posted by aki @ December 27, 2008 [REPLY]
user-pic

先日はアクセスランキングの件でお世話になりました!
厚かましながらもう一つ質問があります。

ランキングは通常通り動くのですが、不定期にこのようなエラーが出てしまいます。

PHP Warning:  mkdir(lock_view) [function.mkdir]: File exists in /home/user/html/js/pagerank/rank_view.php on line 94

error_logを調べるとこのようなエラーも不定期で出ています。

PHP Warning:  mkdir(lock_post) [function.mkdir]: File exists in /home/user/html/js/pagerank/rank_post.php on line 41

こういったエラーは心配する必要はありますでしょうか?また修復する方法はありますでしょうか?

#19: Posted by Author Profile Page bzbellからakiへの返信 @ December 27, 2008 [REPLY]
user-pic

>>18 aki さん

おはよございます^^

短時間の内に複数アクセスされた場合、ログファイルへの書込みを順番に保存していく必要がありまして、その処理が各 PHP ファイル中には入ってます。
複数アクセス時においてファイル保存中などにアクセスされた場合そのようなメッセージが表示されます。

現状だと古いバージョンの PHP に対応したコードとなってまして、flock というものが使用可能な PHP のバージョンでしたら改善されると思います。

aki さんがお使いのサーバの PHP バージョンは PHP5 でしょうかにこっ!
たぶん今どきなら flock が使用可能なバージョンの PHP が多いので、一応変更したものを以下の場所に置きました。
http://bizcaz.com/archives/shoco/js/jquery.pagerank.plugin.zip
rank_view.php と rank_post.php を差し替えて様子を見ていただけますかやあ!
また、lock_post、lock_view というディレクトリが作成されているかもしれません。
その場合にはお手数ですが手動で削除しちゃってください。
残ってても問題ないですが不要なディレクトリなのでワクワク

#20: Posted by akiからbzbellへの返信 @ December 27, 2008 [REPLY]
user-pic

>>19 bzbell さん

頂いたスクリプトを設置しerr_logをチェックしていますが、問題が解消されました!

またまたありがとうございましたあせあせ

#21: Posted by Author Profile Page bzbellからakiへの返信 @ December 27, 2008 [REPLY]
user-pic

>>20 aki さん

こんばんわ^^

解消されて良かったですワクワク
てか、今回変更したコードをデフォルトとしておきますね。今どきのサーバなら PHP もバージョンアップされてるだろうしうぅ~ん
ご連絡ありがとうございました。
今後ともどうぞよしなにぺこり

#22: Posted by 中村ミノル @ March 14, 2009 [REPLY]
user-pic

ランキング表示使用と、プラグインを使わせていただきました。
ページ名、エントリー名は表示されるのですが、
アクセス数が表示されません。
どのような方法が考えられますでしょうか?

#23: Posted by Author Profile Page bzbellから中村ミノルへの返信 @ March 14, 2009 [REPLY]
user-pic

>>22 中村ミノル さん

こんばんわ^^

> アクセス数が表示されません。
> どのような方法が考えられますでしょうか?

またそれは不可思議な現象ですねあせあせ
まずは、Ajax にてデータが正しく送られてきてるかどうかを確認することはできますか?
もし分からないようであれば、アクセスランキングを設置されたページの URL を教えていただければわたしの方で確認します。

確認してみないと断言はできませんが、基本的にはアクセス数だけ表示されないってことはないと思ってます。
仮にサーバ側スクリプトで何らかの問題が発生している場合、タイトル名称さえも表示されないはずですからうぅ~ん

#24: Posted by 中村ミノル @ March 15, 2009 [REPLY]
user-pic

ご親切にありがとうございます。まずは上記の月別アーカイブに設置して設置できるかどうか確認していたところです。一瞬ですが、エイントリー・アーカイブに設置してみましたが同じ結果でしたので、エントリーの方は元に戻して(削除して)います。うまく行くのであれば、月別、カテゴリー、エントリーに表示できないかと考えています。よろしくお願いします。

#25: Posted by Author Profile Page bzbellから中村ミノルへの返信 @ March 15, 2009 [REPLY]
user-pic

>>24 中村ミノル さん

おはよございます^^ 確認したところ、データはちゃんと届いています。 原因は CSS にあるようです。 以下の CSS を追加してみてください。
#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;
}
表示確認できたら、中村ミノル さんのサイトデザインに合わせて変更してください。 以上ご確認くださいぺこり
#26: Posted by 中村ミノル @ March 15, 2009 [REPLY]
user-pic

ありがとうございました!見事に表示されています。感謝いたします。今後もよろしくお願いいたします。

#27: Posted by オーク @ March 17, 2009 [REPLY]
user-pic

bzbellさん、こんばんは。
Five Starでお世話になったオークです。その節は大変お世話になりました。
とうとうpluginになっちゃいましたね。しかも表示期間がローテーションされて。
涎をたらして記事を読ませてもらっているのですが、他のpluginとの関係でprototype版もその内にと切望しております。それからphp化は前提となりますか?以前そんな記述があったような(記憶が曖昧でスミマセン)。

#28: Posted by Author Profile Page bzbellからオークへの返信 @ March 17, 2009 [REPLY]
user-pic

>>27 オーク さん

こんばんわ^^
ご無沙汰しております。

prototype 版も順次作成する予定です。
基本的なところは prototype も jQuery もいっしょなので、jQuery が片付けば prototype も直ぐです。
ただ、まだ設置したばっかりなので実運用上でのローテーションの確認( 擬似データでは確認済み )ってできてないのでそれが終わったらになります。
少しお待ちくださいもじもじ

あと、ブログの PHP 化してなくっても大丈夫ですよワクワク
ただし、サーバ側のログ収集スクリプトが PHP なので、PHP が動作できること( てか、ほとんどのサーバで問題ないと思います )が前提となります。
また、PHP5 を基準にコードを書いてるので、PHP4 の古いバージョンだと動作できない・・・というのはあるかも、です。( 今どきのサーバは大丈夫だろう・・・という勝手な判断してます )

#29: Posted by オークからbzbellへの返信 @ March 17, 2009 [REPLY]
user-pic

>>28 bzbell さん
bzbellさん、早速の回答ありがとうございます。
首を長がーくしてお待ちします。
PHP5ですか。私のサーバーもPHP4から5への切り替えは出来るようになっているようなのですが、これっていきなり切り替えても問題ないのでしょうか?下位互換が取れてればいいのですが、プログラミングをやらない私には心配で切り替えをやっていません。
それから、かつてあるpluginを導入した際に、PHPの作るページが文字化けした経験があります。私のサーバーの基本コードはeuc-j(だったかな、曖昧)なのにMTはutf8で動かしている関係かも、とお思いながらも他はバケないのでそのままにしてあります。これってphp.iniの設定で解決するものなのでしょうか?DBも関係するんでしょうか。素人質問で申し訳ありません。ご教授いただけるとありがたいです。

#30: Posted by Author Profile Page bzbellからオークへの返信 @ March 17, 2009 [REPLY]
user-pic

>>29 オーク さん

> これっていきなり切り替えても問題ないのでしょうか?

PHP5 ではセキュリティが強化されてるようです。 ですので、PHP スクリプトをパラメータ付きで実行した場合動作しなくなります。 たとえば、以下のような記述になります。
<?php xxxx.php?id=1&m=20; ?>
それ以外にも、ウチのサーバ( CORESERVER )では、PHP スクリプトそのまま実行することができません。 .htaccess にて少し小細工が必要だったりします。 たぶん、これらは オーク さんが使われてるサーバサポートから何らかの打診があると思います。

> プログラミングをやらない私には心配で切り替えをやっていません。

そうですね。気軽には切り替えることはやめた方がいいと思います。
オークさんはブログの PHP 化を行ってるのですか!?
ブログの PHP 化を行ってないのであれば、各ブログページ内で PHP スクリプトは使われてないので大丈夫ですね。
ランキングスクリプトのように、外部の PHP スクリプトを実行するケースですね。

たぶんこういった外部のスクリプトに影響がでると思われまする。
言い方かえると、ブログ本体としてはブログの PHP 化を行ってないのであれば問題ないです。
また、PHP4 から PHP5 にバージョンアップに限って言うなら DB は関係ないので大丈夫だと思いますうぅ~ん

#31: Posted by オークからbzbellへの返信 @ March 18, 2009 [REPLY]
user-pic

>>30 bzbell さん
bzbellさん、ありがとうございます。
ランキングの導入の際にまたお世話になりかも知れません。
よろしくお願いします。

#32: Posted by 中村ミノル @ March 18, 2009 [REPLY]
user-pic

先日は真にありがとうございました。本プラグインによりカウントされるブログのページは、
jquerypagerank.jsを読み込ませたテンプレートから生成されるページなのでしょうか?
それとも、カウントされるのはブログの全てのページで、ランキングを表示するのが
jquerypagerank.jsを読み込ませたテプレートから生成されるページ、でしょうか?おそらく
後者ではないかと思いますが、当方のページに設置させていただいたところ、ランキング
がカウントされるページは殆ど全てカテゴリまたは日付アーカイブページであり、
エントリーアーカイブは何故か1件のみです。どこに原因があうのでしょうか?

#33: Posted by Author Profile Page bzbellから中村ミノルへの返信 @ March 18, 2009 [REPLY]
user-pic

>>32 中村ミノル さん

こんばんわ^^

> おそらく後者ではないかと思いますが、

いえ、前者になります。
基本的に jquery.pagerank.js を読込んだページの URL とタイトルを取得してサーバ側でログ保存・・・といったしくみになります。

中村ミノル さんは複数のブログを運営されてるのですね!?
それでしたら、以下のように設置してください。

  1. 個別にランキング表示したいブログには以下のコードを使います。

    <div id="pagerank_viewer">
    <script type="text/javascript">
    $('#pagerank_viewer').PageRank({
    blog_id :★個別ブログのブログ ID,
    blog_url:'★個別ブログの URL'
    });
    </script>
    </div>
    

    上記コードを各ブログの各ページに埋め込みます。

  2. すべてのブログのトータルなランキング表示したい場合

    たとえばメインブログに、すべてのブログのトータルなランキング表示したい場合には以下のコードを使います。

    <div id="pagerank_viewer">
    <script type="text/javascript">
    $('#pagerank_viewer').PageRank({
    blog_id :0,
    blog_url:'★メインブログの URL',
    include_all_logs  :1
    });
    </script>
    </div>
    

というように使うのですが、説明してて不具合を見つけてしまいましたあせあせ
後日、不具合対応版を公開しますのでお待ち頂けますかもじもじ

#34: Posted by Author Profile Page bzbellから中村ミノルへの返信 @ March 18, 2009 [REPLY]
user-pic

>>32 中村ミノル さん

すいません。ご迷惑をおかけしました。
先ほど ver2.15 を UP しましたので改めてダウンロードしてください。
そして、ブログ別にランキング表示したい場合には以下のコードを埋め込んでください。

<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :★ブログID,
blog_url:'★ブログの URL',
script_url:'★ランキングスクリプトのアップロード先 URL'
});
</script>
</div>
★印のところを変更してください。 そして、複数のブログをまとめてランキング表示したい場合には以下のコードをお使いください。
<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :ブログID,
blog_url:'ブログの URL',
script_url:'ランキングスクリプトのアップロード先 URL',
include_all_logs:1★必須
});
</script>
</div>
先ほどに★印のオプションを指定します。 このオプションを指定しないとトータルなランキングが表示されません。

以上です。
ご確認くださいぺこり

#35: Posted by 中村ミノル @ March 19, 2009 [REPLY]
user-pic

ありがとうございます。でも、アレ・・・何だかグルグル回ってる画像が消えません。ローディングですね・・・
今度のは、pagerank.js内はscripturlってのが追加されているだけですよね。
書き換えが必要なのは、このファイルだけですよね?
(もちろん、その他のファイルも念のため今回ダウンロードしたもので上書きしました。テンプレートも
修正しました。テンプレートはscripturlが追加になり、何だったっけ、一つ削除した項目がありましたましたが)

#36: Posted by Author Profile Page bzbellから中村ミノルへの返信 @ March 19, 2009 [REPLY]
user-pic

>>35 中村ミノル さん

こんにちわ^^

> 何だかグルグル回ってる画像が消えません。

それはサーバから応答が返ってきてないですね。 考えられることを以下に記します。
  1. 今回当たらしく追加した script_url がおかしい
    script_url ってオプションにアップロードした pagerank/ フォルダの URL は正しいですか!?
  2. サーバ環境に問題がある①
    添付してます、index.html 内の 80-82 行目を修正して、ブラウザから表示するとどうなりますか!?
  3. サーバ環境に問題がある①
    pagerank/log/ フォルダ配下にブログ別のフォルダが作成されます。そちらは作成されてますでしょうか。また、JSON.php というファイルが pagerank/ フォルダ内にありますでしょうか。

今考えられることはこのくらいかなあせあせ
ただ、ログファイルが存在してなくっても rank_post.php が正しく動作してれば、何らかの応答は必ず返ります。
ですので、クルクル状態が継続するってことはないです。

帰宅したらブログを新規作成して実際に試してみますテレテレ

#37: Posted by Author Profile Page bzbellから中村ミノルへの返信 @ March 19, 2009 [REPLY]
user-pic

>>35 中村ミノル さん

先ほどブログを作って確認してみました。
http://bzbell.com/blog/js/pagerank/

ちゃんと表示できるようですあせあせ
ちなみにウチで使ってるサーバは CORESERVER ですが、PHP スクリプトにパラメータを渡す場合 CGI モードで動作させる必要があります。
そこで、pagerank/ フォルダ内に .htaccess ファイルを作成して以下のような記述を追加してます。

AddHandler application/x-httpd-phpcgi .php
ご参考までにぺこり
#38: Posted by 中村 @ March 19, 2009 [REPLY]
user-pic

おかしいです・・・・
ver.2ではカテゴリ・アーカイブ、日付アーカイブまでは正常に動作してたのに。
ver2.15でグルグルになったということは、何が環境変化の要因になっているのかイマイチ
よくわからないところです。

#39: Posted by Author Profile Page bzbellから中村への返信 @ March 19, 2009 [REPLY]
user-pic

>>38 中村 さん

サーバ側スクリプトもバージョンアップされてますよね!?
サーバ側スクリプトは以下の 4 ファイルになります。

- rank_post.php
- rank_config.php
- rank_deny.php
- JSON.php

このファイルがバージョンアップされてないと、正しいデータを返送できなくなります。

#40: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

アドバイス、ありがとうございました。お陰様で、再び表示できるようになりました。
(昨晩、コメントを打ち込んだのですが送信できてなかったみたいです)

原因は予見されたとおり、rank_post.php- rank_config.php- rank_deny.php- JSON.php
の4つがアップロードされていなかったためです。お騒がせして済みませんでした。
V2.0でアップロードしたrank_check.phpとrank_view.phpはそのまま残してありますが
この2つは変更ないと思っていますがよろしいでしょうか?

後、blog1period.txtは現在「2009032218」となっています。この内容は昨晩
rank_config.phpを更新したことで変更されたのでしょうか?デフォルトの14日間に
到達する前ですが、カウント数も、昨晩リセットされました。

そこで教えて頂きたいのは、設定期間満了以前にカウント数をリセットするには、
rank_config.phpをアップロードすることで実施されるのでしょうか?

どうぞよろしくお願い致します。

#41: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

中村です。お聞きし忘れたことがあります。
最初は、ランキングリストの下段に、「14日間ログを集計します。」
がデフォルトになっていましたが、今回は表示されなくなりました。
この部分は、rank_view.phpの中の
$s .= '</ul><p style="text-align:right;">14日間ログを集計します。</p>';
に該当する部分ですが、これを復活できないでしょうか?
HTML内に直接「14日間ログを集計します。」書いても良いのですが(^^;;)

#42: Posted by Author Profile Page bzbellから中村への返信 @ March 20, 2009 [REPLY]
user-pic

>>40 中村 さん
>>41 中村 さん

おはよございます^^

> 昨晩、コメントを打ち込んだのですが送信できてなかったみたいです

すいません、昨夜は MT4.25 へのアップグレード作業してたのですが、不具合!? らしきもの見つけて、アップグレードは見送ることにしたんです。たぶんその時にぶつかったのだと思います。

> blog1period.txtは現在「2009032218」となっています。

今設置されてるバージョンではそのファイルは不要です。同様のファイルが log/ブログ ID/ フォルダ内に相当するファイルが作成されます。
まったく別物とお考えくださいもじもじ

今回は満了という概念はありません。
常に 7日間のログを表示するようにしてます。
Ver2.16 では、中村 さんが希望してる表示に相当する機能を追加してます。
現在のログ期間を表示するようにしたんです。
なので、毎日表示が変更されていきます。( ウチで設置してるランキング表示参照 )

#43: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

Ver2.16をありがとうございました。
logフォルダのstatファイルは、本日の日付で、且つ、カウント数も本日からのカウント数らしき規模に
なっているのですが、Range: 2009/03/13-2009/03/20: 7Days
Total Count: 45
となっているのは何故なのですか?

#44: Posted by Author Profile Page bzbellから中村への返信 @ March 20, 2009 [REPLY]
user-pic

>>43 中村 さん

はい。ご確認頂いたように、stat ファイルには現在の状態をを記してます。
ログファイル番号<>ローテーション日付
しくみ的には、現在の日付がローテーション日付を過ぎた場合ログファイル番号をカウントアップしていきます。 その際、rank_config.php 内の ROTATION_DAYS の番号を超える場合には '1' に戻す・・・といったことをやってます。

で、ご質問の件ですが、今日( 2009/03/20 )から ROTATION_DAYS 日分遡った日付をログ保存開始日とします。ですので、毎日ログ保存期間がシフトしていくことになります。

設置したての頃は厳密に 7 日間という期間にはなりません。
それはプログラマブルにやってるだけなので、単純に 2009/03/20 を基準に ROTATION_DAYS を遡った日付を計算してるだけなのであせあせ

#45: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

了解です。ありがとうございました!

#46: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

すみません、あと一つだけ初歩的質問ですが。
Range: 2009/03/13-2009/03/20: 7Days
Total Count: 45
のスタイル指定(セレクタ)を教えていただけないでしょうか?
(ちょっと小さめにしたいのです。)

#47: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

度々追加して大変申しわけありません。やや筋違いな問い合わせになってしまいますが、
「個別記事のランキングを表示したいが、表示するページは
カテゴリーアーカイブページや日付アーカイブページだけにしたい」、
といった天の邪鬼なことは出来ないでしょうか?エントリーアーカイブページは
比較的パーツが多くあり、表示するものを限定したい事情があるからです。
エントリーアーカイブテンプレートだけ、
#pagerank_viewer {display:none;}
を指定して見ましたが、divの中身がjavascriptのためか、styleが有効になりません。
つまり、非表示としたくても表示されます。

#48: Posted by Author Profile Page bzbellから中村への返信 @ March 20, 2009 [REPLY]
user-pic

>>46 中村 さん
>>47 中村 さん

セレクタにていてですが、'rank_info' というクラス名を追加したものを先ほど UP しました。
また、非表示モードも追加してますので改めてダウンロードして頂き、jquery.pagerank.js だけ差し替えてご確認頂けたらと思いますぺこり

#49: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

早速ver2.17をありがとうございました。恐縮です。
hide_rank : 1,
と指定すると、全てのページで非表示となりますが、非表示にしたいのがエントリーアーカイブ
の戸と頃だけ、という場合は、どのような設定となりましょうか?
表示するテンプレートには、
<script type="text/javascript" src="<$MTBlogURL$>pagerank/jquery.pagerank.js"></script>

非表示するテンプレートにはhide_rank : 1,を設定した方をjquery.pagerank-2.jsとして
<script type="text/javascript" src="<$MTBlogURL$>pagerank/jquery.pagerank-2.js"></script>

とすればよろしいでしょうか?

#50: Posted by Author Profile Page bzbellから中村への返信 @ March 20, 2009 [REPLY]
user-pic

>>49 中村 さん

えと、非表示にしたいページだけに hide_rank を使用すればいいのだと思いますうぅ~ん
エントリアーカイブにだけ非表示にしたいのであれば以下のようなかんじでしょうか。

<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :<$MTBlogID$>,
blog_url:'<$MTBlogURL$>',
hide_rank  :<mt:If name="entry_archive">1<mt:Else>0</mt:If>
});
</script>
</div>
ご確認くださいぺこり

- 追記 -

すいません、上記コードは間違いで正しくは以下のコードになります。

<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :<$MTBlogID$>,
blog_url:'<$MTBlogURL$>',
script_url:'<$MTBlogURL$>pagerank/',
hide_rank  :<mt:If name="entry_archive">1<mt:Else>0</mt:If>
});
</script>
</div>
#51: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

お恥ずかしい限りで。大変スマートは解決方法、ありがとうございました。
ただ、当方MT3.3のため、MTIfタグが使えません。そこで、エントリー・アーカイブの
<div id="pagerank_viewer">の中で、hide_rank : 1,
を設定する方法で対処しました。(pagerank.jsの設定はもちろん共通でhide_rank : 0,)
表示については、思惑通りですが、誤動作の心配はありますでしょうか?

#52: Posted by Author Profile Page bzbellから中村への返信 @ March 20, 2009 [REPLY]
user-pic

>>51 中村 さん

> ただ、当方MT3.3のため、MTIfタグが使えません。

あっ!! そうでしかたあせあせ
それでしたら、中村 さんがやられてるエントリ・アーカイブのテンプレート内だけで hide_rank を指定しる方法で問題ないと思います。
一応確認しておきますが、以下のような方法でやられてるんですよね!?

■エントリ・アーカイブ・テンプレート内
<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :<$MTBlogID$>,
blog_url:'<$MTBlogURL$>',
script_url:'<$MTBlogURL$>pagerank/',
hide_rank  :1
});
</script>
</div>
■他のテンプレート内
<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :<$MTBlogID$>,
blog_url:'<$MTBlogURL$>',
script_url:'<$MTBlogURL$>pagerank/'
});
</script>
</div>

上記のようにテンプレートによってコードを変更してるのであれば誤動作はしません。
大丈夫ですやあ!

#53: Posted by 中村 @ March 20, 2009 [REPLY]
user-pic

中村です。返信ありがとうございました。
上記のとおりです。ご丁寧に本当にありがとうございます。
これで、いろいろ解りました。
ところで、貴サイトのRecent Tagsのパーツは大変魅惑的です。
これについて、貴サイト内で解説された部分はありますでしょうか?

#54: Posted by Author Profile Page bzbellから中村への返信 @ March 20, 2009 [REPLY]
user-pic

>>53 中村 さん

解決して何よりですうぅ~ん

> 貴サイト内で解説された部分はありますでしょうか?

はい。ブログ内検索から 「MT-Cumulus」というキーワードで検索して頂くと、MT-Cumulus プラグインというものを使った記事が見つかります。
デフォルトのプラグインをカスタマイズして使ってますので、参考にして頂けたらと思いますぺこり

#55: Posted by z @ March 21, 2009 [REPLY]
user-pic

bzbellさん、
アクセスランキングで何度かお世話になっております!

旧バージョンで page_name というランキングのタイトルを好きな方法で表示できる指定ができましたが、今回のアップデートでは取り除かれてるようですね。

私のサイトの場合記事タイトルが長いためキーワードを指定してランキングを表示させておりました、旧バージョンを使い続ければ良いのかもしれませんが、新バージョンも気になっております。page_nameをオプションで指定できる機能を追加するご予定などありませんか?

あせあせ

#56: Posted by Author Profile Page bzbellからzへの返信 @ March 21, 2009 [REPLY]
user-pic

>>55 z さん

こんにちわ^^

> page_nameをオプションで指定できる機能を追加するご予定などありませんか?

あっそうでしたかあせあせそれはすいません。
新バージョンでは、JavaScript 内で動的にページタイトルを取得するように変更したので page_name オプションは削除したんです。

たとえば、CSS で指定した幅を超えるタイトルは表示しない( ちょん切る )ような方法ではダメでしょうか。( overflow: hidden 使用 )
ちなみに z さんが実装されてる方法は、以下のようなかんじで文字数を指定されてるのでしょうか。

<mt:EntryTitle trim_to="N" />

- 追記 -

page_name オプションを追加しましたのでご確認頂けたらと思います。

#57: Posted by z @ March 21, 2009 [REPLY]
user-pic

bzbellさん

素早い対応驚いております。本当にありがとうございました!ワクワク
さっそく試してみたいと思います。

私の場合はタイトルを文字数指定するのではなく、エントリーにタグ付けした一番ランクの高いタグを取り出し page_name:'<MTEntryTag>' に指定しております。それをタグクラウドにまとめ、表示させたりしています。

#58: Posted by Author Profile Page bzbellからzへの返信 @ March 21, 2009 [REPLY]
user-pic

>>57 z さん

おぉ!! 使い方もいろいろなんですねぇキャハハ
勉強になりましたぁワクワク
何かありましたらご連絡ください。
今後ともどうぞよしなにぺこり

#59: Posted by 中村 @ March 21, 2009 [REPLY]
user-pic

昨日はありがとうございました。
すみません、またぶり返してしまいまして^^;;

ver2.17で使用させていただいているところで、先日ご報告したように、
カテゴリーと日付アーカイヴでは、
<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :'<$MTBlogID$>', // ブログID
blog_url:'<$MTBlogURL$>',// ブログ URL
script_url:'<$MTBlogURL$>pagerank/',// ランキングスクリプトのアップロード先
hide_rank :0,
exclude_top :1, // トップページのカウント除外(0:カウント 1:除外*)
exclude_page :0, // 任意ページのカウント除外(0:カウント* 1:除外)
ranking_max :15, // ランキング表示数(10*)
ranking_type :1, // ランキング表示タイプ(0:カウンタ非表示 1:カウンタ表示* 2:パーセント表示)
enable_cookie:1, // クッキー有効/無効(0:無効 1:有効*)
target :'' // TARGET属性(例 '_blank'、'_self')
});
</script>
</div>
そして、エントリーアーカイブでは、
<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :'<$MTBlogID$>', // ブログID
blog_url:'<$MTBlogURL$>',// ブログ URL
script_url:'<$MTBlogURL$>pagerank/',// ランキングスクリプトのアップロード先
hide_rank : 1, // ロギングはするけど非表示(0:表示、1:非表示)
exclude_top :1, // トップページのカウント除外(0:カウント 1:除外*)
exclude_page :0, // 任意ページのカウント除外(0:カウント* 1:除外)
ranking_max :15, // ランキング表示数(10*)
ranking_type :1, // ランキング表示タイプ(0:カウンタ非表示 1:カウンタ表示* 2:パーセント表示)
enable_cookie:1, // クッキー有効/無効(0:無効 1:有効*)
target :'' // TARGET属性(例 '_blank'、'_self')
});
</script>
</div>
としてうまくいったはずでしたが、勘違いで、エントリーを表示すると、ajaxloaderの画像が表示されます。何かミスをしているのでしょうか?

以下は余談ですが、参考として書かせていただくと、
現在、エントリーアーカイブテンプレートの方で、
target :'' // TARGET属性(例 '_blank'、'_self')
hide_rank : 0,
});
として、「hide_rank : 0, 」を追加して、ランクも表示されないし画像も表示されない、といった
ビミョーな状態にしてあります。こうすることでFirefoxでは見た目上まったく問題ないのですが、
IE.6では、ウィンドウの左下に「ページエラー」が出ています。
このエラーは、「hide_rank : 0, 」という余計なことをしたためのエラーですから本質的な問題
ではありません。この現象が何かの参考になれば、と^^;;
ページエラーのまま放って置くのもアリですが、やっぱりちょっと気になるので^^;;

以上、長くなりましたが、どうぞよろしくお願いします。

#60: Posted by Author Profile Page bzbellから中村への返信 @ March 21, 2009 [REPLY]
user-pic

>>59 中村 さん

月別の方はちゃんと表示できてるんですねパチパチ

> ・・・「hide_rank : 0, 」を追加して、ランクも表示されないし画像も表示されない、といった
ビミョーな状態にしてあります。

まず、hide_rank:0, のカンマ「,」は削除してください。
一番最後のオプションには必ずカンマを削除するようにします。

これで解決するのではないでしょうか。

#61: Posted by 中村 @ March 22, 2009 [REPLY]
user-pic

こん日は、中村です。度々すみません。やってみました。
エントリーアーカイブテンプレートのパラメーター指定部分の最後に置いた
hide_rank:0, のカンマ「,」を削除しても変化はありません。(カテゴリーや日付のアーカイブは
期待通り表示されています。)

もともとエントリーアーカイブでは、4つ目のところでhide_rank:1, を設定したので
こちらが有効になるはずでしたが、画像が表示されてしまったため、いろいろ
やってたら、偶然、最後にhide_rank:0, をつけて画像が表示されない状態が作れた、
という経緯でした。ただ、この状態では、エントリーをIE.6で表示するとステータスバー
にページエラーが出るし、Firefoxのエラーコンソールでは、次のエラーになります。
「hide_rank:0, 」またはカンマを取って「hide_rank:0」の部分で、missing after property list

ちなみに、iquery.pagerank.jsの上部の設定部分は、カテゴリーや日付アーカイブと同じ
設定を。しています、(hide_rank:0, )

#62: Posted by Author Profile Page bzbellから中村への返信 @ March 22, 2009 [REPLY]
user-pic

>>61 中村 さん

こんにちわ^^

確認しました。
hide_rank:0 のカンマは削除されてますが、taget:'' のカンマが入ってませんよあせあせ
必ずオプションは以下のフォーマット(ハッシュといいます)でお願いします。

オプション名 : オプションの値 ,
上記フォーマットに沿って以下のように指定します。
$('#pagerank_view').PageRank({
blog_id: xx ,
blog_url: 'http://xx' ,
script_url: 'http://xx' ,
hide_rank: 0
}

上記のように各オプションをカンマで区切りますが、一番最後のオプション( 上記でいうと hide_rank )にはカンマを付けないでください。
これは JavaScript のお約束になってますのでぺこり

#63: Posted by 中村 @ March 22, 2009 [REPLY]
user-pic

こんばんは^^
hide_rank:を1とした場合は、グルグル画像が表示されるのですが、
これは設計どおりと考えてよいのでしょうか?
hide_rank:を1とした場合、何も表示されない(つまり、#pagerank_viewer
が表示されない)のかな、と思っていました。

#64: Posted by Author Profile Page bzbellから中村への返信 @ March 22, 2009 [REPLY]
user-pic

>>63 中村 さん

> hide_rank:を1とした場合は、グルグル画像が表示されるのですが、
> これは設計どおりと考えてよいのでしょうか?

クルクルが表示されるのはおかしいのでコード確認したら jquery.pagerank.js 内に誤字がありました。それによってクルクルが表示され、且つエラーしていたようですあせあせすいません。
修正したものを UP ( Ver2.19 )しましたのでご確認ください。

#65: Posted by 中村 @ March 22, 2009 [REPLY]
user-pic

こんばんは、Ver2.19をありがとうございました。
大変お手数をお掛けしてしまいました。
こちらで出ていた現象をもう少し的確にお伝えできなくて、ご迷惑かけました。
お陰様で、完全にクリアーになりました。

また、これからもいろいろ、勉強させてください。
今後も新しいアイデアをいっぱい披露してください。

よろしくお願い致します。

#66: Posted by Author Profile Page bzbellから中村への返信 @ March 23, 2009 [REPLY]
user-pic

>>65 中村 さん

> お陰様で、完全にクリアーになりました。

よかったぁパチパチ
結果的にいっしょにデバッグしてもらってありがとうございます。
今後ともどうぞよしなにぺこり

#67: Posted by 中村 ミノル @ March 25, 2009 [REPLY]
user-pic

bzbell 様
先日はありがとうございました。
「MT-Cumulus」の件でお聞きしたいのです。MT3.3では使えないでしょうか?

#68: Posted by Author Profile Page bzbellから中村 ミノルへの返信 @ March 25, 2009 [REPLY]
user-pic

>>67 中村 ミノル さん

こんばんわ^^

> MT3.3では使えないでしょうか?

結論から言いますと無理ですね。
プラグインを作り直すしかないです。
わたしが作っても良いのですが、あいにく MT3.3 の環境がないので動作確認もままならないもので、作ったものが一発で動作させる自身まったくないですあせあせ
すいません、お力になれなくってのほほん

#69: Posted by 中村 @ March 26, 2009 [REPLY]
user-pic

こんばんは、ご返信ありがとうございます^^
この件は諦めます。このエントリーとは直接関係のないことでお知恵を借りたい場合は、
どこにコメントしたらよろしいでしょうか?

#70: Posted by Author Profile Page bzbell @ March 27, 2009 [REPLY]
user-pic

>>69 中村 さん

こんばんわ^^

記事に関係ないことでしたら、メールフォームからご連絡頂けると嬉しいですあせあせ
なので、コメントの方削除させていただきますね。
お手数ですがメールフォームから再度お願いできますか。

#71: Posted by 中村 @ March 27, 2009 [REPLY]
user-pic

わかりました。では、メールフォームにて別途ご相談させていただきます

#72: Posted by okimo @ March 29, 2009 [REPLY]
user-pic

bzbellさん

いつもお世話になっております。

アクセスランキング・プラグイン(jQuery)をうまく取り入れることが出来たのですが、
なんだかIE6ではタイムリーに更新されない状態です。
(Firefoxは思い通りの挙動です)

現状、IE6だと再構築されたページしか最新の情報(ランキング)が反映されないのですが、何か考えられることがありましたら教えてください!

#73: Posted by Author Profile Page bzbellからokimoへの返信 @ March 30, 2009 [REPLY]
user-pic

>>72 okimo さん

こんばんわ^^

> ・・・なんだかIE6ではタイムリーに更新されない状態です。

  1. すべてのページを確認したわけではありませんが、ちゃんとタイムリーに更新されてるようですよ。 まず前提条件として、Ajax によるリクエストが送信されたらログ保存時においてブラウザ依存はありません。なので、ランキング表示されるのであれば、ログは正しく保存されてると判断していいと思います。

  2. IE6 だけログ保存しないとか、IE6 の時だけログ保存が遅延されるということをサーバサイドのプログラムは行いませんのでうぅ~ん ただし、オプションの exclude_page: 1 としたページにおいては、ブラウザ云々に限らず除外されます( ログ保存されません )のでご注意ください。

  3. 気になるのは、再構築されたページしか・・・ってとこでしょうか。
    すべてのページでアクセスログ収集したいのであれば、サイト全体を再構築してください。 もちろん、サイドバーに埋め込んだトラッキングコードがすべてのページに埋め込まれるようテンプレートを変更する必要はありますけどにこっ!

  4. 別件ですが、ページによっては JavaScript エラーが出てるようです。
    ただランキング表示はされてるので、他のスクリプトで何らかの問題がでてるように見受けられます。

以上ですが、古ぅ~いページにもアクセスしてみて確認したのですが、ちゃんとロギングされてるようです。
もう一度ご確認いただけますかもじもじ

#74: Posted by okimo @ March 30, 2009 [REPLY]
user-pic

bzbellさん

いろいろ見ていただきありがとうございます。

仰るとおりブラウザ依存はないはずなんですが、やはり自宅のIE6ではランキングの内容が変わらないです。(いろいろな環境でチェックしてみます)最初のアクセス時はちゃんとログを取ってくるのですが、その後、ログに変化があっても反映するのはFirefoxだけです。よって同タイミングでリロードしてもFirefoxとIE6で表示する内容が異なってしまいます。。。

とは言ってもこのプラグインには大変満足してますので、とりあえずこのまま活用させていただきます。
そこまで大きなトラブルではないですし。

話変わりますが、ログの集計期間をオプション指定が出来ればと思っています。
ランキングを表示したい部分にオプションで「1日(1)、1週間(7)、1ヶ月(30)」など自由に変えられるとありがたいです。

可能であればご教授ください!

#75: Posted by Author Profile Page bzbellからokimoへの返信 @ March 31, 2009 [REPLY]
user-pic

>>74 okimo さん

> ・・・最初のアクセス時はちゃんとログを取ってくるのですが、

同日に同一 IP アドレスによるアクセスはカウントには含まないようにしてます。
そのことを仰ってますかあせあせ
同日に同一 IP によるアクセスを許可したい場合、以下のオプションを追加することで重複 IP アドレスによる除外機能がマスクされます。

enable_cookie:0

> ・・・よって同タイミングでリロードしてもFirefoxとIE6で表示する内容が異なってしまいます。。。

同タイミングというのがポイントかも。
ログへの書込みには排他制御を行っています。ですので、必ず 1 アクセスずつ書き込んでいくわけですが、その場合各ブラウザで表示される内容には多少誤差が生じるはずです。

もし誤差をなくしたいのであれば、タイムリーな表示はできません。
巷で配布されてるランキングのように、00:00 時点で集計したログを表示・・・という手法になるかと思います。

わたしが考えていたのは、IE6 においてアクセスしたにも関わらずログに保存されない・・・ということだと思ってました。
それについは問題なかったので恐らく上記のことだと思われます。

しばらく様子をみて、あまりにも誤差が大きいのであればサーバサイドのプログラムの不具合が考えられます。
今のところそういった現象は確認できてませんので、もしそのようなことがありましたらご連絡頂けたらと思いますもじもじ

#76: Posted by shiz @ April 7, 2009 [REPLY]
user-pic

こんにちは初め投稿させて頂きます!

ランキングのプラグイン大変重宝させて頂いてます。

質問なのですが、ランキングリストへ順番に番号を例えば1位〜10位と降ることは可能でしょうか?

例:
1位 たまご
2位 リンゴ
3位 メロン

10位 バナナ

どうぞよろしくお願いします。

#77: Posted by Author Profile Page bzbellからshizへの返信 @ April 7, 2009 [REPLY]
user-pic

>>76 shiz さん

こんばんわ^^

以下の jquery.pagerank.js をお使いください。
http://bizcaz.com/archives/shoco/js/jquery.pagerank.numbering.zip
そうすると以下のようにマークアップされます。

<ul id="page_rank" class="widget_list">
<li class="widget_list_item list_entry rank_list_eve rank_list_1">
<a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル
<span class="right">No 1. アクセスカウント</span></a></li>
<li class="widget_list_item list_entry rank_list_odd rank_list_2">
<a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル
<span class="right">No 2. アクセスカウント</span></a></li>
:
:
<li class="widget_list_item list_entry rank_list_eve rank_list_10">
<a title="ページタイトル" href="ページ URL" target="_blank">ページタイトル
<span class="right">No 10. アクセスカウント</span></a></li>
</ul>
<div class="rank_info">Range: 開始日-終了日: 収集期間<br />
Total Count: 総カウント数</div>

ですので、CSS にて li.rank_list_1 ~ li.rank_list_10 のクラスを使ってデザインしてあげれば OK ですブイブイ

#78: Posted by aki @ May 9, 2009 [REPLY]
user-pic

bzbellさん
こんにちは。このプラグインをリリース当時から使わせていただいております。
プラグインを最新のバージョンにアップグレードしたのですが、IE8でランキングが表示されません。ローダーアイコンがクルクル回るだけの状態になってます。。んっ!?

Firefox2, 3, Safari 3では問題なく表示されております。
以前のバージョン(2.00) でもIE8で開くとローダーアイコンだけになってしまいます。

---パーミッションの設定は以下のようになってます---
pagerankフォルダ 755
phpファイル 755
jsファイル 744

コメントを読んでもそのような問題は報告されてないので私だけの問題かもしれまんが。。。
ご教授いただけませんでしょうか?
よろしくお願いいたします!
aki

#79: Posted by Author Profile Page bzbellからakiへの返信 @ May 9, 2009 [REPLY]
user-pic

>>78 aki さん

こんにちわ^^

> プラグインを最新のバージョンにアップグレードしたのですが、IE8でランキングが表示されませ
> ん。ローダーアイコンがクルクル回るだけの状態になってます。。

プログラム的には Firefox などで表示できてるようですからたぶん問題ないかと思われまするキョロキョロウチでは IE8 でも表示できてるようです。
じゃぁ何が問題かと言うと、考えられるのは CSS ですにこっ!
CSS はサイトによって大きく依存します。IE8 による影響がでてると思われます。
試しに #pagerank_viewer に対して height: 100%; を指定してみてください。

#pagerank_viewer {
height: 100%;
}
上記でダメだった場合またご連絡頂けたらと思いますぺこり
#80: Posted by aki @ May 9, 2009 [REPLY]
user-pic

bzbellさん

早速の返信ありがとうございます!

#pagerank_viewerをheight:100%;にしてもな何も変化ありませんでした。
プラグインに入っているindex.htmlでも表示を試みましたが同じ結果でしたローダーが回り続けています。キャハハ


aki

#81: Posted by Author Profile Page bzbellからakiへの返信 @ May 9, 2009 [REPLY]
user-pic

>>80 aki さん

> #pagerank_viewerをheight:100%;にしてもな何も変化ありませんでした。

う~んのほほん
aki さんが設置されたサイトの URL を教えて頂くことはできますか。
わたしの方でデバッグしてみます。

#82: Posted by aki @ May 9, 2009 [REPLY]
user-pic

bzbellさん

サンプルページに関してはIE8で表示されるようになりました、初歩的なミスで
http://アドレス.comとブラウザに入力するとNGらしいです。ちゃんとhttp://www.アドレス.com (script_url通りに)といれると表示されました。

本サイトではpagerankプラグインを2つ設置していて1つは24時間指定のものともう一つは1週間バージョンが設置してあります。なぜか1週間バージョンのものがIE系で表示されないんですよね。。cssの問題かしら。。ローダーも回っていません。。

サンプルページでの問題が解決したのいで、もう少し自分でリサーチしてみます。ありがとうございました!
他に何か思い浮かんだらご教授ください。!

#83: Posted by Author Profile Page bzbellからakiへの返信 @ May 9, 2009 [REPLY]
user-pic

>>82 aki さん

確か www 付きの URL をサーバ側の設定で www なしにできたように記憶してますあせあせうる覚えですが・・・。

> 本サイトではpagerankプラグインを2つ設置していて1つは24時間指定のものと
> もう一つは1週間バージョンが設置してあります。

2 つ設置したってのが気になります。
たとえば、同一ページ中に 2 つのランキング表示させる場合には、以下のようにテンプレートに埋め込む必要がありますが、そのようになってますでしょうか。

■1つめのランキング
<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({
blog_id :11,
blog_url:'http://bizcaz.com/'
});
</script>
</div>
■2つめのランキング
<div id="pagerank_viewer2">
<script type="text/javascript">
$('#pagerank_viewer2').PageRank({
blog_id :11,
blog_url:'http://bizcaz.com/'
});
</script>
</div>
2つめのセレクタを #pagerank_view2 のように、1つめとブッキングしないようにする必要がありますパチパチ
#84: Posted by aki @ May 9, 2009 [REPLY]
user-pic

はいちゃんと変更しております。

よくみてみたらローダーは動いてました。でも一瞬出てから後はブランクになってますね。
IE以外のブラウザ (Firefox, Safari) では表示されてるんですけどね。。。


#85: Posted by Author Profile Page bzbellからakiへの返信 @ May 9, 2009 [REPLY]
user-pic

>>84 aki さん

> よくみてみたらローダーは動いてました。でも一瞬出てから後はブランクになってますね。

IE6 だと JSON データの内容によっては正しく表示されないことがあるようです。
今問題なのは IE8 ですよね!?

問題の切り分けとして、jquery.pagerank.js 内の 89 行目に以下のデバッグコードを追加した場合、どのようなメッセージが表示されるか確認することはできますか。

alert(elem.join(''));

上記追加により 63 ~ 88 行目で作成してるランキングリストのコードが表示されるはずです。
メッセージ表示されれば問題は CSS 側になります。
メッセージ表示されないようであれば、ローダー非表示~メッセージ表示の間に何らかの不具合があることになりますうぅ~ん
ご確認いただけますか。

#86: Posted by aki @ May 9, 2009 [REPLY]
user-pic

bzbellさん

コード追加してみました。何も表示されません。
IE系(IE6, IE7, IE8) のブラウザではランキングは表示されません。

あと

/log にはIE以外のブラウザでアクセスするとちゃんとログは残りますが、IEでアクセスするとログが残りません。

いろいろありがとうございます!本当に助かります!!パチパチ
Aki

#87: Posted by Aki @ May 9, 2009 [REPLY]
user-pic

追記で

現在使用しているプラグインは コメント#77 shizさにご提供されているプラグイン(ランキングの順位がCSSで実装できるやつ)を使用しています。もしかしたら、コードの方を何かアップデートされてますでしょうか?

Aki

#88: Posted by Aki @ May 9, 2009 [REPLY]
user-pic

bzbellさん

コメント欄を専有してしまって申し訳ないです。。。。

だんだん解決してきました。現在bzbellさんが公開されているコード(jquery.pagerank.js)とコメント#77 shizさにご提供されているプラグインを入れ替えてみたら動きました!もしお手数でなければ現在公開されているjquery.pagerank.jsで順位表示ができるコードを提供していただけませんでしょうか?

よろしくお願いします。ぺこり

#89: Posted by Author Profile Page bzbellからAkiへの返信 @ May 9, 2009 [REPLY]
user-pic

>>86 aki さん
>>87 Aki さん

> コード追加してみました。何も表示されません。

えぇーーーガーンIE 全滅ですか!? それは 24 時間バージョンでも同様ですかあせあせ
う~んイヤイヤ 表示できたり、できなかったり・・・というのが納得いかないところですが、以下のファイルを DL して確認してみてください。
http://bizcaz.com/archives/shoco/js/jquery.pagerank.numbering.zip

IE で表示できないという件に関していうと、JSON データ受信において jQuery がエラーしてると思われます。
本来はサーバ側スクリプト( rank_post.php )内の 152 行目にて、レスポンスヘッダを明示してあげてたのですが、他のサイトさんでエラーした!? とのことなのでコメントにしてました。
上記ファイルは、そのコメントを有効にしたものですのでご確認頂けたらと思いますぺこり

ちなみに、ウチのサイトでは有効にしたものを使用してますブイブイ

#90: Posted by aki @ May 10, 2009 [REPLY]
user-pic

bzbellさん

頂いたスクリプトで問題が解決いたしました!すべてのブラウザで表示されています。

ありがとうございました!!チュ!

#91: Posted by Author Profile Page bzbellからakiへの返信 @ May 10, 2009 [REPLY]
user-pic

>>90 aki さん

よかったぁあせあせ
只今リファラーランキングというものを作ってます。
俗に言う逆アクセスランキングというもので、どこのサイトからのアクセスが多いかをランキング表示するものです。

後日公開しますので良かったら使ってやってくださいなブイブイ
今後ともどうぞよしなにぺこり

#92: Posted by aki @ May 11, 2009 [REPLY]
user-pic

先日はどうもありがとうございました!

早速新しいバージョンのプラグインを試しているのですが、
j$('#pagerank_viewer').PageRank({
だと j$ is not defined というエラーが出てしまいます。

あと j を取り除くとローダーだけ作動している状態になりますね〜

こちらはこっち側の設定が悪いのでしょうか?

Aki

#93: Posted by Author Profile Page bzbellからakiへの返信 @ May 11, 2009 [REPLY]
user-pic

>>92 aki さん

こんばんわ^^

すいません。
index.html を修正しました。
修正した内容は以下のとおりです。

<script type="text/javascript">
jQuery.noConflict();
var j$ = jQuery;
</script>

上記を HTML ヘッダ内( jquery.pagerank.js の上 )に追加します。
先日コンフリクト対応した index.html ですが、元に戻ってしまってましたあせあせ
ご迷惑をおかけしました。
>>89 でご紹介してるサンプルの index.html ではちゃんと記述されてますので参考にしてください。

#94: Posted by ハチ @ May 17, 2009 [REPLY]
user-pic

こんにちは。

アクセスランキングのローテーション・バージョンについて質問させて下さい

私は今ロリポップのサーバーを使用しています。ロリポップでも使用可能でしょうか?
こちらの記事や過去のコメントなどを読んでセットしたのですが、ブログで青い線が表示
されるだけです。

私が行った内容ですが、最初にpagerankのフォルダをjsディレクトリの中にアップし、pagerankフォルダのパーミッションを(777)、フォルダの中の4つのPHPファイルのパーミッションを(755)に変更。

それから、ページアクセスランキングを表示させる場所にコードを追加して、必須項目を入力しました。

そして、HTMLヘッダーにスクリプトコードを追加して、ランキングのcssを自分のcssに追加して再構築しましたが、青い線が表示されるだけです。

このやり方で間違っているところや、足りないところがありましたら教えていただけますでしょうか?

あと1つ、使い方の1のところにある、
「そして、jquery.pagerank.js 内の 19 行目を、アップロード先の PHP スクリプト( rank_config.php がある場所 )の URL に変更します。」

この変更箇所が分からずにそのままにしてます。これが原因でしょうか?お手数ですが、宜しくお願い致します

#95: Posted by Author Profile Page bzbellからハチへの返信 @ May 17, 2009 [REPLY]
user-pic

>>94 ハチ さん

こんばんわ^^

jquery.pagerank.js 内の 19 行目のランキング・スクリプトは、説明の通り rank_post.php をサーバにアップロードした場所の URL を指定してください。
たとえば、http://bizcaz.com/js/pagerank/ に rank_post.php をアップロードした場合には、http://bizcaz.com/js/pagerank/ を指定します。

> 私は今ロリポップのサーバーを使用しています。ロリポップでも使用可能でしょうか?

log/ フォルダは作成されてますか!? または、log/ フォルダ内にファイルは作成されてますか!?
作成されてればロリポップでも使えると思いますが、先日もロリポップのユーザさんからご連絡頂いたのですが、そのときは使用できないようでした。

ロリポップにインストールされてる PHP では、セキュリティ的なとこか、PHP の機能が許可されてないためか、PHP スクリプトが正しく動作しないようです。
なので、ロリポップに合わせてコードを変更する必要があります。

#96: Posted by ハチからbzbellへの返信 @ May 17, 2009 [REPLY]
user-pic

>>95 bzbell さん
こんばんわ^^お返事有り難う御座います。

jquery.pagerank.js 内の、19 行目というのが私が使っているテキストエディタでは、
「ranking_max : 10, // ランキング表示数」となっているのですが、URLを何処に指定すればいいのかよく分かりません。すいません初心者なもので・・・よろしければ、どこに指定するか教えて頂けますでしょうか?

#97: Posted by Author Profile Page bzbellからハチへの返信 @ May 17, 2009 [REPLY]
user-pic

>>96 ハチ さん

> …URLを何処に指定すればいいのかよく分かりません。

script_url というパラメータに URL を指定してあげます。 Ver2.23 のコードでいうと 13 行目になります。
script_url      : 'http://bizcaz.com/js/pagerank/',

上記のような感じでブイブイ

#98: Posted by akiからbzbellへの返信 @ May 25, 2009 [REPLY]
user-pic

bzbell さん、こんにちは
以前はお世話になりました!

リファーラーランキング機能付きのプラグインを試しているのですが、うまくランキングが表示されません。今回はランキングリストを2種類同じページで表示しようと試み以下のコードを設置しました。
[script type="text/javascript"]
j$('#pagerank_viewer').PageRank({
/*
*▼必須▼
*/
blog_id      :1,               // ブログID
blog_url     :'http://www.アドレス.com/',// ブログ URL
script_url   :'http://www.アドレス.com/pagerank/',// ランキングスクリプトのアップロード先 URL
/*
*▼オプション▼
*/
hide_rank       :0,            // ロギングはするけど非表示(0:表示、1:非表示)
exclude_top     :0,            // トップページのカウント除外(0:カウント 1:除外*)
exclude_page    :0,            // 任意ページのカウント除外(0:カウント* 1:除外)
ranking_max     :10,           // ランキング表示数(10*)
ranking_type    :1,            // ランキング表示タイプ(0:カウンタ非表示 1:カウンタ表示* 2:パーセント表示)
enable_cookie   :1,            // クッキー有効/無効(0:無効 1:有効*)
days:'7',
target          :''            // TARGET属性(例 '_blank'、'_self')
});
[/script]
[script type="text/javascript"]
j$('#pagerank_viewer2').PageRank({
/*
*▼必須▼
*/
blog_id      :2,               // ブログID
blog_url     :'http://www.アドレス.com/',// ブログ URL
script_url   :'http://www.アドレス.com/pagerank/',// ランキングスクリプトのアップロード先 URL
/*
*▼オプション▼
*/
hide_rank       :0,            // ロギングはするけど非表示(0:表示、1:非表示)
exclude_top     :0,            // トップページのカウント除外(0:カウント 1:除外*)
exclude_page    :0,            // 任意ページのカウント除外(0:カウント* 1:除外)
ranking_max     :10,           // ランキング表示数(10*)
ranking_type    :1,            // ランキング表示タイプ(0:カウンタ非表示 1:カウンタ表示* 2:パーセント表示)
enable_cookie   :1,            // クッキー有効/無効(0:無効 1:有効*)
days:'30',
target          :''            // TARGET属性(例 '_blank'、'_self')
});
[/script]

上記のコードはサンプルページにてテストしました。最初の7日間バージョンは問題なく表示/カウントされていますが、30日バージョンは 下に「Range: 2009/05/19-2009/05/25 Count: 0/7Days」 としか表示しません。enable_cookieを無効にするとカウントされリストも表示されます。
/log にはフォルダ 02が作成されますが中は空です。どうにか2つランキングを表示できませんか?

何度ももうしわけないですが、
よろしくお願い致します。あせあせ

akiあせあせ

#99: Posted by Author Profile Page bzbellからakiへの返信 @ May 25, 2009 [REPLY]
user-pic

>>98 aki さん

こんばんわ^^

> nable_cookieを無効にするとカウントされリストも表示されます。

はい。そのように動作すると思いますキャハハ
といいますのも、埋め込んだコードのブログ ID、セレクタを変更したとしても同一ページ内だとクッキーが有効になってしまい、結果、7 日のログだけは保存しますが 30 日の方はクッキーによりログ保存されなくなります。
また、同一 pagerank/ フォルダ内のスクリプト( rank_post.php )を利用する場合、複数の期間によるログ収集はできません。
rank_config.php 内の ROTATION_DAYS で指定した期間のみとなります。

確認したいのですが、どのような理由から同一ブログ!? の、期間が異なるランキングを表示したいのでしょうかあせあせ
どうしても…ということでしたら、aki さんカスタマイズ版をお作りしますが、わたしにはその意図がよくわからないですはて?

#100: Posted by aki @ May 26, 2009 [REPLY]
user-pic

>>99 bzbell さん

ご返信ありがとうございます。

私はこちらのサイトのhttp://trendy.nikkeibp.co.jp/index.html「人気記事ランキング」
のように各ランキングに期間別に分けてログを取りたいんです。

可能でしょうか?あせあせ

#101: Posted by ハチからbzbellへの返信 @ May 26, 2009 [REPLY]
user-pic

>>97 bzbell さん
こんにちは、いろいろアドバイス有り難う御座います。
やっぱり、ロリポップではどうもダメっぽいので私もCORESERVERに変えました。

ですが、やっぱり上手く表示されずRangeとCountだけが表示されてしまいます。
HPアドレスを載せますので1度見て頂いてよろしいでしょうか?
http://zox.s126.coreserver.jp/review/
宜しくお願い致します。

#102: Posted by Author Profile Page bzbellからakiへの返信 @ May 26, 2009 [REPLY]
user-pic

>>100 aki さん

こんばんわ^^

わかりました。

  1. では、以下の圧縮ファイルを DL して頂き、今まで通りに設置してください。
    http://bizcaz.com/archives/shoco/js/jquery.pagerank.plugin-224_aki.zip

  2. そして、rank_conf.php 内の ROTATION_DAYS に最大集計日数に変更してください。 ここでいう最大日数とは、たとえば 7 日と 30 日のランキングを表示する場合には 30 と指定します。
    ただし、この数値を大きくするにつれてログ解析に時間がかかるようになりますのでご注意くださいにこっ!

  3. 最後に JavaScript 側のパラメータとして rotation_days を追加しました。 このパラメータは集計したい日数になります。たとえば、7 日分を集計したい場合には 7 を、30 日分集計したい場合には 30 を指定します。
    ただし、最大集計日数は rank_config.php 内で設定した ROTATION_DAYS になります。

    具体的には以下のように使います。

    <div id="pagerank_viewer">
    <script type="text/javascript">
    j$('#pagerank_viewer').PageRank({
    blog_id      :1,
    blog_url     :'http://blog_url.com/',
    script_url   :'http://script_url.com/',
    rotation_days         :'30'
    });
    </script>
    </div>
    

以上です。
ご確認くださいぺこり

#103: Posted by Author Profile Page bzbellからハチへの返信 @ May 26, 2009 [REPLY]
user-pic

>>101 ハチ さん

CORESERVER をお使いとのことですが、PHP スクリプトはそのままでは使えないということはご存知でしょうかあせあせ
以下のコメントを参考にして頂けたらと思いますぺこり
http://bizcaz.com/archives/2009/03/20-220335.php#comment-4931

#104: Posted by ハチ @ May 26, 2009 [REPLY]
user-pic

>>103 bzbell さん
こんばんわ^^
一応過去の記事を参考にしてpagerankディレクトリに下記のような.htaccess を作成してます

「AddHandler application/x-httpd-phpcgi .php

php_flag apc.cache_by_default off

<files rank_post.php>
AddHandler application/x-httpd-phpcgi .php
</files>

php_flag allow_url_fopen on
php_flag allow_url_include on」

logディレクトリの中には
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>125.175.14.67<>UNKNOWN<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>221.188.6.234<>UNKNOWN<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>221.188.6.234<>UNKNOWN<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>221.188.6.234<>UNKNOWN<>1
http://zox.s126.coreserver.jp/review/<>みんなの情報商材レビュー広場<>124.103.130.159<>http://zox.s126.coreserver.jp/mt/mt.cgi<>1
こんなファイルが出来ていました。

バージョンは224のローテーションを使っています。
宜しくお願い致します。

#105: Posted by Author Profile Page bzbellからハチへの返信 @ May 26, 2009 [REPLY]
user-pic

>>104 ハチ さん

まず、jquery.pagerank.js 内の 11 ~ 23 行目にハチ さん専用のパラメータを記述した場合には、テンプレート内に埋め込んだコードのパラメータは不要です。変更分のパラメータだけ指定しれあげれば OK ですブイブイ

さて、ログ収集はできてるようですね。
ハチ さんのサイトをデバッグしたところ、サーバ側は正しく応答してるようです。
また、設置方法においても一見問題なさそうです。
そうしますと JSON データ作成が正しく動作してないように見受けられます。

一点気になるのが、rank_post.php だけ CGI モードで実行してることです。
JSON.php は CGI モードで動作してないのではないでしょうか。
試しに現在の rank_post.php のディレクティブを削除して、pagerank/ フォルダ内に >>103 でご紹介した .htaccess を置いて確認してみていただけますか。

ウチも CORESERVER なので動作しないということはないはずなんですブイブイ

#106: Posted by ハチからbzbellへの返信 @ May 26, 2009 [REPLY]
user-pic

>>105 bzbell さん
お忙しい中有り難う御座います

云われたとおりに rank_post.php を削除しましたら、青い枠の中でloader.gifが表示されます。

>一点気になるのが、rank_post.php だけ CGI モードで実行してることです。
JSON.php は CGI モードで動作してないのではないでしょうか。

この意味がよくわかりません;;
すみません、わかりやすく教えて貰えないでしょうか?

#107: Posted by Author Profile Page bzbellからハチへの返信 @ May 26, 2009 [REPLY]
user-pic

>>106 ハチ さん

> 云われたとおりに rank_post.php を削除しましたら、青い枠の中でloader.gifが表示されます。

いえ、rank_post.php を削除するのではなく、.htaccess 内の以下を削除してください…と言ったつもりだったのですがすいません。

<files rank_post.php>
AddHandler application/x-httpd-phpcgi .php
</files>

では、上記を削除しなくってもいいので、以下を .htaccess 内に追加して確認してみてください。

<files JSON.php>
AddHandler application/x-httpd-phpcgi .php
</files>

> すみません、わかりやすく教えて貰えないでしょうか?

CORESERVER では PHP スクリプトはモジュールモードといって、高速実行が可能なモードがデフォルトとなります。
ですが、このモードにも制約がありまして、PHP スクリプトに対してパラメータを渡すことができないんです。
なので、上記のように任意の PHP スクリプトを CGI モードで起動することでパラメータ渡しを可能とするわけですキャハハ
ただ、この CGI モードは動作が鈍いという欠点!? があります。
巷のサーバのほとんどはこの CGI モードで動作してるのではないでしょうか。

#108: Posted by ハチからbzbellへの返信 @ May 26, 2009 [REPLY]
user-pic

>>107 bzbell さん

> #107の指示どりに.htaccessを編集しましたが表示されませんでした。
すみませんサーバーの情報を書きますので1度見て頂いてよろしいでしょうか?

#109: Posted by Author Profile Page bzbellからハチへの返信 @ May 26, 2009 [REPLY]
user-pic

>>108 ハチ さん

表示できましたよやあ!
原因はトップページをダイナミック・パブリッシングにしていたことです。
てか、何でダイナミック・パブリッシングだとダメなのかちょと不明です。
ウチでもダイナミック・パブリッシングでランキング表示させてますが問題ありませんからあせあせ
とりえあず、スタティックに変更しておきました。

あと、pagerank/.htaccess の内容を変更しておきました。
デザインはハチさんのサイトに合わせて変更して頂けたらと思います。
今後ともどうぞよしなにぺこり

#110: Posted by ハチからbzbellへの返信 @ May 26, 2009 [REPLY]
user-pic

>>109 bzbell さん
有り難う御座います!
早いですねーちょっと驚きです^^;

TOPページをダイナミックにした理由は特にありません。ダイナミック化するときについでに、という感じで・・・ なのでこのままスタティックでいきます(;^_^A アセアセ・・・

お手数お掛けしてどうもすみませんでした。有り難う御座いますm(_ _"m)
それでは失礼致します。

#111: Posted by aki @ May 27, 2009 [REPLY]
user-pic

>>102 bzbell さん

コード試してみたところブラウザのエラーコンソールで以下の表示が出ました。

ReferenceError: Can't find variable: rotation_days
http://www.url.com/js/pagerank/jquery.pagerank.js (line 59)

宜しくお願い致します。あせあせ

#112: Posted by Author Profile Page bzbellからakiへの返信 @ May 27, 2009 [REPLY]
user-pic

>>111 aki さん

こんばんわ^^

すいません、>>102 の jquery.pagerank.js を一箇所修正しました。
ご確認くださいぺこり

#113: Posted by aki @ May 27, 2009 [REPLY]
user-pic

>>112 bzbell さん

こんばんわ!バイバイ

修正して頂いたjquery.pagerank.jsを差し替えたらコンソール上でのエラーは出なくなりました!

でも >>98 のコードを使用しても(days:'7',はrotation_days:'7',に差し替えてます)
最初のコードではログを取られ表示されますが、下のランキングコードはログが取られていないようです。

お手数かけます。あせあせ

aki

#114: Posted by Author Profile Page bzbellからakiへの返信 @ May 27, 2009 [REPLY]
user-pic

>>113 aki さん

あれっはて?
>>102 の圧縮ファイルを DL して使用してみてください。

- 追記 -

> 下のランキングコードはログが取られていないようです。

はい。ログ収集するのは最初のランキングコードだけです。
下のログはただ 30 日!? 分のログを集計して表示するだけになります。
要するに同じログから 7 日表示、30 日表示と切り替えるだけです。

また、2 つのログで指定する blog_id には同一のものを使用してください。

#115: Posted by ハチ @ May 30, 2009 [REPLY]
user-pic

>>109 bzbell さん
こんばんわ^^

先日は色々とご迷惑をおかけしました
また質問させて下さい<(_ _)>
logはとっているんですが、表示するところが全然変わらない状態になってしまいました。

TOPページは除外してあるのですがランキングに出てしまいます。ブログ記事のみのランキングにするにはどうすれば良いのでしょうか?

後、jquery.pagerank.jsを>>>76さんみたいに表示させたかったので、
『elem.push(['<li class="widget_list_item list_entry', clastbl[i % 2], ranktbl[rank], '"><a title="', record[2], '" href="', record[1], '" target="', opt.target, '">'].join(''));』
↓↓↓↓↓
『elem.push(['<li class="widget_list_item list_entry', clastbl[i % 2], ' rank_list_', (i + 1), '"><a title="', record[2], '" href="', record[1], '" target="', opt.target, '">'].join(''));』
というように変更しました。>>>77のスクリプトでは上手く動かず、上記のように変更しました。

すみませんが、宜しくお願い致します。

#116: Posted by Author Profile Page bzbellからハチへの返信 @ May 30, 2009 [REPLY]
user-pic

>>115 ハチ さん

こんばんわ^^

デフォルトでナンバリングできるよう(>>76 と同様)に対応しました( ver2.25 )ので DL してご確認ください。また、CSS を作成しておきましたので参考にして頂けたらと思います。
以下のページは、圧縮ファイル中のサンプル( index.html )をわたし用に表示させたページです。
http://bizcaz.com/example/jquery/pagerank/

表示の仕方については基本的にサンプルを参考にして頂けたらと思います。

#117: Posted by aki @ May 31, 2009 [REPLY]
user-pic

>>114 bzbell さん

ご報告が遅くなって申し訳ありません!んっ!?

テスト用にrotation_days:'1'とrotation_days:'7'を>>102で頂いたスクリプトで試してみました。両方のランキングが表示されるようになりましたが、rotation_days:'7' の方が rotation_days:'1のランキングの内容になってしまい1日分しかランキングが表示されてないようです(blog_idは同じ数字とrank_conf.php 内の ROTATION_DAYSを7に設定しております)。

あとちょっとしたリクエストなのですが、同じページ、blog_idで異なった内容の page_name を使用することはできますでしょうか?ログが同じ場所だから難しいかもしれませんね。。。

<div id="pagerank_viewer"><script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:1, page_name:'<MTEntryTitle>', blog_url:'<$MTBlogURL$>'rotation_days='1'});</script>
<div id="pagerank_viewer2"><script type="text/javascript">$('#pagerank_viewer').PageRank({blog_id:1, page_name:'<MTEntryTitle>, <MTEntryDate>', blog_url:'<$MTBlogURL$>'rotation_days='7'});</script>

すみませんが、宜しくお願い致します。あせあせ

#118: Posted by Author Profile Page bzbellからakiへの返信 @ May 31, 2009 [REPLY]
user-pic

>>117 aki さん

こんにちわ^^

コードを確認しました。
以下のコードを使ってみてください。

<div id="pagerank_viewer">
<script type="text/javascript">
$('#pagerank_viewer').PageRank({blog_id:1, page_name:'<MTEntryTitle>', blog_url:'<$MTBlogURL$>', rotation_days='1'});
</script>
</div>
<div id="pagerank_viewer2">
<script type="text/javascript">
$('#pagerank_viewer2').PageRank({blog_id:1, page_name:'<MTEntryTitle>, <MTEntryDate>', blog_url:'<$MTBlogURL$>', rotation_days='7'});
</script>
</div>

aki さんのコードだとダメな理由は、7 日側のセレクタ( pagerank_viewer2 )が 1 日側のセレクタ( pagerank_viewer )と同様になっていることと、各オプションはカンマ( , )で区切られてないことです。

> 同じページ、blog_idで異なった内容の page_name を使用することはできますでしょうか?

page_name オプションを使用して頂ければ、各ページで任意のページタイトルで表示することはできますよ。
ご確認くださいぺこり

#119: Posted by akiからbzbellへの返信 @ May 31, 2009 [REPLY]
user-pic

>>118 bzbell さん

すいません、>>117 のサンプルコードの方が間違っていました、本コードはカンマが入っております。

>page_name オプションを使用して頂ければ、各ページで任意のページタイトルで表示することはできますよ。

同じblog_idで異なったpage_name を指定すると最初のコードで使用したpage_name だけが表示されてしまいます。

#120: Posted by Author Profile Page bzbellからakiへの返信 @ May 31, 2009 [REPLY]
user-pic

>>119 aki さん

> 同じblog_idで異なったpage_name を指定すると最初のコードで使用したpage_name だけが表示されてしまいます。

当然の動作だと思います…aki さんが何をやりたいのか分かりかねますが、以前にも同じログを使用して集計期間をかえるだけ…とお伝えしたはずです。
ですので、ページタイトルは page_name で変更したら以降すべてが同一になります。

以上です。

#121: Posted by 便利です! @ June 5, 2009 [REPLY]
user-pic

逆アクセスプラグイン探しててたどり着きました。
便利&楽しいプラグインです(´∀`)ノ

ただ、何度も改良されているので仕方が無いと思うのですが、
本文中の
「そして、jquery.pagerank.js 内の 19 行目を、アップロード先の
PHP スクリプト( rank_config.php がある場所 )の URL に変更します。」
↑現Ver.ではjquery.pagerank.js内でURL変更箇所なし?

最初に紹介しているコード内の
「j$('#pagerank_viewer').PageRank({ 」
↑の「j$」→現Verでは「$」のみ?

この2箇所は古いバージョンを公開してた時のものでしょうか?
本文だけ読んで設置しようとしても上手く行かなくて苦労しました(^_^;

コメント欄まで読み進めて動いた時は感動しましたが。。。
お時間の空いた時に本文も訂正して頂けると嬉しいです(´∀`)ノ

#122: Posted by Author Profile Page bzbellから便利です!への返信 @ June 5, 2009 [REPLY]
user-pic

>>121 便利です! さん

こんばんわ^^

ごめんなさいエーンそしてありがとございますもじもじ
さっそく修正しておきます。

#123: Posted by 中村 @ June 13, 2009 [REPLY]
user-pic

おはようございます。ページランク.jsが頑張ってくれているのですが、
昨晩、ブログのカテゴリー構成をいじりましたら、カテゴリーページに表示させていたランキング表示
部分に「グルグル画像」が表示されてしまうようになりました。
(上に記載したurlはトップページですが、当方はトップページはカウント対象外としております。
ランキング表示は、カテゴリーページのみにしています。エントリーページ、日付アーカイブページ
には表示していません。)

ログファイルの名称をFTPから変更すればよいのでしょうか?
ちなみに、昨晩実施した内容は、
・カテゴリー名(MTCategoryLabelになるところ)を変更
・いくつかカテゴリーを追加した
・カテゴリーを変更し、ブログ全体を再構築した)
です。全体再構築する前に、個々のエントリーのレベルでのカテゴリー変更
などしてチェックしながら進め、カテゴリー自体の変更はうまくいったのですが。

ログファイルは
BlogURL/pagerank/log/01/
の下にdata01,sdatの二つがあります。data01は今朝アクセスした時刻が保存時刻
になているようです。

復旧の仕方などアドバイス頂ければ幸いです。

#124: Posted by Author Profile Page bzbellから中村への返信 @ June 13, 2009 [REPLY]
user-pic

>>123 中村 さん

こんにちわ^^
復旧の仕方と言われても困っちゃいますね。
埋め込んだコードの、各オプションは理解されて使用されてますでしょうかあせあせ
見たところ hide_rank オプションを使用されてますが問題ありませんか!?
各オプションの説明は記事中に明記してますのでご確認ください。
また、説明の意味がわからないようでしたらご連絡頂けたらと思いますぺこり

#125: Posted by 中村 @ June 13, 2009 [REPLY]
user-pic

ご返信ありがとうございます。
当初の設置の時から、
・エントリーアーカイブテンプレートでは、hide_rank : 1,
・カテゴリーアーカイブテンプレートで、hide_rank : 0,
としています。この設定で、エントリーページはランキングだけして表示せず、
カテゴリーページには、表示もする、という動作が昨晩まで行われていました。
変更したのは、ページランクの設定ではなく、ブログのカテゴリー名だけです。
(既存カテゴリーは、カテゴリー名のみ変更。カテゴリーIDとか出力先とかは
変更していません。その他、いくつかカテゴリ新設をして、全体再構築しました。)
一部重複しましたが、状況は以上なんです。

#126: Posted by Author Profile Page bzbellから中村への返信 @ June 13, 2009 [REPLY]
user-pic

>>125 中村 さん
基本的にランキングスクリプトは MT にはまったく依存してませんイヤイヤ
なので、カテゴリ名称を変更したらからといって動作しなくなるってのはちょとおかしいです。

ログ収集はされてるわけですよね!?
そうしますと、サーバ側スクリプト( rank_post.php )から応答がないと思われまするあせあせ
サーバ側環境に変更はありませんか!?

今まで動作してたのに動作しなくなった…と言われましても、何か変化があったから動作しなくなったわけでして、その変化を見極めるべきだと思われまする。
たとえば、データファイルを 1 件分にした場合どうなるか…など、一つひとつ確認しながらつぶしていくしかないと思うのココロ。
なんせ、サーバ側環境は 中村 さん にしか分かりませんからやあ!

#127: Posted by 中村 @ June 13, 2009 [REPLY]
user-pic

こんばんは。
貴重なご指摘をありがとうございました。MTに依存しているわけではないのですね。
サーバ側の環境に何か変更がなされたか、ホスティング先に確認してみます。

どうもありがとうございました

#128: Posted by hato @ July 7, 2009 [REPLY]
user-pic

すいません。質問させて下さい。
Var 2.22にて設置を試みていますが、
logフォルダにアクセスログが収集されず困っております。
ページの埋込みに関しては動作しており、
現状では 「Range~~ Count: 0/7Days」 と表示されてます。

サーバーはhetemlを利用。
現状のパーミッションは
phpファイル 755 (705も試しましたが変化なし)
logフォルダ, pagerankフォルダ 777 としています。

[rank_deny.php]にアクセスした所、
logフォルダに[deny]というファイルは作成されました。
その他のPHPファイルに関してはアクセスしても変化なし、ページも白紙です。

とりあえず、このような情報をお伝えしましたが、
何か考えられる原因分かりますでしょうか?

#129: Posted by Author Profile Page bzbellからhatoへの返信 @ July 7, 2009 [REPLY]
user-pic

>>128 hato さん

こんばんわ^^

heteml をご利用ですか。 以前にも heteml ご利用の人がいましたが、もしかすると利用できないかもしれません。 試しに以下のコードを適当なファイル( たとえば foo.php )にコピー & ペーストして、実行してみてください。
<?php
mkdir('log/2009/07/', 0755, true);
?>

上記を実行したことでエラーするようなら heteml ではロリポップと同様に動的にフォルダを階層的に作成することができません。
ですので、手動で log/ フォルダ配下のフォルダ作成して頂く必要があります。

また、フォルダを階層的に作成するには、PHP5 が必要です。

ご確認くださいぺこり

#130: Posted by hato @ July 9, 2009 [REPLY]
user-pic

ご返信ありがとうございます。
最後の一文 「フォルダを階層的に作成するには、PHP5 が必要です。」
これが役に立ちました!

hetemlでは通常PHP4になっており、PHP5で実行するには.htaccessの指定が必要なのです。
この指定を入れることで無事アクセスログも保存され、ページにも表示されました。

これにてオールクリア!と思ったのですが…
オプションを変えてみたり、生成されたログを何度か削除したりとやっているうちに
またlogにデータが格納されなくなってしまいました…

今回はフォルダまでは作成されますが、ログファイルが生成されません。
ご提供いただいたコードのファイルを再度実行すると、下記のエラーが吐き出されました。

Warning: mkdir() [function.mkdir]: File exists in /home/sites/~ 絶対パス ~/test.php on line 2

サーバの不調なのか、なにか余計な事をしてしまったのか…
エラーの原因わかりますでしょうか?

#131: Posted by hato @ July 9, 2009 [REPLY]
user-pic

自己レスです。

ログが収集されなくなった原因はcookieにありました。
エラーに関しては関係なかったようです。すいません…

ログを削除すればリセットと思っていたのですが、cookieで重複しないようになっていたのですね。
cookieの制限によりログを再度取得しない為に、ログが空のままという事でした。
お騒がせ致しました。

これから、複数ブログに設置して、統合ランキングまでやってみたいと思います。
ありがとうございました。

#132: Posted by Author Profile Page bzbellからhatoへの返信 @ July 10, 2009 [REPLY]
user-pic

>>130 hato さん
>>131 hato さん

こんばんわ^^

解決してよかったですふつう
階層的なフォルダ作成も問題ないようですねうぅ~ん
何かありましたらご連絡頂けたらと思います。
今後ともどうぞよしなにぺこり

#133: Posted by hatoからbzbellへの返信 @ July 10, 2009 [REPLY]
user-pic

>>132 bzbell さん
すいません。やはりというか、戻ってきてしまいました…

cronによるログの統合がうまくいきません。
logフォルダにdata00は生成されるのですが、中身が空です。

cronの実行にエラーがある場合メールが届くのですが、 次のようなエラーが届きました。
~…~/pagerank/combine.sh: line 2: /usr/bin/find: Permission denied

なにかパーミッションの指定が必要なのでしょうか?
ちなみにcombine.shには755を指定してあります。

#134: Posted by Author Profile Page bzbellからhatoへの返信 @ July 10, 2009 [REPLY]
user-pic

>>133 hato さん

こんばんわ^^

たとえば log/ フォルダ内から以下のコマンドを実行すると同様のエラーがでますでしょうか。

find ./[0-9]* -name "data*" -exec cat "{}" \; > data00

もしエラーが発生する場合、heteml においてエラーがでないような収集方法を検討する必要があります。
まずはご確認ください。

#135: Posted by hatoからbzbellへの返信 @ July 10, 2009 [REPLY]
user-pic

>>134 bzbell さん
logフォルダ内に移動させてみましたが、同様のエラーとなりました。
パーミッションに関しては、手当たり次第試した気がするのですが、
いかんせんシェルやcronは初めての扱いの為、勝手が分からない状況です。

heteml公式のマニュアルではcronの設定は下記URLのようになっています。
http://heteml.jp/support/manual/cron/

これに習い、最初に #!/bin/sh 最後に exit を入れてみましたが結果は変わらずです。

現在の状況をおさらいしますと
保存形式:改行コード LF / 文字コード UTF-8(no sig)
アスキーモードで転送し、パーミッションは700

logフォルダのパーミッションは777
logフォルダ内のフォルダは705 ファイルは644

というようになっています。

#136: Posted by Author Profile Page bzbellからhatoへの返信 @ July 11, 2009 [REPLY]
user-pic

>>135 hato さん

heteml ではデフォルトのシェルは bash ではないんですねふつう
>>134 で示したコマンドを適当なファイル( たとえば、foo )に保存して頂き、以下のように実行するとどうでしょうか。

bash ./foo

上記は foo というファイルを bash というシェルを使って実行させています。
ご確認ください。

#137: Posted by hatoからbzbellへの返信 @ July 11, 2009 [REPLY]
user-pic

>>136 bzbell さん

指定のコードを実行してみました。 下記の内容が返ってきました。
bash: ./foo: No such file or directory

いかがでしょうか?

#138: Posted by Author Profile Page bzbellからhatoへの返信 @ July 11, 2009 [REPLY]
user-pic

>>137 hato さん

おはよございます^^

そのエラーはカレントフォルダ内に foo というファイルがないよ…と言ってます。
作成した foo というファイルと同じ場所に移動して頂き、そのフォルダから >>136 のコマンドを実行してみてください。

#139: Posted by hatoからbzbellへの返信 @ July 11, 2009 [REPLY]
user-pic

>>138 bzbell さん
こんにちは。
解説ありがとうございます。勘違いしておりました。
改めて、test.ch に >>136 のfoo部分をcombine.chにしたコードを入れ、
test.chを実行させてみました。

結果は下記になります。
bash: ./combine.sh: No such file or directory
ファイル名は色々書き換え、そのままfooで拡張子なしも実行してみましたが、 同じ階層にファイルが実在しても、このようなエラーとなりました。

bsshというのが使えないという事なのでしょうか?

#140: Posted by Author Profile Page bzbellからhatoへの返信 @ July 11, 2009 [REPLY]
user-pic

>>139 hato さん

拡張子は何でも構いませんキョロキョロ
たぶん検索対象とするフォルダがないからエラー表示されてるんだと思います。
本来なら log/ フォルダ内に 01/、02/ などブログ ID のフォルダが存在すると思うのですが、そのフォルダがないからと思われまする。

log/ フォルダ内に combine.sh を移動して確認してみてください。
たぶん正しくファイルが作成されそうな気がしますキャハハ

combine.sh を log/フォルダ外で実行させたい場合には find コマンドの使い方を調べて頂けたらと思いますぺこり

#141: Posted by hatoからbzbellへの返信 @ July 11, 2009 [REPLY]
user-pic

>>140 bzbell さん

さっそくの回答ありがとうございます。 しかし、残念ながら検証を行っていたのは、すでにlogフォルダ内でして、 各ブログIDのフォルダと蓄積ログのデータが入っている状況です。
/log/
├test.ch (bash ./combine.sh)
└combine.sh (find ./[0-9]* -name "data*" -exec cat "{}" \; > data00)
このような構成になっており、カッコ内がソースコードになります。
#142: Posted by Author Profile Page bzbellからhatoへの返信 @ July 11, 2009 [REPLY]
user-pic

>>141 hato さん

えと、確認します。

  1. log/ フォルダ内にはブログ ID に相当するフォルダがあるわけですね。
  2. 各ブログ ID フォルダ( 01/、02/… )にはデータファイル( data01 など )はありますか。
  3. combine.sh 内に記述したコマンドは、log/ フォルダ配下から「数字フォルダ内に存在するすべての data という文字を含むファイルを検索して、ひとつのファイル( data00 )にまとめる」ということをやってます。認識合ってますか!?

上記を満たしているにも関わらず combine.sh でエラーするととなると、これ以上わたしからは分かり兼ねます。ヘテムルのサーバ上で実際に現象確認しないと分かりませんイヤイヤ
ですので、申し訳ありませんが hato さんご自身でひとまとめにする方法を模索して頂けますか。

#143: Posted by hatoからbzbellへの返信 @ July 11, 2009 [REPLY]
user-pic

>>142 bzbell さん
お返事ありがとうございます。
確認の内容で間違いありません。
色々とお時間いただきありがとうございました。
自分でも改めて調べてみたいと思います。

解決の為のキーワードとしては、hetemlでbashというシェルが使えない。
もしくはbashのfideというコマンドが機能しない。
という事でよいでしょうか?

#144: Posted by Author Profile Page bzbellからhatoへの返信 @ July 11, 2009 [REPLY]
user-pic

>>143 hato さん

> hetemlでbashというシェルが使えない。
> もしくはbashのfideというコマンドが機能しない。

いいえ、bash はヘテムルでも使えてるようですよ。
単純に find の問題かと思われまする。

#145: Posted by ugc @ July 21, 2009 [REPLY]
user-pic

こんにちは。
アクセスランキングプラグインを利用させていただいて居ります。
ありがとうございます。

お手数ですが質問がございます。

現在マルチドメインのサイトにランキングを仕掛けさせていただいてます。

0000.jp のドメインでセットすると
例えば
0000-1.jpとかwww.0000.jpのドメインのURLでブラウジングするとエラーが出てサークルが回りっぱなしになります。
複数のドメインでもアクセス出来るようなセッティングは可能なのでしょうか?
申し訳ございませんが解決方法がございましたらご教示ください。
お手数おかけいたします。

#146: Posted by ugc @ July 21, 2009 [REPLY]
user-pic

bzbell様
自己レスですが、解決いたしました。
とりあえず.htaccsessでwww付きで紹介のあったurlをwww無しで表示するようにしたら問題なく動くようになりました。

お騒がせしました。
またわからないことがありましたらご相談いたします。
ありがとうございました。

#147: Posted by みっちー @ September 3, 2009 [REPLY]
user-pic

はじめまして。こんばんわ。

いま、アクセスランキングを導入しているのですが、
MTCSで自分がログインしている時のマイページとログインしていない時のマイページのURLが
ちがうくて、ランキングに2つでてしまいます。

その回避方法として、特定URLの排他をやってみたいのですが、がんばっても対応できませんでした。
もしよろしければ、特定URLをはじく方法を教えていただければと思います。

exclude_page

でははじくIF文がむずかしくなりそうなので。

よろしくお願い致します!

#148: Posted by meico @ September 15, 2009 [REPLY]
user-pic

こんにちは
アクセスランキングについて教えてください。
以前まで使用していたサーバーから移行したのですが、
アクセスランキングがうまく動作できなくて悩んでいます。。。

環境は
サーバー:クララオンライン
MT:4.261 PHP:5.16

以下のような表示はされるのですが
Range: -
Count: /Days
ログが生成できないようです。

過去のコメントを拝見して.htaccessに
AddHandler application/x-httpd-phpcgi .php
と入力してpagerankフォルダにアップしましたが結果は変わらずでした。

jquery.pagerank.jsについて何か追記することなどありましたでしょうか……
ページは以下になります。(すみませんページURLは非公開にしていただけますでしょうか)

お手数ですが、一度ご確認いただけたら嬉しいです。
よろしくお願いいたします。

#149: Posted by もも @ July 14, 2010 [REPLY]
user-pic

こんにちは!
こちらからダウンロードさせていただいたのですが、jQuery同士がコンフリクトを起こしているようで、他のjQueryプラグインとバッティングしているようです。
使い方の2と4でheaderの記述が異なるようなのですが、

jQuery.noConflict(); var j$ = jQuery;

は必要でしょうか。

#150: Posted by Author Profile Page bzbellからももへの返信 @ July 14, 2010 [REPLY]
user-pic

>>149 もも さん

こんばんわ^^

すいません、手順 4 は無視してくださいあせあせ
またコンフリクトは必ずしも必要ではありません。
他ライブラリと併用しないのであれば記述する必要ありません。にこっ!

#151: Posted by もも @ July 15, 2010 [REPLY]
user-pic

お忙しい中、ご回答ありがとうございます。
申し訳ございません。
もう少し、詳しく書けばよかったのですが、

jQuery.noConflict(); var j$ = jQuery;

をヘッダーに追加しないとアクセスランキングが表示されないのですが、追加すると他のjQueryプラグインが競合して動かなくなってしまいます。

こちらは、何かしらの変更が必要でしょうか。。。

#152: Posted by Author Profile Page bzbellからももへの返信 @ July 18, 2010 [REPLY]
user-pic

>>151 もも さん

返事が遅くなってすいません。
では、ダウンロードした圧縮ファイル中の jquery.pagerank.js 内から「j$」を検索して「jQuery」に書き換えてください。
そうすればコンフリクトの記述は不要になります。
具体的には、1、9、10、50、62 行目を変更してくださいやあ!

#153: Posted by Movable Type 備忘録ファン @ July 31, 2010 [REPLY]
user-pic

いつも楽しく拝見しております。
素晴らしいプラグインありがとうございます。
おかげさまで大変重宝しております。

特定のURLをいくつかランキングに表示させないためにはどのような設定をしたら良いでしょうか。
初歩的なご質問で申し訳ありません。

お時間ございましたらご指導よろしくお願いいたします。

#154: Posted by Author Profile Page bzbellからMovable Type 備忘録ファンへの返信 @ August 1, 2010 [REPLY]
user-pic

>>153 Movable Type 備忘録ファン さん

こんばんわ^^

ご質問の件ですが、3. で説明してますコード中の exclude_page オプションに '1' を指定してください。そうすると、そのページのみランキングから除外されますやあ!
ご確認くださいぺこり

#155: Posted by Movable Type 備忘録ファン @ August 1, 2010 [REPLY]
user-pic

管理人様

お忙しい中、早急にご回答いただき、ありがとうございました。

それは特定のアドレス。
例えば http://www.yahoo.co.jp、http://www.google.co.jp
などのURLからのアクセスを複数ランキングから除外したい場合はどのようにすべきでしょうか。

度々申し訳ございません。

#156: Posted by Author Profile Page bzbellからMovable Type 備忘録ファンへの返信 @ August 2, 2010 [REPLY]
user-pic

>>155 Movable Type 備忘録ファン さん

こんばんわ^^
返事が遅くなってすいません。

>…URLからのアクセスを複数ランキングから除外したい

上記の件ですが、それはできません。
基本的にリファラーの方は来るもの拒まず…ですやあ!

#157: Posted by Movable Type 備忘録ファン @ August 3, 2010 [REPLY]
user-pic

GoogleとかYahooとかの検索ばっかりで埋まってしまうのでいい方法はないかと思い、ご質問させていただきました。

お忙しい中、ご回答いただきありがとうございました。

#158: Posted by Author Profile Page bzbellからMovable Type 備忘録ファンへの返信 @ August 3, 2010 [REPLY]
user-pic

>>157 Movable Type 備忘録ファン さん

それでしたら、任意の URL をひとつの URL にまとめることができます。

rank_config.php 内の 20 行目あたりに「リファラ変換テーブル」というのがあります。
これはアクセスされた URL を任意の URL に変換する機能になります。
使い方は rank_config.php 内に記載してますので参考にして頂けたらと思います。
今後ともどうぞよしなにぺこり

 Post a Comment

 

コメント用フィード