Movable Type 備忘録

 

 Ajaxでアクセス・ランキングを表示する4

こんばんわ^^

訪問者さんからのご要望で、以下の機能を盛り込んで欲しいとのことでしたので対応しました。

  1. ランキング結果だけを表示させたい。
  2. カテゴリや月別ページはランキングから除外したい。

1. の「ランキング結果だけを表示させたい。」に関しては、既に対応済みだったのですが、サーバ側の PHP スクリプトを変更する必要があったため、今回そこら辺を修正して、クライアント側( JavaScript )で対応するように修正しました。

ダウンロード

お好みに応じて、prototype 版、jQuery 版をダウンロードしてください。

- 2008.02.02 追記 -

rank_post.php の 10 行目、rank_view.php の 4 行目をそれぞれ以下のように修正しました。

require('rank_config.php');

また、ロリポップやチカッパなど PHP4 がインストールされてるサーバでも動作するよう flock を使わない方法で修正しています。
ロリポップ、チカッパをお使いの人は pagerank/ ディレクトリのパーミッションを 777 とすることでログ収集、ランキング表示されましたのでご確認ください。

ディレクトリ構成

prototype 版も jQuery 版も基本的なディレクトリ構成はいっしょです。
また、ここでは以下のようなディレクトリ構成として説明しますが、各自の環境に合わせて読み替えてください。

http://●●●.com/
|
+-- js/
|   +--- pagerank/
|   |   +-- ajax-loader.gif
|   |   +-- prototype.js( or jquery.js)
|   |   +-- prototype.pagerank.js( or jquery.pagerank.js)
|   |   +-- index.php
|   |   +-- rank_check.php
|   |   +-- rank_config.php
|   |   +-- rank_post.php
|   |   +-- rank_view.php

設置の仕方

  1. まずスクリプト一式をアップロードします。
    上記ダウンロードからお好みで prototype 版、jQuery 版をダウンロードして適当なフォルダに展開します。そして、上記ディレクトリ構成のようにアップロードします。

  2. 次に prototype.pagerank.js( or jquery.pagerank.js )を変更します。
    以下の行を各自の環境に合わせて変更してください。

    /****************************************************************************
    * Cookie有効/無効フラグ(0:無効、1:有効)
    * ※Cookieを無効にすると、ページにアクセスされるたびにカウントアップされます。
    *   また、当然PHPスクリプトはその都度実行されます。
    ****************************************************************************/
    var pagerank_enable_cookie = 1;
    /****************************************************************************
    * アクセスログを取りたいブログID
    * ※複数のブログの集計を行いたい場合には 0 を指定してください。
    0 というブログ ID は存在しませんので。
    ****************************************************************************/
    var pagerank_blogid = <$MTBlogID$>;
    /****************************************************************************
    * アクセスランキングを表示するIDタグ名称
    ****************************************************************************/
    var pagerank_view_box = 'pagerank_viewer';
    /****************************************************************************
    * ブログ URL(index.html がある場所)/アップロード先相対パス
    * ※pagerank_blog_url: トップページ(index.html)のURL
    * ※pagerank_home_url: アップロード先をトップページからの相対パス
    ****************************************************************************/
    var pagerank_blog_url = '<$MTBlogURL$>';
    var pagerank_home_url = 'js/pagerank/';
    /****************************************************************************
    * アクセスログ保存/表示スクリプト/ローダーイメージ
    ****************************************************************************/
    var pagerank_post_url = [pagerank_blog_url, pagerank_home_url, 'rank_post.php'  ].join('');
    var pagerank_view_url = [pagerank_blog_url, pagerank_home_url, 'rank_view.php'  ].join('');
    var pagerank_loader   = [pagerank_blog_url, pagerank_home_url, 'ajax-loader.gif'].join('');
    /****************************************************************************
    * ランキング表示数
    * ※上位何位まで表示するか設定します。0を指定するとすべて表示します。
    ****************************************************************************/
    var pagerank_ranking_max = 15;
    /****************************************************************************
    * ランキング表示形式(0:非表示、1:カウンタ表示、2:パーセンテージ表示)
    * ※カウンタの表示/非表示を設定します。
    ****************************************************************************/
    var pagerank_ranking_type = 1;
    

    青い字の部分を変更します。

    • pagerank_enable_cookie
      Cookie の有効/無効を設定します。

      • 0 を指定した場合 Cookie は無効になります。
      • 1 を指定した場合 Cookie は有効です。デフォルトは有効となってます。

      Cookie を無効にするとページにアクセスされるたびにカウントアップされます。また、PHP スクリプトはその都度実行されます。

    • pagerank_blogid
      ページアクセスを集計したいブログのブログ ID を指定します。
      デフォルトでは <$MTBlogID$> となっていますが、直接ブログ ID に変更しても問題ありません。

      また、複数のブログのアクセスを集計したい場合には 0 を指定するといいです。

    • pagerank_blog_url
      アップロード先の URL を指定します。デフォルトでは <$MTBlogURL$> となっています。
      トップページ(index.html がある場所)の URL を指定してください。

    • pagerank_home_url
      アップロード先の相対パスを指定します。トップページからの相対パスを記述してください。
      デフォルトでは js/pagerank/ となっています。
      各自の環境に合わせて変更してください。

    • pagerank_ranking_max
      上位何位まで表示するかを設定します。デフォルトは上位 15 位まで表示されます。

    • pagerank_ranking_type
      ランキングのカウンタの表示形式を選択します。

      • 0 非表示
      • 1 カウンタ表示
      • 2 パーセンテージ表示

    もう 1 つ、ページタイトルから任意のテキスト(たとえば、サイト名称)を削除する設定を行います。

    var title    = encodeURIComponent(document.title.replace(' - <$MTBlogName$>', ''));
    

    青い字の部分を各自のサイトに合わせて変更します。
    デフォルトでは、「Ajaxでアクセス・ランキングを表示する - Movable Type備忘録」のようなページタイトル名から ' - Movable Type備忘録' を削除するような設定になっています。

    以下に訪問者さんにアドバイスした例を記します。

    「サイト名称:ページタイトル」の場合
    var title    = encodeURIComponent(document.title.replace('<$MTBlogName$>:', ''));
    「カテゴリ名称:ページタイトル:サイト名称」の場合
    var title    = encodeURIComponent(document.title.replace(/^.*:(.*):.*$/, "$1"));
    「ページタイトル - カテゴリ名称:サイト名称」の場合
    var title    = encodeURIComponent(document.title.replace(/^(.+) - .*$/, "$1"));
    

    ページタイトルは人それぞれ異なると思いますので、各自のテンプレートに合わせて変更する必要があります。
    分からないことがあればご連絡いただければ削除の仕方をアドバイスいたします。

  3. 次に rank_config.php を変更します。
    以下の行を各自の環境に合わせて変更してください。

    rank_config.php

    1. <?php
    2. /*
    3.  * ページ・アクセス情報を保存するファイル名
    4.  */
    5. $GLOBALS['RANK_DATA'] = 'data.txt';
    6. /*
    7.  * 更新履歴情報を保存するファイル名
    8.  */
    9. $GLOBALS['PERIOD_DATA'] = 'period.txt';
    10. /*
    11.  * 表示データ削除の周期を設定します
    12.  * ★必ず以下の設定範囲内で設定してください。
    13.  * ★未使用時は 0 を設定してください。
    14.  */
    15. $GLOBALS['PERIOD_MONS'] = 1;// 月:0~ 3の間で設定
    16. $GLOBALS['PERIOD_DAYS'] = 0;// 日:0~31の間で設定
    17. $GLOBALS['PERIOD_HOUR'] = 0;// 時:0~24の間で設定
    18. /*
    19.  * 指定 IP アドレスからのカウントを省きます
    20.  * たとえば、自宅パソコンからはカウントに入れたくない場合などです
    21.  * 複数の IP アドレス指定が可能です
    22.  * ★ただし、あまり多くの除外 IP アドレスを指定すると、
    23.  * その分表示速度に影響がでますのでご注意ください
    24.  */
    25. $GLOBALS['SELF_ADDR'] = array('0.0.0.0');
    • RANK_DATA
      アクセスログファイル名です。任意のファイル名に変更してください。

    • PERIOD_DATA
      集計期間を保持しておくファイル名です。これも任意のファイル名に変更してください。

    • PERIOD_MONS / PERIOD_DAYS / PERIOD_HOUR
      集計期間を指定します。デフォルトは 1 ヶ月間となってます。

      たとえば、1 週間ごとにランキングをクリアしたい場合には以下のようにします。

      1 週間分集計したい場合
      $GLOBALS['PERIOD_MONS'] = 0;// 月:0~ 3の間で設定
      $GLOBALS['PERIOD_DAYS'] = 7;// 日:0~31の間で設定
      $GLOBALS['PERIOD_HOUR'] = 0;// 時:0~24の間で設定
      
    • SELF_ADDR
      自宅からのアクセスを除外したい場合に、自宅 IP アドレスを指定します。添付ファイル中の rank_check.php をブラウザから実行することで自宅 IP アドレスを知ることができます。
      また、複数の IP アドレスを指定できます。たとえば、以下のようなかんじで。

      $GLOBALS['SELF_ADDR']   = array('23.24.25.26', '120.121.122.123');
      
  4. 一通り変更したら、pagerank/ フォルダごとサーバにアップロードします。
    また、prototype.pagerank.js( or jquery.pagerank.js )中のブログ ID(pagerank_blogid) やブログ URL(pagerank_blog_url)に、MT タグを使用する場合は MT の管理画面からインデックステンプレートを新規作成して、prototype.pagerank.js( or jquery.pagerank.js )をコピー & ペーストして再構築すると、ブログ ID や URL などが自動的に割り当てられます。

    PHP スクリプトはお使いのサーバに合わせてパーミッションを変更します。
    たとえば、さくらインターネットやロリポップでは 755、CORESERVER では 705 とします。また、pagerank/ ディレクトリのパーミッションを 755 としてください。

  5. 次にアクセスログを集計したい、すべてのページに以下を追加します。

    prototype 版の場合
    <script type="text/javascript" src="<$MTBlogURL$>js/pagerank/prototype.js"></script>
    <script type="text/javascript" src="<$MTBlogURL$>js/pagerank/prototype.pagerank.js"></script>
    
    jQuery 版の場合
    <script type="text/javascript" src="<$MTBlogURL$>js/pagerank/jquery.js"></script>
    <script type="text/javascript" src="<$MTBlogURL$>js/pagerank/jquery.pagerank.js"></script>
    
  6. 最後にアクセスランキングを表示したいページ内のお好きなところに以下を追加します。

    <div id="pagerank_viewer"><script type="text/javascript">pagerank_view();</script></div>
    

以上で設置完了です。ブラウザから表示確認してください。

そそ、大事なこと忘れてました。
Movable Type 4をお使いの人はテンプレート・モジュールの『ヘッダー』を以下のように変更してください。ブラウザに依存するのか、タイトル部分が改行されてログ出力されてしまうケースがあるようです。
対策は検討中です。

<MTIf name="entry_template">
<title><$MTGetVar name="page_title"$> - <$MTBlogName encode_html="1"$></title>
<MTElse>
<MTIf name="main_index">
<title><$MTBlogName encode_html="1"$></title>
<MTElse>
<title><$MTBlogName encode_html="1"$> - <$MTGetVar name="page_title"$></title>
</MTIf>
</MTIf>

出力されるタグについて

出力されるランキングのタグは以下のような構成になっています。

<ul id="page-rank" class="widget-list">
<li class="widget-list-item rank-list-odd">
<a title="●●●" href="http://■■■" target="_blank">
<span class="right rank-list-1st">アクセス数</span>ページタイトル</a></li>
<li class="widget-list-item rank-list-eve">
<a title="●●●" href="http://■■■" target="_blank">
<span class="right rank-list-2nd">アクセス数</span>ページタイトル</a></li>
<li class="widget-list-item rank-list-odd">
<a title="●●●" href="http://■■■" target="_blank">
<span class="right rank-list-3rd">アクセス数</span>ページタイトル</a></li>
<li class="widget-list-item rank-list-eve">
<a title="●●●" href="http://■■■" target="_blank">
<span class="right">アクセス数</span>ページタイトル</a></li>
</ul>
<p style="text-align:right;">30日間ログを集計します。</p>

上記は rank_view.php ファイル内の 45 行目~ 87 行目で出力するタグを作成してます。

rank_view.php / 45 行目

  1. $cnt = 0;
  2. $s = "<ul id='page-rank' class='widget-list'>\n";
  3.  
  4. foreach ($count as $key => $val) {
  5.     if ($cnt++ % 2) {
  6.         $class = 'rank-list-odd';// 奇数番号の場合
  7.     }
  8.     else {
  9.         $class = 'rank-list-eve';// 偶数番号の場合
  10.     }
  11.  
  12.     if (3 < $cnt) {
  13.         $rankclass = '';
  14.     }
  15.     else {
  16.         if ($cnt == 1) {
  17.             $rankclass = ' rank-list-1st';
  18.         }
  19.         elseif ($cnt == 2) {
  20.             $rankclass = ' rank-list-2nd';
  21.         }
  22.         elseif ($cnt == 3) {
  23.             $rankclass = ' rank-list-3rd';
  24.         }
  25.     }
  26.  
  27.     $s .= '<li class="widget-list-item '.$class.'"><a title="'.$title[$key].'" href="'.$url[$key].'" target="_blank">';
  28.  
  29.     if ($GLOBALS['TYPE']) {
  30.         if (2 == $GLOBALS['TYPE']) {
  31.             $val = sprintf("%3.2f%%", ($val / count($count) * 100));
  32.         }
  33.  
  34.         $s .= '<span class="right'.$rankclass.'">'.$val.'</span>';
  35.     }
  36.  
  37.     $s .= $title[$key].'</a></li>'."\n";
  38.  
  39.     // 指定された上位ランク数に達したら終了します
  40.     if ($GLOBALS['MAX'] && $cnt >= $GLOBALS['MAX']) break;
  41. }
  42.  
  43. $s .= '</ul><p style="text-align:right;">14日間ログを集計します。</p>';

ざっと説明すると、

  • 50 ~ 53 行目
    リンクリストの背景をシマシマにするクラス名を処理してます。

    • .rank-list-odd: 奇数番リスト
    • .rank-list-eve: 偶数番リスト
  • 61 ~ 67 行目
    ランキングの順番を差別化するクラス名を処理してます。

    • .rank-list-1st: 1 位
    • .rank-list-2nd: 2 位
    • .rank-list-3rd: 3 位
  • 71 ~ 81 行目
    リンクリストを作成しています。

  • 73 ~79 行目
    アクセスカウンタの表示/非表示、パーセンテージ表示選択時の処理してます。

必要でしたらお好みでカスタマイズしてください ( ̄∇ ̄)/

任意のページのみランキング対象としたい場合

ここでは任意のページのみランキング対象とする方法を説明します。
ランキングから除外したいページの HTML ヘッダ(<head>~</head>)の間に以下を追加することで除外できます。

<script type="text/javascript">
//<![CDATA[
pagerank_exclude = 1;
//]]>
</script>

また、トップページはデフォルトで除外されます。
カテゴリアーカイブと月別アーカイブの両方を除外したい場合には、以下の手順で除外できます。

  1. ブログ記事リスト・アーカイブテンプレートを修正します。

    <MTSetVar name="ranking_exclude_page" value="1">
    <$MTInclude module="ヘッダー"$>
    

    赤い字の行を追加します。注意することは必ずヘッダ・テンプレートモジュールの前で追加してください。そうしないと、上記 ranking_exclude_page という変数が期待通りに適用されません。

  2. ヘッダ・テンプレートモジュールを修正します。

    <MTIf name="ranking_exclude_page">
    <script type="text/javascript">
    //<![CDATA[
    pagerank_exclude = 1;
    //]]>
    </script>
    </MTIf>
    

    赤い字の部分を追加します。注意することは、必ず prototype.pagerank.js( or jquery.pagerank.js )の後で追加してください。そうしないとエラーします。

 Trackback Pings(3)

from NSproduce | フリーのWEBデザイナー・HTMLコーダー・MTカスタマイズ

こちらのMovableType備忘録というサイトで、MovableType内でペ...

from Movable Type 備忘録

こんにちわ^^ 午前中は天気良くってテンション上がったので、午前中のうちに買い物行ってきました。 ついでに(いつものように)アイス買って公園で遊んでる子供...

from Welcome Girls Night blog_SIDE

こんばんは~! 今日は久々にPCに向かっ...

 Comments(97)

#1: Posted by rui [RES]

とても素早い対応ありがとうございます。

どうにか無事に動作しているようなのですが、
「任意ページ除外フラグ(0:カウント、1:除外)」を
var pagerank_exclude = 1;

に設定すると何も記録がされないようなのですが・・。
(カウントしたいエントリーの記事もカウントしません)

「0」にしても対象外のヘッダー部分に除外タグをいれたら大丈夫みたいです。

除外したいページの「<head>」部に
----
<script type="text/javascript" src="<$MTBlogURL$>js/pagerank/prototype.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/pagerank/prototype.pagerank.js"></script>
<MTIf name="ranking_exclude_page">
<script type="text/javascript">
//<![CDATA[
pagerank_exclude = 1;
//]]>
</script>
</MTIf>
----
を入れると言う事で間違いはないでしょうか?

少し不安になりましたので、ご確認頂けたらと思います。

でもこれで希望通りの事ができるようになりました。
本当にありがとうございました。

#2: Posted by bzbell Author Profile Page [RES]

>>1 rui さん

こんばんわ^^

はい。ヘッダ・テンプレートモジュールは rui さんの方法で問題ありません。
除外したいテンプレートの <$MTInclude module="ヘッダー"$> の前で以下の追加してあげれば、そのテンプレートは除外されます。

<MTSetVar name="ranking_exclude_page" value="1">

そのようにやってもすべてのページが除外されるとしたら、prototype.pagerank.js が古いことが考えられます。

今回の対応で prototype.ajax.js をバージョンアップしています。
以前の JavaScript だと除外設定はトップページのみでした。ですので、再度ダウンロードして差し替える必要があります。

差し支えなければ、rui さんのサイトを見せていただけるともっと的確にアドバイスできると思います。

#3: Posted by さじ [RES]

こんにちはー。
いつもおせわになってます。
さらに便利になりましたね。特定ページを除外する機能待ってました。
ありがとうございますー。

ところで、デフォルトでトップページを除外するようになっているそうですが、
除外したくないときはどこかから設定するのですか?
以前のバージョンは設定がありましたよね。。。
質問ばかりですみません。教えてくださいませ。
よろしくおねがいしますー。

#4: Posted by bzbell Author Profile Page [RES]

>>3 さじ さん

こんばんわ^^

> ところで、デフォルトでトップページを除外するようになっているそうですが、除外したくないときはどこかから設定するのですか?

Σ( ̄Д ̄;) ガーーン!!
そうきますか。

すいません、てっきりトップページはカウントしないものなんだと思ったのでデフォで除外してしまいました (; ̄∇ ̄A

> 質問ばかりですみません。教えてくださいませ。

いえいえ。さじ さんのニーズに対応したものをアップしまし。
具体的には prototype.pagerank.js内の以下の場所を追加/修正しました。

43 行目 追加
/****************************************************************************
* トップページ除外フラグ(0:カウント、1:除外)
****************************************************************************/
var pagerank_exclude_top = 1;
188 行目 変更
if (pagerank_exclude_top && (pagerank_blog_url == location || 0 <= location.indexOf(pagerank_blog_url+'index'))) {

新たにダウンロードするか、上記のように修正してください。
その際、さじ さんの場合は pagerank_exclude_top = 0 とすることでトップページもカウントされます。

#5: Posted by さじ [RES]

こんにちは!
さっそくの対応ありがとうございます。
ダウンロードしなおしました。
とっても助かりましたー。ありがとうございました。

#6: Posted by bzbell Author Profile Page [RES]

>>5 さじ さん

こんばんわ^^

> とっても助かりましたー。ありがとうございました。

はい (●´∀`●) 今後ともよろしくですの♪

#7: Posted by rui [RES]

何度もありがとうございます。
ちゃんとprototype.ajax.jsを1.26にしてて、
今回も1.27にバージョンアップしてみたのですが、やはり同様のようです。

でも「任意ページ除外フラグ(0:カウント、1:除外)」を
var pagerank_exclude = 0;

にしたら、カテゴリーなどはカウントされずに、希望通りに出来て満足していますので、それで使用させて頂きます。

本当に何度もご親切にありがとうございました。

いつも「すごく詳しい情報があってありがたいサイトだな~」と思って拝見していましたが、こんなにご親切に何度も対応して頂き、感謝倍増です。

これからも参考にさせて頂きますので、宜しくお願いします

#8: Posted by bzbell Author Profile Page [RES]

>>7 rui さん

こんにちわ^^

> ・・・カテゴリーなどはカウントされずに、希望通りに出来て満足していますので、それで使用させて頂きます。

あぁ~ (´Д`;) わたしの説明が下手っぴなばかりに・・・すいませんですの。

> これからも参考にさせて頂きますので、宜しくお願いします

はい。こちらこそよろしくですの (●´∀`●)

#9: Posted by さじ [RES]

こんにちはー。
いつもお世話になってます。
たびたび質問ですみません。

さきほどアクセスランキングをMac Safari3.0.4で確認しましたら文字化けしてたんです。
WindowsのFirefoxとIE7はばけてませんでした。

MTのPublishCharsetをShift_JISにしているんですがその場合は、phpの文字コードもShift_JISにしないとだめなんでしょうかー?

もしわかりましたらお教えくださいませ。よろしくおねがいします。

#10: Posted by bzbell Author Profile Page [RES]

>>9 さじ さん

こんばんわ^^

えと、ご質問は以下の 2 つですよね (; ̄∇ ̄A

  1. Mac Safari3.0.4 だと文字化けしてしまう。
    うわぁ~Safari ですか (; ̄∇ ̄A 文字化けがらみの問題ありましたよねぇ。 わたし Safari ってインストールしてないので確認ができないのですが、こちらを参考にしてみてはいかがでしょ♪
  2. 文字コードに Shift_JIS を使用した場合、PHP 側も同様にする必要あり!?
    Ajax は基本 UTF-8 ですが、1. の方法で対応すれば問題ないのではないでしょうか。

いずれもわたしのとこでは確認ができないので申し訳ないのですが、試してみてください。

#11: Posted by さじ [RES]

ありがとうございます。
参考URLみてみましたー。
このfunctionをスクリプトのどこかに書いてあげればいいのかなー、
と思ったのですが、使い方がわからず、、です。。。なさけない。

Safariで調べてみるとだいたいここにぶつかりますねー。

ちょっとがんばって調べてみます。。。

とりあえず、ありがとうございましたー。

#12: Posted by traceraser [RES]

初めて投稿させていただきます。
サーバはロリポップで、prototype 版、jQuery 版共に、なるべく構成通りの設置を試みているのですが、以下のような Warning メッセージが出てしまって、うまく設置できずにいます。

Warning: flock(): supplied argument is not a valid stream resource in /home/sites/lolipop.jp/users/lolipop.jp-dp3XXXXXX6/web/js/pagerank/rank_view.php on line 123

Warning: fputs(): supplied argument is not a valid stream resource in /home/sites/lolipop.jp/users/lolipop.jp-dp3XXXXXX6/web/js/pagerank/rank_view.php on line 124

Warning: fclose(): supplied argument is not a valid stream resource in /home/sites/lolipop.jp/users/lolipop.jp-dp3XXXXXX6/web/js/pagerank/rank_view.php on line 125

もしこのメッセージから何か読み取れる修正点ありましたら、教えていただけると幸いです。

基本的に「rank_view.php」のファイルを特にいじらずのアップで、パーミッション755でいいんですよね?

それと2つの .js ファイルはパーミッションは特に設定しなくていいんですよね?

あと、「rank_config.php」の
$GLOBALS['RANK_DATA'] = 'data.txt';
$GLOBALS['PERIOD_DATA'] = 'period.txt';
は「任意のファイル名」ということは、特に変更しなくていいんですよね?
それとその場合、その名前の空ファイルとかを同ディレクトリに置く必要はあるのでしょうか?

質問ばかりで恐縮ですが、何か解決のヒントになるようなことがありましたら、よろしくお願いします。

#13: Posted by bzbell Author Profile Page [RES]

>>12 traceraser さん

こんにちわ^^

> もしこのメッセージから何か読み取れる修正点ありましたら、教えていただけると幸いです。

残念ですが、ロリポップではスクリプト( rank_view.php )からファイルやディレクトリを動的に作成することができないんです。

何か方法があるのか模索してますが、現状ではいい解決策が見つかりません(つω-`。)

FTP ソフトを使って事前にファイルやディレクトリを作成しておけば、ランキング表示することはできますが、使い勝手が悪くなります。

ごめんなさい (m;_ _)mペコ

#14: Posted by traceraser [RES]

>>13 bzbell さん
> 残念ですが、ロリポップではスクリプト( rank_view.php )からファイルやディレクトリを動的に作成することができないんです。

そういうことでしたか、、がっくしという感じではありますが、ご丁寧にお答えいただき、ありがとうございました。

#15: Posted by aimymoco Author Profile Page [RES]

はじめまして、半年くらい適当にブログをやっているmocoといいます。

mtのランキングスクリプト、ありがたく使わせて頂きました。
今まで変なバナーを表示しないといけないダサいアクセスランキングを使っていたので、俄然助かりました!

広告も載せずにこんなに有益な情報を載せておられるので感動しています。
これから他のエントリーもチェックさせて頂きます。

これからも頑張ってください。

#16: Posted by bzbell Author Profile Page [RES]

>>15 aimymoco さん

こんにちわ^^

> mtのランキングスクリプト、ありがたく使わせて頂きました。

ありがとうございますバイバイ

> 広告も載せずにこんなに有益な情報を載せておられるので感動しています。

わたしも以前使ってたことあって、サイトのイメージにそぐわないのが気に入らなくって作ってみたんです。

> これからも頑張ってください。

はい。ありがとうございます。
至らないとこは多々あると思いますがよろしくですのもじもじ

#17: Posted by bzbell Author Profile Page [RES]

はじめまして、ランキングスクリプトありがたく使わせて頂いております。
一つお聞きしたいのですが、このスクリプトはページ毎のランキングを表示するものですが、ブログ毎のランキングを表示するようにすることはできますでしょうか?

現在、複数ブログのトップページと各エントリーに、カウント集計のタグを入れてありますが、各エントリーページからアクセスしても一つのブログのアクセスとして集計し表示したいと思っております。

宜しくお願いいたします。

現在(ページごと)              理想(ブログごと)
1位 ○○ブログ ××について 20    1位 ○○ブログ 30
2位 ○○ブログ △△について 10 ⇒ 2位 △△ブログ 5
3位 △△ブログ □□について 5     3位 □□ブログ 1

わかりにくくてすみません。

#18: Posted by bzbell Author Profile Page [RES]

はじめまして、ランキングスクリプト使わせていただいております。
一つお聞きしたいことがあります。このスクリプトはページ毎のランキングを表示するものですが、ブログ毎のランキングを表示したいと思っております。

現在、複数ブログのトップページと各エントリーに集計用のタグを入れてあります。各エントリーページからのアクセスとトップページからアクセスを集約してひとつのブログのアクセスとして表示したいということです。

わかりにくくてすみません。

現在(ページ毎)                やりたい事
1位 ○○ブログ AAAについて 50    1位 ○○ブログ 80
2位 ○○ブログ BBBについて 30 ⇒  2位 △△ブログ 10
3位 △△ブログ GGGについて 10    3位 □□ブログ  5

わかりにくいと思いますが、宜しくお願いいたします。

#19: Posted by bzbell Author Profile Page [RES]

>>17 bzbell さん
>>18 bzbell さん

こんばんわ^^

あれっ!? bzbell ってわたしあせあせ
もしかして、Google での認証って bzbell で表示されちゃう!?

それはさておき、ご質問の件ですが理屈的には可能ですよワクワク
でも配布してるスクリプトは、ブログ内のページアクセス集計を目的としてますのでダメですね。

平日は中々時間が取れないので無理ですが、お時間いただけるのでしたら週末にでもお作りしますよキャハハ

#20: Posted by bzbell Author Profile Page [RES]

>>19 bzbell さん

早速、お答えいただきまして、ありがとうございます!!
すみません二回も投稿してしまいましたキャハハ
しかも投稿者がbzbellさんになっています。なんでかわかりませんが、すみません。

>平日は中々時間が取れないので無理ですが、お時間いただけるのでしたら週末にでもお作りしますよ
本当ですか!?べ~

自分では、知識不足でどうにもならないので、作っていただけるなら是非宜しくお願いいたします。
急いではいませんので、いつになってもいいので待ってます。

これからも応援させていただきます!!


#21: Posted by 306 [RES]

はじめまして。

唐突なんですが、このアクセスランキングスクリプトを使おうとしたのですが、どうもうまく動いてくれないんです。

js/pagerank/index.phpを読み込んでみたのですが、読み込みのGIFが一瞬でて、あとはスタイルで指定されている青い枠だけが残って、肝心なXHTML部分が反映されません。

私もチカッパなんでhttp://bizcaz.com/archives/2007/10/19-000703.php#r9と同じ症状かな?とか思ったんですけど、何回も導入しなおしたのですがうんともすんとも言いません。

prototype.pagerank.jsはちゃんとMT側でテンプレートをコピー&ペーストして作ったので、パスは間違いないと思うのですが。

弄ったところは「ページタイトルを削除する」所と「出力されるタグ」の部分だけなんです。

スミマセンがアドバイスが欲しいです、お願いします。

#22: Posted by bzbell Author Profile Page [RES]

>>21 306 さん

こんばんわ^^

ご質問の件ですが、以下のことを確認してみてくださいにこっ!

  1. お使いのサーバでインストールされてる PHP は PHP4 でしょうか。
    PHP4 だと flock というファンクションが使用できないので以下のファイルと差し替えて確認してみてください。
    pagerank_lolipop.zip
  2. pagerank/ ディレクトリのパーミッションは 755 となってますでしょうか。
    pagerank/ ディレクトリの中にファイルを作成しますので、書込み権限が必要なんです。

わたしが知る限りロリポップでは間違いなく 1. が原因でしたあせあせ
なので恐らくチカッパも同様だと思われまする。

#23: Posted by 306 [RES]

>>22

すばやい対応ありがとうございます。が、ダメでした。
PHPエラーメッセージさえ出ず、>>21と状況は変わりませんでした。

なんかややこしくてスミマセンあせあせ

PHP4がダメということなら、5になればいいんですかね?
これ以上施しようがないなら、サーバー側のバージョンアップを待ってみますねイヤイヤ

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

#24: Posted by bzbell Author Profile Page [RES]

>>23 306 さん

> すばやい対応ありがとうございます。が、ダメでした。

くやしぃですねーーーっキャハハ
女の意地で原因を追究したいのですが・・・306 さんお付き合いしていただけますかあせあせ !?

まず、pagerank/ ディレクトリのパーミッションは 755 になっているということでよろしかったですか!?
とりえあず、書き込み権限があるという前提で話を進めます。

他の人からもランキング表示できないとのご連絡を頂いてまして、たぶん同様に PHP4 によるものだと思うのですが、わたしの方では動作確認ができないので、以下のコメントで記したスクリプトを実行して確認していただいてます。

http://bizcaz.com/archives/2008/01/27-193535.php#c2861

良かったら 306 さんも確認していただけますか。
わたし意地でも解決してみせますっサングラス

#25: Posted by 306 [RES]

>>24

755ではいきませんでしたね。もしかしたらと思って777にしてみたら読み込めました。

#26: Posted by bzbell Author Profile Page [RES]

>>25 306 さん

> 755ではいきませんでしたね。もしかしたらと思って777にしてみたら読み込めました。

えっあせあせ !?
チカッパってフルアクセス(777)許可ですか !!

サーバによって違うんですねあせあせ
そうすると、ページランキングも表示されます !?

#27: Posted by 306 [RES]

>>26
いまだに沈黙を守ったままですね。何がいけないんでしょうかねあせあせ

2個ディレクトリの上をいけばブログ見れますが、あんまり口外したくないので、コメントを掲載するときはアドレス消してくださるとありがたいです。

#28: Posted by bzbell Author Profile Page [RES]

>>27 306 さん

ページアクセスされるとログファイルが作成されます。
作成されることを確認した上で、306 さんの場合はテンプレート内のランキング表示部を以下のようにすれば表示されるような気がします。

<div id="pagerank_viewer"><script type="text/javascript">pagerank_view();</script></di>
#29: Posted by 306 [RES]

>>28

bzbell さん

ログファイルが作成されませんね。何度も試しましたが、js/pagerank 内には何も変化が現れませんね。
様子を見たほうがいいんでしょうか?

#30: Posted by bzbell Author Profile Page [RES]

>>29 306 さん

なぜ しくしく !?
明日まで待っていただけますか。
そしたら友人のロリポップをお借りして実際に試してみます。

先ほどの test.php では『ファイル作成: OK』と表示されたのですよね!?

#31: Posted by 306 [RES]

>>30

bzbellさん お疲れ様です!

>『ファイル作成: OK』

はい、ちゃんとOK出ました。スミマセン、お手数かけますあせあせ

#32: Posted by bzbell Author Profile Page [RES]

>>31 306 さん

> はい、ちゃんとOK出ました。スミマセン、お手数かけます

いぃえぇ、こちらこそ余計な手間かけさせてしまってすいませんあせあせ
もしかすると、ロリポップ(チカッパも)では fclock というファンクション以外にも何か制約があるのかなぁ。

もう一つ気になることは記事中にも明記してますが、prototype.pagerank.js 内には MT タグが使用されてます。
本来は prototype.pagerank.js を再構築することで、ブログ ID、ブログ URL を自動生成するのですが、306 さんは再構築してますか!?
それとも、ただアップロードしただけですか!?

ただアップロードしただけだと、PHP に渡すパラメータに不正な値がわたってしまうのでロギングされなくなります。
ご確認いただけますか。

わたしの方も明日ロリポップで実際に試してみます。

#33: Posted by 306 [RES]

>>32 bzbellさん

>本来は prototype.pagerank.js を再構築することで、ブログ ID、ブログ URL を自動生成するのですが、306 さんは再構築してますか!?
MT側で作ったので、MTタグは反映されているはずです。再構成オプションもつけているので、常に再構成されているはずです。

すみません、お願いします。

#34: Posted by bzbell Author Profile Page [RES]

>>31 306 さん

ロリポップのサーバを借りて確認してみました。

  • rank_view.php 4 行目、rank_post.php 10 行目を以下のように修正
    require('rank_config.php');
    
  • pagerank/ ディレクトリのパーミッションは 777

以上のことでロリポップでは ログ収集、ランキング表示されました。

修正したスクリプトを UP しましたので、お手数ですがダウンロードして再度確認してみてくださいもじもじ

#35: Posted by 306 [RES]

>>34

bzbellさん
朝早くからありがとうございます。やっと動作しました。

ご対応ありがとうございます。これからもこのサイトは活用させてもらいますねサングラス
ありがとうございました。

#36: Posted by bzbell Author Profile Page [RES]

>>20 bzbell さん

こんにちわ^^

遅くなりましたが、各ブログ内で集計したアクセスログを、さらにブログ単位で集計して表示するためのスクリプトを作成しましたのでご確認ください。

■使い方

基本的には今まで通りページアクセスのログを集計してください。

  1. rank_view_blogs.php を pagerank/ ディレクトリ内にアップロードします。

  2. rank_view_blogs.php 内の 5 ~ 9 行目に一括集計したいブログの ID、名称を記入します。

    $blog_lists = array(
    /*[0]*/'1'  => '×××××',// ブログID  1 => ブログ名称 ×××××
    /*[1]*/'5'  => '○○○○○',// ブログID  5 => ブログ名称 ○○○○○
    /*[2]*/'21' => '◇◇◇◇◇',// ブログID 21 => ブログ名称 ◇◇◇◇◇
    );
    

    上記はブログ ID=1, 5, 21 のブログのタイトル名称をそれぞれ入力した例です。

  3. prototype.pagerank.js(or jquery.pagerank.js)内を以下のように修正します。

    var pagerank_view_url = [pagerank_blog_url, pagerank_home_url, 'rank_view_blogs.php'  ].join('');
    

以上ですうぅ~ん
一応カンタンには動作確認しておりますが、長期的な確認は当然ですがしておりません。

長期的に使ったことで気になる点を以下に記しておきます。

  • 一括集計するブログ数が極端に多いケース(たとえば、50 コとか)
  • ランキング表示時間
    ランキング表示する度に、各ブログのアクセスログを一括集計しますので気になるところではあります。場合によってキャッシュ機能、またはリアルタイム性を無視してパフォーマンス性を重視した方がいいかも、です

と、こんなところでしょうか。

重要なことは訪問者さんに負担(表示が重たい)にならないことだと思います。
もし bzbell さん(ややっこしいイヤイヤ)がお使いのサーバで cron が使えるようでしたら、それ相応のスクリプトに組み替えたほうがサーバにも易しいですチュ!

その時はご連絡ください。

#37: Posted by bzbell Author Profile Page [RES]

>>36 bzbell さん

google#20です。
お忙しい中、早速作っていただきまして本当にありがとうございます。
ダウンロードして使用させていただきます。

また、気になる点などアドバイスもくださいまして本当に感謝しております。もじもじ

これから設置して使ってみたいとおもいます。bzbellさんは、本当に優しいですね!!べ~

#38: Posted by bzbell Author Profile Page [RES]

>>37 bzbell さん

こんにちわ^^

> お忙しい中、早速作っていただきまして本当にありがとうございます。

どぉ致しましてワクワク

> これから設置して使ってみたいとおもいます。bzbellさんは、本当に優しいですね!!

はい。ご確認ください。
何かありましたらご連絡いただけたらと思いますもじもじ

#39: Posted by bzbell Author Profile Page [RES]

>>38 bzbell さん

google#20です。

設置してみたのですが、うまくできませんでした。集計結果が何も表示されません。キャハハ

まず、prototype.pagerank.jsの以下の部分を変更しました。

var pagerank_view_url = [pagerank_blog_url, pagerank_home_url, 'rank_view_blogs.php' ].join('');


それから、作っていただいたrank_view_blogs.phpの中に以下のものを書き込みました。

$blog_lists = array(
/*[0]*/'39' => '○○株式会社',// ブログID 39 => ブログ名称 ○○株式会社
/*[1]*/'9' => 'オフィス××',// ブログID 9 => ブログ名称 オフィス××
/*[2]*/'5' => '△△事務所',// ブログID 5 => ブログ名称 △△事務所
/*[3]*/'24' => ■■コンサルティング',// ブログID 24 => ブログ名称 ■■コンサルティング
/*[4]*/'17' =>・・・
/*[5]*/'25' =>・・・
/*[6]*/'5' =>・・・
/*[7]*/'6' =>・・・

以下 27個まで続きます。

こんな感じです。 MTで設定してあるブログ名称と合わせてあります。

ちなみに、集計コードは以前と同じく各ブログのトップ(index.html)と各エントリーアーカイブです。
カテゴリーアーカイブと日付アーカイブには付けていません。

知識不足でご迷惑かけてすみません。キャハハ宜しくお願いいたします。もじもじ

#40: Posted by bzbell Author Profile Page [RES]

>>39 bzbell さん

> 集計結果が何も表示されません。

以下の点について確認させてください。

  1. お作りした rank_view_blogs.php を rank_view.php と同じ場所にアップロードしてますよねあせあせ

  2. 各ブログの rank_post.php は同じ場所のものを使用してますか。
    使用していればファイル名が異なった各ブログのログデータ作成されるはずです。

  3. 各ブログではアクセスログ収集されてますか。
    (ログファイルは作成されてますか)
    各ブログでロギングされないと、今回お作りしたスクリプトは何も表示されないので。

などが考えられるかな。
※既存のアクセスログが正しく集計できてる(動作してる)ことが大前提ですけど。


> 以下 27個まで続きます。

27 ブログですかあせあせ
各ブログのログファイルのサイズによってはちょっと処理が追いつかないかも、です。

(わたしじゃない)bzbell さんがお使いのサーバでは cron 使えますかはて?
cron を使用することで重たい処理を定期的(たとえば、2 時間に 1 回とか)に行って、その間は前回作った表示用ファイルを表示するようにすればパフォーマンス的にも、サーバ負荷的にも問題ないかとウインク

#41: Posted by bzbell Author Profile Page [RES]

>>40 bzbell さん

google#20です。説明下手くそですみませんが、宜しくお願いします。キョロキョロ

>1. お作りした rank_view_blogs.php を rank_view.php と同じ場所にアップロードしてますよね
同じ場所にアップしました。バイバイ

>2. 各ブログの rank_post.php は同じ場所のものを使用してますか。
>使用していればファイル名が異なった各ブログのログデータ作成されるはずです。

はい、同じものを使用しております~。
ログデータですが、各ブログのファイルではなくて一つのファイルしか生成されませんでした。
デフォルトのページ毎ランキングと同じファイルで、ファイル名は「blog0data.txt」です。

>3. 各ブログではアクセスログ収集されてますか。
>(ログファイルは作成されてますか)
>各ブログでロギングされないと、今回お作りしたスクリプトは何も表示されないので。

「blog0data.txt」の中身は、ちゃんと各ブログのアクセスログが取れております。キャハハ

上記ファイル中身の例
http://www.xxx.xxx/aaa/2006/10/post_8.html>○○事務所: 勉強するということ。>d125.FtokyoFL132.vectant.ne.jp>http://www.xxx.xxx/aaa/2008/01/post_12.html

このような感じのログです。

使用しているサーバーは、cronは使えないみたいです。エーン

#42: Posted by bzbell Author Profile Page [RES]

>>41 bzbell さん

理解しました。

  1. MT のブログ ID には 0 番はないので、そこからちょっと変かも、です。

  2. 各ブログのブログ ID でログが作成されると誤解してました。

  3. 各ブログのアクセスログが 1 つのファイルにまとまってしまうと、分析が困難です。

以上のことから、まずノーマルなアクセスログから設定する必要がありそうですねあせあせ
スクリプト内に固定的にブログ ID を埋め込んでるから複数には対応できなかったですね。


わたし rank_view_blogs.php のテストしかしてなかったので、うっかりしてましたあせあせすいません。

今はお仕事中なので作り直せませんが帰宅したら作ってみます。

> 使用しているサーバーは、cronは使えないみたいです。

そうですか。残念。
じゃぁ、別の方法を考えてみますねバイバイ

#43: Posted by bzbell Author Profile Page [RES]

>>42 bzbell さん

こんばんは、google#20です。仕事中なのにありがとうございます。べ~

>1.MT のブログ ID には 0 番はないので、そこからちょっと変かも、です。

0番は、「prototype.pagerank.js」のブログIDのところで、複数ブログの時は0番にするということで。0を設定しております。

>2.各ブログのブログ ID でログが作成されると誤解してました。
>3.各ブログのアクセスログが 1 つのファイルにまとまってしまうと、分析が困難です。
>以上のことから、まずノーマルなアクセスログから設定する必要がありそうですね
>スクリプト内に固定的にブログ ID を埋め込んでるから複数には対応できなかったですね。
>今はお仕事中なので作り直せませんが帰宅したら作ってみます。

仕事中なのに、お答えしていただきましてありがとうございます。にこっ!
急ぎではないので、暇でしょうがない時とかでいいのでぜひ宜しくお願いいたします。

何度も何度もすみませんぺこり

#44: Posted by bzbell Author Profile Page [RES]

>>43 bzbell さん

> 0番は、「prototype.pagerank.js」のブログIDのところで、複数ブログの時は0番にするということで。0を設定しております。

あちゃキャハハ
わたしそれさえも忘れてました。ごめんなさいあせあせ

> 急ぎではないので、暇でしょうがない時とかでいいのでぜひ宜しくお願いいたします。

はい。お言葉に甘えて少し考えてみますにこっ!

#45: Posted by hiro [RES]

はじめまして。
MT3.34 に jQuery 版を試用させていただいてます。
今のところ順調にロギングしてくれてますので、
14日分のログがたまればサイトにて公開できそうです。

ただ、cookieを有効にはしつつも有効期間を30分に設定したいのです。

jquery.ranking.js 1.05の141行目にて
now.setTime(now.getTime() + 1 * 24 * 60 * 60 * 1000);
と書かれています。

・これだと1日有効ということであってますでしょうか?
・30分に設定したい場合、
now.setTime(now.getTime() + 30 * 60 * 1000);
で問題ないでしょうか?

#46: Posted by bzbell Author Profile Page [RES]

>>45 hiro さん

こんにちわ^^

> MT3.34 に jQuery 版を試用させていただいてます。
> 今のところ順調にロギングしてくれてますので、
> 14日分のログがたまればサイトにて公開できそうです。

ありがとうございますうるうる
ご質問の件ですが、hiro さんが明記された記述で問題ありませんよ。

チョビッとだけウンチク言うと、setTime にはミリ秒という単位で渡す必要があります。

  • 1 日 = 24 時
  • 1 時 = 60 分
  • 1 分 = 60 秒
  • 1 秒 = 1000 ミリ秒

上記を計算式にしたものになります。
余談でしたあせあせ

#47: Posted by Real [RES]

このスクリプト大変重宝しております。
感謝、感謝です。
色々実装してて思ったのですが、エントリーの概要を表示させたいのですが、可能でしょうか?

#48: Posted by bzbell Author Profile Page [RES]

>>47 Real さん

こんにちわ^^

> このスクリプト大変重宝しております。

ありがとうございますうるうる

> エントリーの概要を表示させたいのですが、可能でしょうか?

う~ん、やったことないですが可能だと思います。
  1. PHP の機能を利用する。

    PHP の機能として該当するページを読込んでメタデータを取得することができます。
    メータデータ(たとえば、description)に、あらかじめ表示したエントリ概要を埋め込んでおけばできるかも、ですぺこり

  2. JavaScript からエントリ概要を渡してファイル保存

    たぶん、一番手っ取り早い方法だと思います。
    ページアクセス時のページ概要を JavaScript に渡して、それをサーバ側で保持(ファイル保存)するようにすればカンタンにできると思います。
    拡張性はこちらに分がありそうですねうぅ~ん

今別件(>>42)のご要望がありますので直ぐにはできないのですが、お時間いただけるのでしたらそちらが終わってから試しに作ってみますよふつう

#49: Posted by Real [RES]

>>48 bzbell さん

レス早いですね!
外出して戻ってきたら返信頂いたのでびっくりです!!
ありがとうございます。

>今別件(>>42)のご要望がありますので直ぐにはできないのですが、
>お時間いただけるのでした>らそちらが終わってから試しに作ってみますよ
是非2番の方法でお願いします。

デフォルトだとエントリーの本文に記事を書く(概要に記事はない)と、MTタグで「mt:entryexcerpt」は本分の何文字分かが表示されるように、このスクリプトでも同じような表現ができたら最高です。

ご無理を申しあげますが、よろしくお願いいたします。

#50: Posted by bzbell Author Profile Page [RES]

>>49 Real さん

> 外出して戻ってきたら返信頂いたのでびっくりです!!
> ありがとうございます。

まるでわたしがすっごく暇人みたいじゃないですかぁキャハハ
てか、暇してますけどあせあせ
たまたま、他の人のスクリプトを作ってたとこだったので。

> デフォルトだとエントリーの本文に記事を書く(概要に記事はない)と、MTタグで「mt:entryexcerpt」は本分の何文字分かが表示されるように、このスクリプトでも同じような表現ができたら最高です。

もちろんですチュ!

#51: Posted by bzbell Author Profile Page [RES]

>>17 bzbell さん
>>18 bzbell さん
>>20 bzbell さん
>>37 bzbell さん
>>39 bzbell さん
>>41 bzbell さん
>>43 bzbell さん

わたしじゃない、bzbell さぁ~ん ( ̄∇ ̄)/
お待たせさせてしまってすいません。

>>36 のスクリプトを使用して、以下の方法で確認していただけますか。

  1. 各ブログ内に以下を追加します。

    <script type="text/javascript" src="<$MTBlogURL$>js/pagerank/prototype.pagerank.js"></script>
    <script type="text/javascript">
    //<![CDATA[
    pagerank_blogid = <$MTBlogID$>;
    //]]>
    </script>
    

    prototype.pagerank.js の記述直後に pagerank_blogid の設定を行います。

  2. ログファイルが各ブログ単位で作成されることを確認します。

まずはご確認いただけますか。
基本プログラムをできる限り変更しないようにしたいので、お手数ですがよろしくお願いしますもじもじ

#52: Posted by bzbell Author Profile Page [RES]

>>51 bzbell さん

こんにちはべ~
googleのbzbellです。

>わたしじゃない、bzbell さぁ~ん ( ̄∇ ̄)/
>お待たせさせてしまってすいません。
いえいえ、ぜんぜん待ってないですよブイブイ
ありがとうございますグウグウ!!

>>36 のスクリプトを使用して、以下の方法で確認していただけますか。
了解しました~!! 今日試してみます!!

返事遅くなりましてすみません。エーン

#53: Posted by bzbell Author Profile Page [RES]

>>51 bzbell さん

こんにちはブイブイ
googleのbzbellですが、早速試してみたところ大成功しましたーーー!!
ありがとうございますパチパチ

記事やカテゴリもちゃんと一つのブログとしてカウントされるようになりました!!
bzbell さんには、いろいろ教えていただき、しかもスクリプトまで作っていただいて本当にありがとうございましたキャハハ!!
なにかお礼をしたいのですが、どうしたら良いでしょうか?

#54: Posted by bzbell Author Profile Page [RES]

>>52 bzbell さん
>>53 bzbell さん

こんにちわ^^

> 早速試してみたところ大成功しましたーーー!!

やりましたねっキャハハ
でもまだ問題があります。長期的に使ってみることで負荷がどのくらいになるのかあせあせ
たぶん今のままでは毎回各ログを解析してしまうので、何らかの対策が必要と思われまするガーン

とりあえず、ロギングは成功したということで次のステップに進みますねうぅ~ん

#55: Posted by bzbell Author Profile Page [RES]

>>51 bzbell さん

googleのbzbellですが、すいません。今確認しましたら、ランキングのリンク先が全部トップのブログになってしまいます。どうしたらよいのでしょうか?すみません。

構造は
http://www.xxx.net/ ←メインのブログ(ランキングを表示するページ)
http://www.xxx.net/js/pagerank/prototype.pagerank.js (設置場所)

ちなみに、貼り付けるコードの一行目も
script type="text/javascript" src="http://www.xxx.net/js/pagerank/prototype.pagerank.js">

としてあります。

ランキングを集計したいブログのurl
① http://www.xxx.net/aaa/
② http://www.xxx.net/bbb/
③ http://www.xxx.net/ccc/
こんな感じです。

わかりにくくてすみません。宜しくお願いします。

#56: Posted by bzbell Author Profile Page [RES]

>>55 bzbell さん

> ランキングのリンク先が全部トップのブログになってしまいます。

あっそっかぁキャハハ
rank_view_blogs.php 内の 31 行目で各ブログのトップページの URL を取得してるつもりだったけど、これじゃドメイン(トップ)の URL になっちゃいますねあせあせすいません。

てか、ログから各ブログのトップページ URL を取得するのって難しいかもですガーン
たとえば、以下のケース

(http://www.xxx.net/aaa/) ブログのカテゴリ (http://www.xxx/aaa/folder/) となってるはずなので、そこから (http://www.xxx.net/aaa/) を抽出するのって判別できない気がしますのほほん
各ブログの URL を定義する必要がありそうですねぇ。
もぅ少し考えてみます。

#57: Posted by bzbell Author Profile Page [RES]

>>56 bzbell さん

googleのbzbellです。にこっ!

知識がなくてお願いしてばかりで、すみませんグウグウ!!

これを機に本でも買って勉強したいとおもいます。ワクワク

何かおすすめの本などありましたら教えてください。ウインク


#58: Posted by bzbell Author Profile Page [RES]

>>57 bzbell さん

こんばんわ^^

> 何かおすすめの本などありましたら教えてください。

書籍購入して勉強したわけじゃないので、わたしがオススメなものちょっと分からないですねあせあせ
ネットでも調べられるし、わたしで分かることならお教えしますふつう

で、スクリプトの件ですが、修正したrank_view_blogs.zipに UP しました。
7 ~ 9 行目を集計したいブログの情報を記入してください。
以下のようなフォーマットになってます。

ブログ ID:ブログ名称:ブログ URL

上記項目の間は必ず半角コロン( : )で区切ってください。
例のごとくサンプルを明記してますので、その例にならって記入していただければと思いますもじもじ

#59: Posted by bzbell Author Profile Page [RES]

>>58 bzbell さん

googleのbzbellです。おはようございます。ふつう

>書籍購入して勉強したわけじゃないので、わたしがオススメなものちょっと分からないですね
>ネットでも調べられるし、わたしで分かることならお教えします

ありがとうございます!!独学なんですか?

スクリプトありがとうございます!!うるうる早速試してみました!!
しかし、今度はランキングが真っ白で何も表示されなくなってしまいました。

スクリプトの記述は、
/*[0]*/'39       :○○○ブログ:http://www.xxx.net/aaa/',
としました。何度もすみません。ぺこり
#60: Posted by bzbell Author Profile Page [RES]

>>59 bzbell さん

こんにちわ^^

すいません。
以下のようにブログ ID の後ろのスペースを削除してくださいあせあせ

/*[0]*/'39:○○○ブログ:http://www.xxx.net/aaa/',

後ほどブログ ID の両端のスペースを削除するような処理を追加したものを UP します。
まずはご確認いただけますかうぅ~ん

#61: Posted by bzbell Author Profile Page [RES]

>>60 bzbell さん

googleのbzbellです。ウインク

/*[0]*/'39:○○○ブログ:http://www.xxx.net/aaa/',

上記の用に変えましたが同じく何も表示されませんでした。うぅ~ん

すいません。

#62: Posted by bzbell Author Profile Page [RES]

>>61 bzbell さん

こんばんわ^^

> 上記の用に変えましたが同じく何も表示されませんでした。

しくしくショック!!
でも、今度は完璧ですよキャハハ
ダウンロードしてお使いください。

#63: Posted by bzbell Author Profile Page [RES]

>>62 bzbell さん

googleのbzbellです。こんばんはうるうる

早速試してみました。うるうる
何度もありがとうございます!!

ランキングは正しく表示されました、しかしクリックすると飛ぶんですが、アドレスバーに
http://www.xxx.net/http
と表示されページが見つかりませんになります。

素人の意見で申し訳ありませんが、

/*[0]*/'1:×××××:http://xxx/',
の部分の httpの後のコロンが原因だと思いました。 でしゃばってすみません。