Movable Type 備忘録

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

  • Nov232007
  • Vote:
    http://bizcaz.com/archives/2007/11/23-215846.php
  • Categories: prototype
  • Tags:
  • Social Bookmark

[2009.03.20] 以下のページでご紹介してます最新の prototype 版ランキングスクリプトをご利用ください。

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

こんばんわ^^

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

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

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

ダウンロード

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

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

  1. require('rank_config.php');

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

ディレクトリ構成

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

  1. http://●●●.com/
  2.   |
  3.   +-- js/
  4.   | +--- pagerank/
  5.   | | +-- ajax-loader.gif
  6.   | | +-- prototype.js( or jquery.js)
  7.   | | +-- prototype.pagerank.js( or jquery.pagerank.js)
  8.   | | +-- index.php
  9.   | | +-- rank_check.php
  10.   | | +-- rank_config.php
  11.   | | +-- rank_post.php
  12.   | | +-- rank_view.php

設置の仕方

  1. まずスクリプト一式をアップロードします。

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

  2. 次に prototype.pagerank.js( or jquery.pagerank.js )を変更します。

    以下の行を各自の環境に合わせて変更してください。

    1. /****************************************************************************
    2.  * Cookie有効/無効フラグ(0:無効、1:有効)
    3.  * ※Cookieを無効にすると、ページにアクセスされるたびにカウントアップされます。
    4.  * また、当然PHPスクリプトはその都度実行されます。
    5.  ****************************************************************************/
    6. var pagerank_enable_cookie = 1;
    7.  
    8. /****************************************************************************
    9.  * アクセスログを取りたいブログID
    10.  * ※複数のブログの集計を行いたい場合には 0 を指定してください。
    11.      0 というブログ ID は存在しませんので。
    12.  ****************************************************************************/
    13. var pagerank_blogid = <$MTBlogID$>;
    14.  
    15. /****************************************************************************
    16.  * アクセスランキングを表示するIDタグ名称
    17.  ****************************************************************************/
    18. var pagerank_view_box = 'pagerank_viewer';
    19.  
    20. /****************************************************************************
    21.  * ブログ URL(index.html がある場所)/アップロード先相対パス
    22.  * ※pagerank_blog_url: トップページ(index.html)のURL
    23.  * ※pagerank_home_url: アップロード先をトップページからの相対パス
    24.  ****************************************************************************/
    25. var pagerank_blog_url = '<$MTBlogURL$>';
    26. var pagerank_home_url = 'js/pagerank/';
    27.  
    28. /****************************************************************************
    29.  * アクセスログ保存/表示スクリプト/ローダーイメージ
    30.  ****************************************************************************/
    31. var pagerank_post_url = [pagerank_blog_url, pagerank_home_url, 'rank_post.php' ].join('');
    32. var pagerank_view_url = [pagerank_blog_url, pagerank_home_url, 'rank_view.php' ].join('');
    33. var pagerank_loader = [pagerank_blog_url, pagerank_home_url, 'ajax-loader.gif'].join('');
    34.  
    35. /****************************************************************************
    36.  * ランキング表示数
    37.  * ※上位何位まで表示するか設定します。0を指定するとすべて表示します。
    38.  ****************************************************************************/
    39. var pagerank_ranking_max = 15;
    40.  
    41. /****************************************************************************
    42.  * ランキング表示形式(0:非表示、1:カウンタ表示、2:パーセンテージ表示)
    43.  * ※カウンタの表示/非表示を設定します。
    44.  ****************************************************************************/
    45. 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 つ、ページタイトルから任意のテキスト(たとえば、サイト名称)を削除する設定を行います。

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

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

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

    1. 「サイト名称:ページタイトル」の場合
    2. var title = encodeURIComponent(document.title.replace('<$MTBlogName$>:', ''));
    3.  
    4. 「カテゴリ名称:ページタイトル:サイト名称」の場合
    5. var title = encodeURIComponent(document.title.replace(/^.*:(.*):.*$/, "$1"));
    6.  
    7. 「ページタイトル - カテゴリ名称:サイト名称」の場合
    8. 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. 1 週間分集計したい場合
      2. $GLOBALS['PERIOD_MONS'] = 0;// 月:0~ 3の間で設定
      3. $GLOBALS['PERIOD_DAYS'] = 7;// 日:0~31の間で設定
      4. $GLOBALS['PERIOD_HOUR'] = 0;// 時:0~24の間で設定
    • SELF_ADDR
      自宅からのアクセスを除外したい場合に、自宅 IP アドレスを指定します。添付ファイル中の rank_check.php をブラウザから実行することで自宅 IP アドレスを知ることができます。
      また、複数の IP アドレスを指定できます。たとえば、以下のようなかんじで。

      1. $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. 次にアクセスログを集計したい、すべてのページに以下を追加します。

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

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

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

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

  1. <MTIf name="entry_template">
  2.     <title><$MTGetVar name="page_title"$> - <$MTBlogName encode_html="1"$></title>
  3. <MTElse>
  4.     <MTIf name="main_index">
  5.         <title><$MTBlogName encode_html="1"$></title>
  6.     <MTElse>
  7.         <title><$MTBlogName encode_html="1"$> - <$MTGetVar name="page_title"$></title>
  8.     </MTIf>
  9. </MTIf>

出力されるタグについて

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

  1. <ul id="page-rank" class="widget-list">
  2.     <li class="widget-list-item rank-list-odd">
  3.         <a title="●●●" href="http://■■■" target="_blank">
  4.         <span class="right rank-list-1st">アクセス数</span>ページタイトル</a></li>
  5.  
  6.     <li class="widget-list-item rank-list-eve">
  7.         <a title="●●●" href="http://■■■" target="_blank">
  8.         <span class="right rank-list-2nd">アクセス数</span>ページタイトル</a></li>
  9.  
  10.     <li class="widget-list-item rank-list-odd">
  11.         <a title="●●●" href="http://■■■" target="_blank">
  12.         <span class="right rank-list-3rd">アクセス数</span>ページタイトル</a></li>
  13.  
  14.     <li class="widget-list-item rank-list-eve">
  15.         <a title="●●●" href="http://■■■" target="_blank">
  16.         <span class="right">アクセス数</span>ページタイトル</a></li>
  17. </ul>
  18.  
  19. <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>)の間に以下を追加することで除外できます。

  1. <script type="text/javascript">
  2. //<![CDATA[
  3. pagerank_exclude = 1;
  4. //]]>
  5. </script>

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

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

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

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

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

    1. <MTIf name="ranking_exclude_page">
    2. <script type="text/javascript">
    3. //<![CDATA[
    4. pagerank_exclude = 1;
    5. //]]>
    6. </script>
    7. </MTIf>

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

 Trackback Pings(4)

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

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

from Movable Type 備忘録

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

from Kurashita's Page~WEBデザイン勉強中貧乏学生~

いやぁ~今回は途中で諦めそうになりました(´;ェ;`)ウゥ・・・でも、助けてもら...

from fifthluna

なかなか骨の折れる作業でした。根本原因は説明書を読まないこの体質だと思いますが。...

 Comments(198)

#1: Posted by rui @ November 26, 2007 [REPLY]
user-pic

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

どうにか無事に動作しているようなのですが、
「任意ページ除外フラグ(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 Author Profile Page bzbell @ November 26, 2007 [REPLY]
user-pic

>>1 rui さん

こんばんわ^^

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

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

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

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

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

#3: Posted by さじ @ November 27, 2007 [REPLY]
user-pic

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

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

#4: Posted by Author Profile Page bzbell @ November 27, 2007 [REPLY]
user-pic

>>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 さじ @ November 28, 2007 [REPLY]
user-pic

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

#6: Posted by Author Profile Page bzbell @ November 28, 2007 [REPLY]
user-pic

>>5 さじ さん

こんばんわ^^

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

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

#7: Posted by rui @ December 1, 2007 [REPLY]
user-pic

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

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

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

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

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

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

#8: Posted by Author Profile Page bzbell @ December 1, 2007 [REPLY]
user-pic

>>7 rui さん

こんにちわ^^

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

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

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

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

#9: Posted by さじ @ December 10, 2007 [REPLY]
user-pic

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

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

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

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

#10: Posted by Author Profile Page bzbell @ December 10, 2007 [REPLY]
user-pic

>>9 さじ さん

こんばんわ^^

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

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

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

#11: Posted by さじ @ December 11, 2007 [REPLY]
user-pic

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

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

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

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

#12: Posted by traceraser @ December 22, 2007 [REPLY]
user-pic

初めて投稿させていただきます。
サーバはロリポップで、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 Author Profile Page bzbell @ December 22, 2007 [REPLY]
user-pic

>>12 traceraser さん

こんにちわ^^

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

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

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

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

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

#14: Posted by traceraser @ December 22, 2007 [REPLY]
user-pic

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

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

#15: Posted by Author Profile Page aimymoco @ December 26, 2007 [REPLY]
user-pic

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

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

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

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

#16: Posted by Author Profile Page bzbell @ December 26, 2007 [REPLY]
user-pic

>>15 aimymoco さん

こんにちわ^^

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

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

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

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

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

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

#17: Posted by Author Profile Page I am Google @ January 31, 2008 [REPLY]
user-pic

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

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

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

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

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

#18: Posted by Author Profile Page I am Google @ January 31, 2008 [REPLY]
user-pic

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

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

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

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

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

#19: Posted by Author Profile Page bzbell @ February 1, 2008 [REPLY]
user-pic

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

こんばんわ^^

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

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

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

#20: Posted by Author Profile Page I am Google @ February 1, 2008 [REPLY]
user-pic

>>19 bzbell さん

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

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

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

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


#21: Posted by 306 @ February 1, 2008 [REPLY]
user-pic

はじめまして。

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

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

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

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

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

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

#22: Posted by Author Profile Page bzbell @ February 1, 2008 [REPLY]
user-pic

>>21 306 さん

こんばんわ^^

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

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

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

#23: Posted by 306 @ February 2, 2008 [REPLY]
user-pic

>>22

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

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

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

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

#24: Posted by Author Profile Page bzbell @ February 2, 2008 [REPLY]
user-pic

>>23 306 さん

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

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

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

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

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

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

#25: Posted by 306 @ February 2, 2008 [REPLY]
user-pic

>>24

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

#26: Posted by Author Profile Page bzbell @ February 2, 2008 [REPLY]
user-pic

>>25 306 さん

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

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

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

#27: Posted by 306 @ February 2, 2008 [REPLY]
user-pic

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

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

#28: Posted by Author Profile Page bzbell @ February 2, 2008 [REPLY]
user-pic

>>27 306 さん

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

<div id="pagerank_viewer"><script type="text/javascript">pagerank_view();</script></di>
#29: Posted by 306 @ February 2, 2008 [REPLY]
user-pic

>>28

bzbell さん

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

#30: Posted by Author Profile Page bzbell @ February 2, 2008 [REPLY]
user-pic

>>29 306 さん

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

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

#31: Posted by 306 @ February 2, 2008 [REPLY]
user-pic

>>30

bzbellさん お疲れ様です!

>『ファイル作成: OK』

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

#32: Posted by Author Profile Page bzbell @ February 2, 2008 [REPLY]
user-pic

>>31 306 さん

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

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

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

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

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

#33: Posted by 306 @ February 2, 2008 [REPLY]
user-pic

>>32 bzbellさん

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

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

#34: Posted by Author Profile Page bzbell @ February 2, 2008 [REPLY]
user-pic

>>31 306 さん

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

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

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

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

#35: Posted by 306 @ February 2, 2008 [REPLY]
user-pic

>>34

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

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

#36: Posted by Author Profile Page bzbell @ February 2, 2008 [REPLY]
user-pic

>>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 Author Profile Page I am Google @ February 4, 2008 [REPLY]
user-pic

>>36 bzbell さん

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

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

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

#38: Posted by Author Profile Page bzbell @ February 4, 2008 [REPLY]
user-pic

>>37 bzbell さん

こんにちわ^^

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

どぉ致しましてワクワク

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

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

#39: Posted by Author Profile Page I am Google @ February 4, 2008 [REPLY]
user-pic

>>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 Author Profile Page bzbell @ February 4, 2008 [REPLY]
user-pic

>>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 Author Profile Page I am Google @ February 4, 2008 [REPLY]
user-pic

>>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 Author Profile Page bzbell @ February 4, 2008 [REPLY]
user-pic

>>41 bzbell さん

理解しました。

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

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

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

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


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

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

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

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

#43: Posted by Author Profile Page I am Google @ February 4, 2008 [REPLY]
user-pic

>>42 bzbell さん

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

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

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

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

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

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

#44: Posted by Author Profile Page bzbell @ February 4, 2008 [REPLY]
user-pic

>>43 bzbell さん

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

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

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

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

#45: Posted by hiro @ February 7, 2008 [REPLY]
user-pic

はじめまして。
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 Author Profile Page bzbell @ February 7, 2008 [REPLY]
user-pic

>>45 hiro さん

こんにちわ^^

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

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

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

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

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

#47: Posted by Real @ February 9, 2008 [REPLY]
user-pic

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

#48: Posted by Author Profile Page bzbell @ February 9, 2008 [REPLY]
user-pic

>>47 Real さん

こんにちわ^^

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

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

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

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

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

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

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

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

#49: Posted by Real @ February 9, 2008 [REPLY]
user-pic

>>48 bzbell さん

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

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

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

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

#50: Posted by Author Profile Page bzbell @ February 9, 2008 [REPLY]
user-pic

>>49 Real さん

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

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

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

もちろんですチュ!

#51: Posted by Author Profile Page bzbell @ February 10, 2008 [REPLY]
user-pic

>>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 Author Profile Page I am Google @ February 12, 2008 [REPLY]
user-pic

>>51 bzbell さん

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

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

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

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

#53: Posted by Author Profile Page I am Google @ February 12, 2008 [REPLY]
user-pic

>>51 bzbell さん

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

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

#54: Posted by Author Profile Page bzbell @ February 12, 2008 [REPLY]
user-pic

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

こんにちわ^^

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

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

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

#55: Posted by Author Profile Page I am Google @ February 12, 2008 [REPLY]
user-pic

>>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"></script>

としてあります。

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

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

#56: Posted by Author Profile Page bzbell @ February 13, 2008 [REPLY]
user-pic

>>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 Author Profile Page I am Google @ February 13, 2008 [REPLY]
user-pic

>>56 bzbell さん

googleのbzbellです。にこっ!

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

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

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


#58: Posted by Author Profile Page bzbell @ February 13, 2008 [REPLY]
user-pic

>>57 bzbell さん

こんばんわ^^

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

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

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

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

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

#59: Posted by Author Profile Page I am Google @ February 14, 2008 [REPLY]
user-pic

>>58 bzbell さん

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

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

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

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

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

>>59 bzbell さん

こんにちわ^^

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

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

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

#61: Posted by Author Profile Page I am Google @ February 14, 2008 [REPLY]
user-pic

>>60 bzbell さん

googleのbzbellです。ウインク

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

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

すいません。

#62: Posted by Author Profile Page bzbell @ February 15, 2008 [REPLY]
user-pic

>>61 bzbell さん

こんばんわ^^

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

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

#63: Posted by Author Profile Page I am Google @ February 15, 2008 [REPLY]
user-pic

>>62 bzbell さん

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

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

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

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

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

本当に何度も何度もありがとうございます!!パチパチ

#64: Posted by Author Profile Page bzbell @ February 15, 2008 [REPLY]
user-pic

>>63 bzbell さん

こんばんわ^^

> httpの後のコロンが原因だと思いました。でしゃばってすみません。

あっちゃぁ~キャハハ
そぅですね、その通りだと思いますあせあせ

':' を ',' に変更したものを UP しました。
今度こそのほほん・・・。

#65: Posted by Author Profile Page I am Google @ February 18, 2008 [REPLY]
user-pic

>>64 bzbell さん

googleのbzbellです。おはようございます!!パチパチ

完璧です!!できました!!うぅ~ん

本当にありがとうございます。何度も何度も修正していただいて本当にすみませんでした!!

これからは、bzbellさん を見習って自分でも勉強して、出来るように頑張っていきたいとおもいます。

bzbellさんは、本当に優しい人ですね。これからも応援させて下さい。うるうる
これからもこのサイトを見に来ますので、宜しくお願いします!!ぺこり


#66: Posted by Author Profile Page I am Google @ February 20, 2008 [REPLY]
user-pic

>>64 bzbell さん


またまたgoogleのbzbellです。こんにちはぺこり

一つお聞きしたいことがあります。
ランキング集計の期間なのですが、ブログ村みたいに一週間分(直近7日間)の合計値を集計して
ランキング順位を表示する事は可能ですか?

例 2月1日~2月7日までの集計をを2月8日に表示 次の日 2月9日には、2月2日~2月8日の集計を表示みたいな感じです。

カスタマイズしないと難しいでしょうか?キョロキョロ

#67: Posted by Author Profile Page bzbell @ February 20, 2008 [REPLY]
user-pic

>>66 bzbell さん

こんにちわ^^

> ランキング集計の期間なのですが、ブログ村みたいに一週間分(直近7日間)の合計値を集計してランキング順位を表示する事は可能ですか?

一週間分のログを 1 日ずつシフトしながら表示・・・ということをやらないとダメなので、現状のスクリプトでは無理ですねのほほん

> カスタマイズしないと難しいでしょうか?

実現はできると思いますがチョビッと想像した限り、『はい。分かりました!!』とカンタンに、サクサクとは作れなさそうですあせあせ

やるなら、カスタマイズじゃなくって新規作成ですね、別物ですキャハハ
どぅしても欲しいですかガーン !?

#68: Posted by Author Profile Page I am Google @ February 20, 2008 [REPLY]
user-pic

>>67 bzbell さん

返事ありがとうございます。ぺこり

>一週間分のログを 1 日ずつシフトしながら表示・・・ということをやらないとダメなので、現状のスクリプトでは無理ですね
そうですかーしくしく
自分で勉強して、カスタマイズできる範囲ではないんですね。
残念です。

>やるなら、カスタマイズじゃなくって新規作成ですね、別物です
>どぅしても欲しいですか !?
もし作ってもらえるなら、ぜひほしぃぃです!!ぺこり
今回、カスタマイズしていただいたばかりなのにこんなこと言ってすみません。
bzbell さんが暇になった時とか、作ってやるか!みたいな気分になった時でかまいません。
本当に何度も何度もすみません。あせあせ


#69: Posted by Author Profile Page hide.co @ February 21, 2008 [REPLY]
user-pic

はじめまして、先ほどこちらのアクセスランキングを設置したくダウンロードさせて頂きまして、
prototype版の設置を試みたのですが、ログファイル(data.txt、period.txt)が作成されません。。。

基本、とくにいじった箇所はなく違う点といえば、prototype.jsを以前から使用しているため、
置いてある場所が違う+ヴァージョンが1.6.0_rc0なところです。
さらに、Adobe Spryやprototype.js等を利用して様々なエフェクトとかを仕込んであります。

prototype.pagerank.jsの方もそのままでして、テンプレートにて書き出しされるようにし
確認してあり、問題ないのですが。

js/pagerank/のディレクトリ属性は777にしてあります。
http://bizcaz.com/archives/2008/01/27-193535.php#c2861
にてテストしましたところ777でOKになりましたので。

js/pagerank/index.phpに直接アクセスすると、青いバーしか表示されず、
js/pagerank/ディレクトリの中にblog3period.txtというファイルが生成されてます。
そのファイルを開くと、2008030614と1行書かれています。
ブログの各エントリーにアクセスした場合は、このファイルは生成されません。

ちなみに、エントリーテンプレートには、
<script type="text/javascript" src="http://<$MTBlogHost$>/blog/import/prototype.js" charset="<$MTPublishCharset$>">
<script type="text/javascript" src="<$MTBlogURL$>js/pagerank/prototype.pagerank.js" charset="<$MTPublishCharset$>"></script>
と書いてあります。

・rank_view.php
・rank_post.php
・rank_config.php
・rank_check.php
も一切いじっておらず、属性は705,755で確認しましたが変化なしでした。

質問しておきながら申し訳けないのですが、構築していますブログは
外部からはアクセスできない社内オンリーなサイトでして、URLをお伝えできないのです。
こんな状態ですが、他何か思い当たる点等ありましたら、ご教授ください。

#70: Posted by Author Profile Page bzbell @ February 21, 2008 [REPLY]
user-pic

>>69 hide.co さん

こんばんわ^^

使っていただいてありがとうございますテレテレ
ご質問の件ですが現象確認しました。

  1. prototype.pagerank.js 内に不具合がありました。
    218 行目で pagerank_post をコールする際、location というパラメータを渡しています。 先日この location パラメータを削除したので不要でした。

    修正したものは UP しましたのでご利用くださいのほほん

  2. ページアクセスされると、アクセスログファイルを作成するのですが、排他制御として一時的なディレクトリを作成します。
    そのディレクトリが存在してる間はずっと以降のアクセスは待ちに入ります。

    ここでずっと待ちに入ってしまうようです。
    てか、いつからこんな動作になったんだろグウグウ
    以前確認したときは大丈夫だったんですけど・・・もしかしてあせあせ

    とりえあず、以下のことを試してみてください。
    以下はお使いのサーバの PHP バージョンによってはエラーしてしまいますが、本来の使い方です。

    • rank_post.php の 36 ~ 40 行目を有効にして 41 ~ 45 は削除してください。
    • 同様に rank_view.php 内の 89 ~ 93、116 ~ 120 を有効にして94 ~ 98、121 ~ 125 を削除してください。

以上の修正を行うことで表示されることを確認しました。
また、2. の方法はサーバに依存してしまうのですが、別な排他制御を検討する必要がありますねあせあせ
ご迷惑をおかけしてすいません。

#71: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

>>70 bzbell さん
お世話になります、ご返信おそくなりましてすいません。
さっそく、ご提示いただきました1の手順で再アップしてみましたらところ稼動しました!
ありがとうございます!

一つ気になった点がありまして、
ページタイトルに「'」とか「"」がある場合、
例えば、I'm A Penとかがタイトルですと、
I¥'m A Penというように¥(バックスラッシュ)が挿入されてしまいます。
正規表現で&apos;とか&quot;に置き換えてもだめでした。
MacもWinも同じようになります。回避方法ありましたお教えください。

すいません、もう一つ。私Safari3ユーザなのですが、日本語の文字化け、
なんとかなりませんでしょうか?
http://kawa.at.webry.info/200511/article_9.html
が参考とのことですが、その関数をどこに貼り付ければいいのかがわかりません...

何度も恐縮ですが宜しくお願いします。

#72: Posted by Author Profile Page bzbell @ February 22, 2008 [REPLY]
user-pic

>>71 hide.co さん

> 例えば、I'm A Penとかがタイトルですと、
> I¥'m A Penというように¥(バックスラッシュ)が挿入されてしまいます。

そっかぁ、確かにタイトルに「'」、「"」使うサイトありますもんねあせあせ
ということで、JavaScript 内に pagerank_espace という関数を追加しました。
その関数内で「'」、「"」などのコードを実体参照文字に変換するようにしました。

その修正版を UP しましたのでご確認くださいテレテレ
ただし、注意することは JavaScript に文字列(タイトルなど)を渡す前に、既に実体参照変換してしまうと同じことを 2 回やってしまうので、HTML 側は何にも変換せずに渡してくださいやあ!

> 私Safari3ユーザなのですが、日本語の文字化け、なんとかなりませんでしょうか?

はい。
たとえば、prototype.pagerank.js を例にすると以下のようになります。

  1. Safari 用文字コード変換関数追加
    以下の関数を prototype.pagerank.js 内に追加します。

    function get_response_text(req)
    {
    var text = req.responseText;
    if ( navigator.appVersion.indexOf( "KHTML" ) > -1 ) {
    var esc = escape( text );
    if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
    text = decodeURIComponent( esc );
    }
    }
    return text;
    }
    
  2. Ajax 実装部分を変更
    prototype.pagerank.js 内の 217 ~ 224 行目を以下のように変更します。

    new Ajax.Request(pagerank_post_url, {
    method: 'post',
    parameters: pars,
    onComplete: function(req) {
    // 確認用
    //                  $(pagerank_view_box).innerHTML = get_response_text(req).responseText;
    }
    });
    

    上記はアクセス時の処理なので、ログ表示用の変更も行います。
    182 ~188 行目を以下のように変更します。

    new Ajax.Request(pagerank_view_url, {
    method: 'post',
    parameters: pars,
    onComplete: function(req) {
    var elem = $(pagerank_view_box);
    pagerank_show_ajaxloader(elem, false);
    elem.innerHTML = get_response_text(req);
    }
    });
    
以上で上記ページの Safari 向け関数を組み込むことができると思います。 ご確認くださいもじもじ
#73: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

ありがとうございます!
バックスラッシュの件は回避できましたー!

ただ、Safariの文字化けですが、
カウントされなくなってしまいました....

new Ajax.Request(pagerank_post_url, {
method: 'post',
parameters: pars,
onComplete: function(req) {
// 確認用
//                  $(pagerank_view_box).innerHTML = get_response_text(req).responseText;
}
});
new Ajax.Request(pagerank_view_url, {
method: 'post',
parameters: pars,
onComplete: function(req) {
var elem = $(pagerank_view_box);
pagerank_show_ajaxloader(elem, false);
elem.innerHtml = get_response_text(req);
}
});
に上書きしたのですが.....
#74: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

>>72 bzbell さん
連発ですいません。

> 上記はアクセス時の処理なので、ログ表示用の変更も行います。
> 182 ~188 行目を以下のように変更します。

を見落としてました。。。
が、修正したもので確認しましたがだめです。化けちゃいました。

#75: Posted by Author Profile Page bzbell @ February 22, 2008 [REPLY]
user-pic

>>73 hide.co さん
>>74 hide.co さん

あっすいませんあせあせ
217 ~ 224 行目の修正ですが、正しくは以下のようにします。

new Ajax.Request(pagerank_view_url, {
method: 'post',
parameters: pars,
onComplete: function(req) {
// 確認用
//                    var elem = $(pagerank_view_box);
//                    elem.innerHTML = get_response_text(req);
}
});

アクセスログ時は何かページ上に表示する必要はないのでコメントにしちゃいます。

> 修正したもので確認しましたがだめです。化けちゃいました。

そうですかぁ、ダメですかぁ。
わたし Safari は使ってないので未確認なのですが、上記ページの内容は 2005 年ってありますけど、確かなものなんですよねイヤイヤ !?
ということは、未だに Safari は引きづってるってことですかあせあせ

ちょっと Safari をインストールして確認してみます。

#76: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

>>75 bzbell さん
お手数おかけしすいません。

217 ~ 224 行目付近に挿入する、
new Ajax.Request(pagerank_view_url 部分ですが、
pagerank_view_urlだとカウントしなくなってしまいます。
pagerank_post_urlだと動きますが。

Windows版Safariでもやはり文字化けしてしまいます。

#77: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

>>75 bzbell さん

> わたし Safari は使ってないので未確認なのですが、上記ページの内容は 2005 年ってありますけど、確かなものなんですよね

↑2005年ということは、Safariのヴァージョンが…
現在配布されているのは、3でして。
もしやと思い、ちょっとver.2でも確認してみましたところ、2では化けません!
ということで、Safari ver.3では化けてしまうということが判明しました!

#78: Posted by Author Profile Page bzbell @ February 22, 2008 [REPLY]
user-pic

>>76 hide.co さん
>>77 hide.co さん

> Safari ver.3では化けてしまうということが判明しました!

ちょうど Safari をインストールして確認しようと思ってたとこなんです。
そうなんですかっキャハハ !?
とりあえず、文字化けの件はクリアということですねぺこり

あとは、カウントの件ですかウインク
Safari 用にスクリプト作りましたので、以下を試してみてください。
prototype.pagerank_for_Safari.zip

#79: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

>>78 bzbell さん

Safari3での文字化け回避は、ヴァージョンアップを待つしかないようですね。。。

Safari用の件、ありがとうございます。
早速設置してみまし、index.phpにアクセスしたところ、
青罫ボックスの中に404エラーが表示されてしまいました。。。
「指定したアドレス(URL)にはファイルやディレクトリが存在しません」
となってます。。。


#80: Posted by Author Profile Page bzbell @ February 22, 2008 [REPLY]
user-pic

>>79 hide.co さん

> Safari3での文字化け回避は、ヴァージョンアップを待つしかないようですね。。。

ですね。
Firefox は遅すぎてお話にならないので Opera 使ってるんですけど、Safari は表示速いし、キレイだし結構気に入りましたワクワク

> 青罫ボックスの中に404エラーが表示されてしまいました。。。

あちゃキャハハ
すいません、404 エラーがでるということはアクセス先がなかった場合です。
prototype.pagerank.js 内の 199 行目を以下のように変更してください。

new Ajax.Request(pagerank_view_url, {

Safari 2 をダウンロードできるところ知りませんかイヤイヤ !?

#81: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

>>78 bzbell さん
とりあえず、元に戻し、当初のbzbellの指示のようにしまして以下で問題なく動くようです。

▼prototype.pagerank.js 内に記述。
function get_response_text(req)
{
var text = req.responseText;
if ( navigator.appVersion.indexOf( "KHTML" ) > -1 ) {
var esc = escape( text );
if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
text = decodeURIComponent( esc );
}
}
return text;
}
▼prototype.pagerank.js 内217~224行目の修正。
new Ajax.Request(pagerank_post_url, { //pagerank_view_urlをpagerank_post_url
にしました。じゃないと動かなかったので。
method: 'post',
parameters: pars,
onComplete: function(req) {
// 確認用
//                    var elem = $(pagerank_view_box);
//                    elem.innerHTML = get_response_text(req);
}
});
▼prototype.pagerank.js 内182~188行目の修正。
new Ajax.Request(pagerank_view_url, {
method: 'post',
parameters: pars,
onComplete: function(req) {
var elem = $(pagerank_view_box);
pagerank_show_ajaxloader(elem, false);
elem.innerHTML = get_response_text(req);
}
});
最後に、rank_view.phpをBOM付のUTF-8で上書き保存。 BOM付だと、Safari3でも文字化けは起こらないようです。

pagerank_view_urlをpagerank_post_urlにしました箇所と、
BOM自体の意味もわからないのですが。

以上ですが、上記で何か問題ってあるのでしょうか?

#82: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

>>80 bzbell さん
すいません、すれ違いのようで...
> prototype.pagerank.js 内の 199 行目を以下のように変更してください。
の件、ちょっと今から試してみます。

Safari2の入手先ですか…。ちょっとわからないです、ごめんなさい。
ただ、Mac OS10.4とかを中古で買うしかないかと思います。。。ってMacがないとだめですが。

Windows版は3からのリリースのため2は存在しないと思います。

#83: Posted by Author Profile Page bzbell @ February 22, 2008 [REPLY]
user-pic

>>81 hide.co さん

> pagerank_view_urlをpagerank_post_urlにしました箇所と、
BOM自体の意味もわからないのですが。

pagerank_view_url はランキング表示用 PHP スクリプトの URL になります。
pagerank_post_url はアクセス収集用 PHP スクリプトの URL です。
ですので、hide.co さんの修正で正しいですワクワク

BOM 付き!? というのがよく分かりませんが、とにかく文字化けもロギングも問題ないということですね。
よかったですテレテレ

#84: Posted by Author Profile Page hide.co @ February 22, 2008 [REPLY]
user-pic

>>83 bzbell さん

> prototype.pagerank.js 内の 199 行目を以下のように変更してください。
> 確認しました。ちゃんと動作しましたー!

> BOM 付き!?
http://kawa.at.webry.info/200511/article_9.html
の最後に書かれたコメントに
そのように記載されていましたので、試しにDreamweaverでrank_view.phpを開き、

・コマンド+J 又は 修正→ページプロパティを選び、
・タイトル/エンコーディングを選択
・Unicode Signature (BOM) を含めるにチェックを入れてOK又は適用。

でいけました。

とにかく、本当にありがとうございました。長々と付き合っていただき非常に助かりました!

#85: Posted by Author Profile Page bzbell @ February 22, 2008 [REPLY]
user-pic

>>84 hide.co さん

> 確認しました。ちゃんと動作しましたー!

よかったですねうぅ~ん
わたしも今回いろいろ勉強になりました。

BOM は調べてみます。
ありがとうございますもじもじ

#86: Posted by Author Profile Page hide.co @ February 26, 2008 [REPLY]
user-pic

この前は、どうもです!

すいません、また質問なのですが…。

js/pagerank/index.phpにアクセスした場合は全件ランキングが見れて、
トップや各ページ等にしこんだAjaxでの表示では任意の順位までだけを表示
って事は可能でしょうか?

#87: Posted by Author Profile Page bzbell @ February 26, 2008 [REPLY]
user-pic

>>86 hide.co さん

こんにちわ^^

> js/pagerank/index.phpにアクセスした場合は全件ランキングが見れて、
> トップや各ページ等にしこんだAjaxでの表示では任意の順位までだけを表示
> って事は可能でしょうか?

はい。
index.php 内の 10 行目あたりに pagerank_exclude=1 という記述がありますね。その下辺りに以下を追加してください。

pagerank_ranking_max = 0;

そうすると全件表示されますうぅ~ん

#88: Posted by Author Profile Page hide.co @ February 26, 2008 [REPLY]
user-pic

>>87 bzbell さん
ありがとうございます!できました!

#89: Posted by Author Profile Page bzbell @ February 26, 2008 [REPLY]
user-pic

>>88 hide.co さん

> ありがとうございます!できました!
はい。
よかったですテレテレ

#90: Posted by みあっきー @ March 13, 2008 [REPLY]
user-pic

こんにちは。 いつもテンプレートの使用や解説でお世話になっています。

今回、ランキングを実装しようと思い、上記解説を読みがんばったのですが、ギブアップです;;
アドバイスを頂ければ幸いです。

・MTバージョンは3.34 jquery版を使用
・パーミッションはサーバ推奨(レンサバ)のパーミッションでやってます
(ディレクトリ701・PHP600・js604)(bzbell様のテンプレ他、その他ツールもこれで動作しています)
・アップディレクトリは、http://www.○○○.jp/blog/mt-memo/js/pagerank
(mt-memo だけ解説とは違うところ)

こんな感じです。 まるっきり表示もされず、テキストファイルも生成できません・・・うるうる
変更した所は

var pagerank_blogid = <$MTBlogID$>;

var pagerank_blog_url = 'http://www.miaka.jp/blog';
var pagerank_home_url = 'blog/mt-memo/js/pagerank/';

です。(↑セキュリティ的に問題があったら削除して結構です)

試しに以前のコメントを参考に、パーミッションを777等いじってみましたが、現象変わらずです。
よろしくお願いしますウインク


蛇足で私が考えられる範囲の原因。。
・ブログIDの書き方、相対パスの書き方、var pagerank_blog_urlの書き方
このあたりだと推測できるのですが…。

#91: Posted by Author Profile Page bzbell @ March 13, 2008 [REPLY]
user-pic

>>90 みあっきー さん

こんにちわ^^

> 蛇足で私が考えられる範囲の原因。。
> ・ブログIDの書き方、相対パスの書き方、var pagerank_blog_urlの書き方
> このあたりだと推測できるのですが…。

ですね。
  1. まずブログ ID に <$MTBlogID$> を使用してますが、MT の再構築で jquery.pagerank.js を作成してますかにやり
    ただサーバにアップロードしただけの場合は、直接ブログ ID を記入してください。

  2. ブログ URL と相対パスについてですが、以下のようにしてください。

    pagerank_blog_url = 'http://www.miaka.jp/blog/';
    pagerank_home_url = 'mt-memo/js/pagerank/';
    

たぶんこれでいけるのではないかとあせあせ
ご確認くださいチュ!

また何かありましたご連絡ください。

#92: Posted by みあっきー @ March 13, 2008 [REPLY]
user-pic

素早い返答ありがとうございますもじもじ

2 については修正しました。

1 については確かにMT再構築でファイルを作成していませんでした。
しかし、「MT再構築で作成」の手順がよく分からないのと、<$MTBlogID$>の意味もよく分かりません…。

お手数ですが解説をよろしくお願いしますぺこり

#93: Posted by Author Profile Page bzbell @ March 13, 2008 [REPLY]
user-pic

>>92 みあっきー さん

> 1 については確かにMT再構築でファイルを作成していませんでした。
> しかし、「MT再構築で作成」の手順がよく分からないのと、の意味もよく分かりません…。

はい。
<$MTBlogID$> はテンプレートを設置したブログのブログ ID を取得するための MT 固有のタグになります。

メインインデックスのテンプレートと同様に、新規でテンプレートを作成して、jquery.pagerank.js の内容をコピペして再構築すると、<$MTBlogID$> が 2 というように変換してくれます。

なので、>>91 の 2. でご説明した pagerank_blog_url についても <$MTBlogURL$> というタグに変更して再構築すると、そのブログの URL に変換されます。

ですが、必ずしも MT で再構築する必要はなくって、>>91 でご説明したように手書きでログ収集したいブログのブログ ID を明記すれば OK となります。
※たとえば、MT 以外のシステムを使用してる人などは手書きになります。

ちなみに、わたしのサイトではテンプレート以外にも JavaScript なども MT で管理するようにしてますのテレテレ

メリットとしては、MT のデータベースをバックアップすると、それらの JavaScript などもいっしょにバックアップされるからですぺこり
さらに MT4 からはイメージファイルも MT で管理できるようになりました。

平たく言えば、すべてを MT で管理する方が何かと便利なので、わたしはそのような運用を行ってますの。
また MT で管理した JavaScript などの URL は MT のタグで取得することもできて便利ですよキャハハ

そそ、もし みあっきー さんが今のテンプレートを MT4 に対応して欲しいということであれば、作成しますのでその旨ご連絡頂ければと思いますもじもじ

#94: Posted by みあっきー @ March 13, 2008 [REPLY]
user-pic

うーん…ダメですうるうる
内容をコピペして再構築をして<$MTBlogID$>の変化を見て見ましたが、何も変化せずです…。
しかしながら、私のサイトのソースを眺めて比べていたら、どうやら<$MTBlogID$>は2だと分りました。
なので、<$MTBlogID$>を2に差し替えて再チャレンジしてみましたが、まだうんともすんとも言いません;;(タグクラウドと検索の間に設置したい)

他に原因があるような気がしてきました。

テンプレートの「メインページ」(index.php)のスクリプトのところに
<script type="text/javascript" src="<$MTBlogURL$>mt-memo/js/pagerank/prototype.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>mt-memo/js/pagerank/prototype.pagerank.js"></script>
を入れる。(プロトタイプの方に変えました)

タグクラウドと検索の間の行に
<div id="pagerank_viewer"><script type="text/javascript">pagerank_view();</script></div>
を入れる。

これだけしかやってないのですが…。 とても謎です。

>そそ、もし みあっきー さんが今のテンプレートを MT4 に対応して欲しいということであれば・・・

それはとても嬉しいです!チュ!
bzbellさんの今使ってるテンプレートがとっても気に入っていて、手放せないでいるのです^^; あまりに好きなので、苦心してスタイルスイッチャーで色まで選べるようにした始末…。 これも相当てこずりましたうるうる 自力で何とか動くまでに辿り着けましたが…実は、一箇所未だに分らない所があるんですよね^^;
検索の虫眼メガネアイコンです。
ソースを見る限りでは、スタイルを変える度にgifファイルの指定が出来ないように見えたんで、黒版の直指定なんです。 ですから、茶と桃ではアイコンが変わらずちょっと変に見えます(汗

私と違いbzbellさんはお忙しい方だと思いますので、MT4対応は、ゆっくりまったりしたときで結構ですよ。 とても気を使ってしまいますあせあせ
しかし、対応版を出されたときはぜひ、使用したいと思っています!

話が反れてしまいましたが…よろしくおねがいします。

#95: Posted by Author Profile Page bzbell @ March 13, 2008 [REPLY]
user-pic

>>94 みあっきー さん

> bzbellさんの今使ってるテンプレートがとっても気に入っていて、手放せないでいるのです^^; あまりに好きなので、苦心してスタイルスイッチャーで色まで選べるようにした始末…。

あちゃぁ~キャハハ嬉しいですの!!
じゃ、週末から創作始めますね。一気には無理ですけど 1 つずつ作成してきます。
最初は何色がいいですか!?

> これだけしかやってないのですが…。 とても謎です。

まず、prototype 版はやめた方が良さそうです。
rico.js と競合してしまって JavaScript エラーしてます。
現状ではそれが原因と考えられます。

  1. 以下の jQuery 版をダウンロードして確認してみてください。
    for_miaka-jquery.pagerank.zip

  2. そして、pagerank/index.php をブラウザから表示してランキング表示されることを確認してください。

  3. されなかった場合、みあっきー さんがお使いのサーバの PHP のバージョンを教えていただけますか。 PHP のバージョンによっては、PHP の内部処理で問題が発生することを確認してます。上記圧縮ファイルは一応 PHP5 が使えることを前提としたスクリプトにしてます。

また、上記圧縮ファイル中に site-search.png というイメージファイルを同梱してます。
これは虫めがねアイコンです。透過 PNG で作成し直したものですので、各テンプレート内の site-search.png と差し替えることで問題の現象は改善されると思いますうぅ~ん

- 追記 -

すいません。
よく見たら みあっきー さんのサイトでは prototype を使用してますから、prototype 版を使用してください。
for_miaka-prototype.pagerank.zip

#96: Posted by みあっきー @ March 14, 2008 [REPLY]
user-pic

夜分失礼しますテレテレ
何度も手ほどき、本当に感謝×2です。 早速やってみました。
まずは指示されたものをダウンロードし、pagerank/index.php にアクセスしてみました。
ロードgifと共に、青い枠(?)だけが目視できました。
この時点で嫌な予感がしてましたが、PHPのバージョンを調べてみると…

Php version 4.4.7

でした。。うるうる
レンサバのヘルプにも書いてありましたし、当サイトのアクセス解析ソフトにもその表示でした。
試合終了です;; bzbellさん、本当にお世話になりました!もじもじ

当初の目的は、ブログコンテンツのアクセス数が知りたかった為なんです。
カウンターはトップページのみにしか配置してないため、一体何人の人がブログを見ているかを知るためでした。
私のサイトはブログとwikiの閲覧が多いのは薄々感じてはいたのですが、カウンターには反映されないようにしているのです。
ならば、カウンターを置いてしまえばそれで済むのでは?と思うのが普通ですが、純粋なトップページのアクセス数だけ反映させたいこだわりがあってあせあせ
そこで思い出したのが、貴方のサイトの「ランキング」機能でした。 カウンターとは意味も違うとは思いますが、まぁ大体人数程度が分ればいいかなって思ったんです。
しかし、PHPバージョンが不一致とのことで、私のブログにもカウンターが回るように設定しなおしました。
ですから、当初の目的は一応達成した(?)といえそうですあせあせ
bzbellさんと試行錯誤したのはいい勉強になりました! 親身になって対応してくれて、ホントに嬉しかったですチュ! 改めて人柄の良さを感じてしまいました。

>画像添付
ありがとうございます! 元々付属していたのがGifだったので、後日アドレスを変更して差し替えたいと思いますあせあせ ここまでして頂けるとは思わなかったです。 ただただ感謝です♪

>MT4
いやいや、あまり負担をかけたくないのでホントゆっくりでいいですよテレテレ
おそらくMT4にアップグレードする際、苦戦してなかなか出来そうにありませんし(笑)
MT3は安定していると聞いていますので、快適ですしね。
しかし、完成した際は挑戦してみようと思います!
好きな色は黒ですね。 最初はピンクが好きだったのですが、使ってるうちに、嗚呼私は黒が好きなんだなーとキャハハ サイトを見てもらえれば分ると思いますが、真っ黒ですしね(笑)

長くなってしまいましたが、これからもbzbellさんのサイトの反映を祈って、終わります。 お疲れ様でした! 今日のブログにも書かせて頂きますもじもじ

#97: Posted by Author Profile Page bzbell @ March 14, 2008 [REPLY]
user-pic

>>96 みあっきー さん

こんにちわ^^

そうですかぁ、ダメでしたかぁ。
PHP ってバージョン間の互換ってのを無視して、常にいいものをっ!! というスタンスらしんですあせあせ
なので、すべてのレンサバ(PHP バージョン)に対応しようとするとそれなりに大変なのが分かったんですよね。
すいません、お力になれなくってガーン

> いやいや、あまり負担をかけたくないのでホントゆっくりでいいですよ
はい。じっくり創作しながら作成していきますキャハハ
好きな色は黒ですね、わたしも黒好きです。じゃぁ黒からとっかかりますサングラス
今後ともよろしくですのチュ!

#98: Posted by niico @ August 12, 2008 [REPLY]
user-pic

>bzbellさま

こんにちは。niicoと申します。
お世話になります。

今回、サイトにページランキングを設置することになり、いろいろぐぐってみたところ、こちらのページにたどり着きました。
こちらの方法は特に難しい設定もなく、広告も出ず、デザインのカスタマイズも自由と、すばらしいですね。

…で、一応表示…はできたのですが、ページタイトルから任意のテキストを削除する設定がうまくいきません。 ページタイトルは 「ページタイトル:サイト名称」という形です。
var title    = encodeURIComponent(document.title.replace(':<$MTBlogName$>', ''));
ではダメでした。

あと、rank_config.phpで集計期間を変更しても「14日間ログを集計します。」のままなんですが、なぜでしょうか?

いきなり質問で申し訳ありませんが、よろしくお願いします。

#99: Posted by Author Profile Page bzbellからniicoへの返信 @ August 12, 2008 [REPLY]
user-pic

>>98 niico さん

こんばんわ^^

> ページタイトルから任意のテキストを削除する設定がうまくいきません。

はい。そこは各サイトで異なる部分となるので、個別に設定する必要があります。
niico さんとこのエントリページではどのようなフォーマットで HTML ヘッダ内の title を表示させてますかワクワク
デフォルトでは「エントリ名 - ブログ名」となっていた場合、「- ブログ名」を削除するようになってます。

> ・・・「14日間ログを集計します。」のままなんですが、なぜでしょうか?

はい。そこは自動的に変更させてないんです。
というのも、集計期間が人によって異なるため自動化するとちょっと大変なので、各自で変更をお願いしてるんですであせあせ
お手数ですが、rank_view.php 内の 72 行目を変更して頂けますかテレテレ

#100: Posted by Author Profile Page niico @ August 13, 2008 [REPLY]
user-pic

>>99 bzbell さん

早速お返事ありがとうございます。 title部分は「エントリー名:ブログ名」です。
var title    = encodeURIComponent(document.title.replace(':<$MTBlogName$>', ''));
ではダメでした。

>> はい。そこは自動的に変更させてないんです。
>> お手数ですが、rank_view.php 内の 72 行目を変更して頂けますか

おーー。なるほど。
手動で変更しました。ありがとうこざいます。

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

>>100 niico さん

> title部分は「エントリー名:ブログ名」です。

えっ!? それでダメですかはて?!?
その変換方法で間違ってないと思います。

一つ確認したいのですが、prototype.pagerank.js( or jquery.pagerank.js )は再構築されてますでしょうか。
というのも、<$MTBlogName$> ファンクションタグを使用する場合、MT で再構築しないと正しくタイトルに変換してくれませんよねパチパチ
上記 JavaScript を普通にサーバに UP しただけの場合には、JavaScript 内の以下の行を変更する必要があります。

  • 21 行目: ブログ ID
  • 31 行目: ブログ URL
  • 258( or 227 )行目: ブログタイトル削除

上記 3 箇所を手修正します。
ご確認ください。

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

>>101 bzbell さん

niicoです。
すばやいお返事ありがとうございます~グウグウ

今まで、prototype.pagerank.jsを普通にupしていたので、MTのテンプレートで作ってやってみました。 で、 258( or 227 )行目: ブログタイトル削除を
var title = document.title.replace(' - <$MTBlogName$>', '');
から
var title = document.title.replace(':<$MTBlogName$>', '');
に変更してみましたが、ダメでした。
var title    = encodeURIComponent(document.title.replace(':<$MTBlogName$>', ''));
も試しましたが、変わらず…

FTPソフトでサーバ上のprototype.pagerank.jsを開いて確認すると、ちゃんとブログ名に変換されているんですが…
なぜなのでしょうか…あせあせ

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

>>101 bzbell さん

たひたびすみませんあせあせ
あれから、休憩してから確認してみると、新しくランクインしたページのタイトルはちゃんとブログ名が削除されていました。
ブログ名が削除されたエントリータイトルと、ブログ名付きのエントリータイトルが混在しているという…
…うーーーん
時間がかかるのかな…?
もうちょっと様子を見てみます。

あと、rank_list_1st~rank_list_5thまで5位まで順位差別化クラスを入れたいな~と、rank_view.phpを見てみたんですが、こちらのページで説明されているものと、ダウンロードしたものとが若干違います。
49行目から81行目の部分がちょっと違ってます。
どのように直したら、5位までクラス名を入れることができるでしょうか。

またまた質問ばかりでスミマセンあせあせ
よろしくお願いいたします。

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

>>102 niico さん
>>103 niico さん

こんばんわ^^

> ブログ名が削除されたエントリータイトルと、ブログ名付きのエントリータイトルが混在しているという…

あぁ~それは正しい動作です。
というのも、基本的にログファイルは JavaScript から渡されたタイトルを保持します。
なので、最初はブログタイトルが削除されなかったものをそのままログとして保持してしまいます。
途中から、正しくブログタイトルを削除するようにしたことで、混在することになります。

もし気になるようでしたら一度ログファイルを削除するといいと思いますうぅ~ん

1st ~ 5th の件ですが、rank_view.php を以下のように変更してください。

40 行目
$class_rankin = array(' rank_list_%dth', ' rank_list_%dst', ' rank_list_%dnd', ' rank_list_%drd');
49 行目
$rankclass = sprintf($class_rankin[($cnt>3)?0:$cnt], $cnt);

一応、今後 10 位までを差別化したい場合を考慮してみました。
ご確認くださいテレテレ

#105: Posted by Author Profile Page niicoからbzbellへの返信 @ August 14, 2008 [REPLY]
user-pic

>>104 bzbell さん

毎々お世話になります。

>あぁ~それは正しい動作です。

なるほど~。
今朝見たら、ブログ名が削除されたタイトルだけになっていました。

>1st ~ 5th の件ですが、rank_view.php を以下のように変更してください。

ありがとうございます!チュ!
最初、4位と5位のクラス名がおかしくなってて、よく見たら、'rank_list_%dth'の頭にスペースが足りない。
修正してupしなおしたら、バッチリでした。

なにからなにまでありがとうございました~テレテレ
お忙しい中、丁寧に対応していただき、本当にありがとうございます~。
これからも参考にさせていただきます!

ではではうぅ~ん

#106: Posted by Author Profile Page bzbellからniicoへの返信 @ August 14, 2008 [REPLY]
user-pic

>>105 niico さん

> 最初、4位と5位のクラス名がおかしくなってて、よく見たら、'rank_list_%dth'の頭にスペースが足りない。

あちゃぁキャハハすいません。お手数おかけしました!!
今後ともどうぞよしなにもじもじ

#107: Posted by Author Profile Page niico @ August 15, 2008 [REPLY]
user-pic

こんにちは。
お世話になります。
niicoですテレテレ

その後、アクセスランキングは順調に動作しております。
ところで、不具合ではなくて、ちょっと質問なのですが…

うちのサイトでは、GoogleAnaliticsとfutomiのアクセス解析を併用しておりまして、その解析結果とこちらのアクセスランキングのページランキングをつき合わせてみると、若干ズレが生じております。
上位20位くらいで区切ると、ランクインしているエントリー自体はだいたい合っているのですが、順位にズレがあって、GoogleAnalitics等で見ると連日1位にランクインしているエントリーが「アクセスランキング」では8位とか…
なので、5位で区切って表示させていると、本当は1位のハズのエントリーが、「アクセスランキング」では表示されない…という事態に。

なぜなのでせう…はて?
もしかして、今、集計期間を1日にしてるんですが、もうちょっと長く設定したほうがいいんでしょうか?

#108: Posted by Author Profile Page bzbellからniicoへの返信 @ August 15, 2008 [REPLY]
user-pic

>>107 niico さん

こんばんわ^^

> GoogleAnaliticsとfutomiのアクセス解析を併用しておりまして、その解析結果とこちらのアクセスランキングのページランキングをつき合わせてみると、若干ズレが生じております。

まず「アクセスランキング」は厳密なものではないということと、アクセス解析が主旨じゃない( カウンタと同類のもの )ことをご理解いただいた上で、以下のことが考えられると思います。

  1. GoogleAnalitics などのアクセス解析では、トラッキングコードをどこに貼り付けるかによって違ってくると思います。
    たとえば、<body> 直後にトラッキングコードを貼り付けた場合、チョイ見でもカウントされちゃいますよね!? ( たしか )
    でも、「アクセスランキング」の方はページが完全に表示しきってから 1 カウントします。なので、ちょと立ち寄ってすぐどっかいちゃった訪問者さんはカウントされないことになります。
    ※表示は即座に表示されます。

  2. アクセス解析とカウンタとで主旨が異なります。
    アクセス解析はちょっと立ち寄っただけでもログとしてデータを保持する必要があります。その上で、どのくらいの時間滞在したとか、その後どうようにページ移動したかなどの情報が得られるからです。
    でも、アクセスカウンタは単純にその日にアクセスされた、重複しないもののみをカウントするだけです。

  3. わたしのプログラムがおかしい。
    すべての状況下で確認したわけじゃないので、ページビューがとてつもなく多いサイトだと問題がでるのかもしれません

といったところでしょうかあせあせ
ランキングが大きく異なるのであれば 1. が怪しいように思います。
いずれにしても遊び、もしくは参考程度で考えておいてくださいテレテレ

#109: Posted by Author Profile Page niicoからbzbellへの返信 @ August 15, 2008 [REPLY]
user-pic

>>108 bzbell さん

どうもです。niicoです。

だいたい合ってるんだけど、特定の記事だけが妙に順位が低い…て感じなんですよねはて?
トラッキングコードはbodyの一番最後に埋め込んでいるのですが、やっぱ 1. なんでしょうか?
順位がズレてる「特定の記事」は「チラ見」の人が多い…てことなんですかね?


ともあれ、些細な質問にも丁寧にお答えいただき、ありがとうございますテレテレ
暑い日が続きますが、お体ご自愛くださいねうぅ~ん

ではでは

#110: Posted by Author Profile Page bzbellからniicoへの返信 @ August 15, 2008 [REPLY]
user-pic

>>109 niico さん

> 特定の記事だけが妙に順位が低い…て感じなんですよね

特定の記事だけ!? ですかあせあせ
う~んガーン・・・断言はできませんけど、その特定ページってのは GoogleAnalitics だと 1 位なんですよね!?
そうすると、短時間の間に頻繁にアクセスされたかどうか分かりますか!?
もしかしたらロギング漏れが発生してるのかも( >>108 の 3. にあたる )です。

できる限り処理を早く完了できるよう考えてはいるのですが・・・まだ足らないってことかなぁグウグウ
要因が特定できない以上対処のしようもないのですが、一応 PHP のコードを検討してみます。

#111: Posted by ちゃーりぃ @ September 15, 2008 [REPLY]
user-pic

bzbellさん、はじめまして。ちゃーりぃと申します。

いつも密かに参考にさせてもらっていますう♪

こちらのランキング表示、ありがたく使わせてもらいました。

コメント欄でのやりとりに、bzbellさんのプログラムにかける意気込みとこだわりを感じて、敬服しております。

ところで相談なのですが(笑)

今、Movabletypeをベースにサイトを作っているところなのですが、導入させていただいたランキング表示機能について、
表示されるアーカイブ名を、タグから引っ張ってきているようです。

titleタグはSEO的に押さえておくべき箇所なので、私のサイトの場合、余計な文言を付加してキーワードを埋め込みたいという
事情があり、長ったらしいものになっています。

しかし、ランキング表示の場合にはの内容がそのまま反映されるのが望ましいところです。。。

(ちなみにこんな感じです。まだ非公開なサイトなので、URL削除いただければ幸いです。)


構造上、で変数を取得するのは難しいと思いますので、私なりに思いつく方法としては、

1)別に変数を用意して参照するようにする。

2)特定の文字列(例えば「|」を含む以降の文字を除外する。

といった方法があるかと思うんですが、どの部分を変更すればいいでしょうか?

プログラムは素人なもので、アドバイスいただければ幸いです。

#112: Posted by Author Profile Page bzbellからちゃーりぃへの返信 @ September 15, 2008 [REPLY]
user-pic

>>111 ちゃーりぃ さん

こんにちわ^^

> いつも密かに参考にさせてもらっていますう♪

ありがとございます。
至らないとこは多々あるかと思いますが、今後ともどうぞよしなにぺこり

ご質問の件ですが、おっしゃるようにページアクセスされるとページタイトル( title )からタイトル名称を取得してます。
そこでスクリプト中では title からサイト名称を削除する処理を追加してます。
具体的には jquery.pagerank.js 内の 227 行目になります。

たとえば、全角の「|」を含む以降のテキストを削除したい場合には上記行を以下と差し替えてください。

var title = document.title.replace(/|.*$/, '');
これにより「|」より前のテキストだけがページタイトルとしてログに残されます。 こんな回答でよかったでしょうかあせあせ
#113: Posted by ちゃーりぃからbzbellへの返信 @ September 15, 2008 [REPLY]
user-pic

bzbellさん、ありがとうございます!

とりあえず言われるままにソースを書き換えてみましたが。。。

素晴らしいです!こんなに早く解決するとは思いませんでした!!

古いログはいったん消さないといけないんですね。早めに相談してよかったです。

サイト公開の暁には、宣伝させてもらいます^^

ソースを拝借したばかりか、カスタマイズにまでご協力いただいてしまって、本当にありがとうございました!!

#114: Posted by Author Profile Page bzbellからちゃーりぃへの返信 @ September 15, 2008 [REPLY]
user-pic

>>113 ちゃーりぃ さん

> 古いログはいったん消さないといけないんですね。

はい。お手数ですがそのようにお願いします。
ちゃーりぃ さんのサイトとってもすてきんグーーーーブイブイでした。

#115: Posted by ちゃーりぃからbzbellへの返信 @ September 16, 2008 [REPLY]
user-pic

すてきんグーーーもろたキャハハワーイ♪

そしてbzbellさん、今度は別件で報告です(笑)^^;

僕のサイトのエントリーページでは、コメント欄を10ずつに区切って表示させるために、
MTPagenateというプラグインを使い、ページをphp化しています。

通常のリンクだと、

/hoihoi/

という形で指定したディレクトリ内のINDEXページを呼び出すようにリンクの設置をしているのですが、
phpでページ指定した場合には、

/hoihoi/index.php?page=4#comments

というリンクの指定になります(現段階での仕様として)。

これが、こちらのランキング表示機能を使うと、

/hoihoi/

と、

/hoihoi/index.php

は別のページとして認識してしまうようで、(?=以降のコマンド部分とアンカーリンク部分は問題ないようです)
別々にカウントしてランキングに出てしまっています。

ためしに別のページで、

/nyannyan/

と、

/nyannyan/index

で別々に数回リロードしたところ、やはり別々にカウントしてしまいました。

僕の場合は、いずれにしても.htaccessのリダイレクトとmod_rewriteを使ってURL表記の制御をする予定なので、
別の形で制御するイメージはついているのですが、他の利用者のみなさんにも同様の現象が出るはずです。

ということで、次回のバージョンアップでのヒントになると思い、報告させてもらいました。

ちなみにリンク先指定を /ディレクトリ名/ という形にしているのは、SEO対策上、

1)URLの表記は短いほうが好ましい

2)indexページファイルは重要視される

という事情によるものです。

長文失礼いたしました^^;  ※今回の報告は、私個人としては、対応を必要とするものではありません。

bzbellさん個人的にとっても応援しています!僕でお役に立てることがあったらなんでも言ってくださいね!

---参考URL(抹消の上、掲載願います;)-------------------------------
■ランキング表示ページ
http://www.hancoin.net/indextest.html
■MTPagenateで分けられたページ例
http://www.hancoin.net/free/000007/index.php?page=4#comments
------------------------------------------------------------------

#116: Posted by Author Profile Page bzbellからちゃーりぃへの返信 @ September 16, 2008 [REPLY]
user-pic

>>115 ちゃーりぃ さん

こんばんわ^^

返事が遅くなってすいませんあせあせ
> 次回のバージョンアップでのヒントになると思い、報告させてもらいました。
ありがとございます。確かに別物としてカウントしちゃいますねガーン
というのも JavaScript の document.location.href からアクセスページを取得して、その URL を使用してるだけでして特に index ページの同一チェックは行ってないんですあせあせ
同一チェックするにしても人によっては index.php だったり index.html、index.htm というように完全なマッチングができなさそうです。
かといって index だけで HIT させてしまうと、index_1.php などもマッチングされてしまうので、カンタンにはいかないかもガーン
ちょと検討してみます。

#117: Posted by sigeo @ September 30, 2008 [REPLY]
user-pic

こんばんは。

いつもものすごい勢いで参考にさせていただいてます^^;

このエントリのアクセスランキングjQuery版も愛用させていただいてます。
けれども、最近たとえばAjaxを利用してでHTMLファイルをDOM要素の中に反映させようとすると
どうしても動作しないんです。

全然詳しくないのですが、原因を探ったら、 jquery.pagerank.js を外すと動作するようになるみたいです。
いくつか同様のサンプルを(例:jquery.inc-5.js http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html )試してみたのですが、どれも同じでした。

自分本位なことで大変恐縮ですが、一度見ていただければ幸いです。
お忙しいのにすみません。

#118: Posted by Author Profile Page bzbellからsigeoへの返信 @ September 30, 2008 [REPLY]
user-pic

>>117 sigeo さん

こんばんわ^^

> いつもものすごい勢いで参考にさせていただいてます^^;
ありがとございます。今後ともどうぞよしなにもじもじ

> 最近たとえばAjaxを利用してでHTMLファイルをDOM要素の中に反映させようとすると
> どうしても動作しないんです。

今確認したところ、JavaScript によるエラーはでてないようです。
また、ロギングも正しく行われているようでした。

もしかして特定のページに限ったことでしょうか。
可能であれば動作してないと言われるページの URL を教えていただけますか。確認します。

#119: Posted by sigeoからbzbellへの返信 @ October 1, 2008 [REPLY]
user-pic

>>118 bzbell さん
気が利かなくてすみませんでした。。。
http://web-marketing.zako.org/in-test.html
このページの右サイドバー一番下、
<p class="inc:recentPostsList_inc.html">※Javascriptが有効になっていません。有効にしてください。</p>
の部分が動作していない部分です。
そして
http://web-marketing.zako.org/in-test2.html
↑このページが下記コードを削除した場合のものです。
<script type="text/javascript" src="http://web-marketing.zako.org/js/pagerank/jquery.pagerank.js"></script>

知識が浅いもので、、 ご迷惑おかけしてすみません。。。

>ありがとございます。今後ともどうぞよしなに
2日に一度は見てますあせあせ
こちらこそ、楽しみにさせていただきますやあ!

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

>>119 sigeo さん

おはよございます^^
なるほどキャハハ世界は広いです。
勉強になりましたウインク

さて、一点実験して頂きたいことがあります。 jquery.inc-5.js 内の 53 行目を以下のように変更するとどうなりますか。
// $(function() {
$(document).ready(function() {
ご存知のように、上記コードは指定エレメントの準備でき次第処理されます。 現状だと即座に実行されちゃうわけですが、ちょとそこら辺が気になりました。 ※jquery.pagerank.js 内ではページ読込み完了次第 Logging Script が実行されるようになってます。 お手数おかけしますもじもじ
#121: Posted by sigeoからbzbellへの返信 @ October 1, 2008 [REPLY]
user-pic

>>120 bzbell さん
早速ありがとうございます。

ブログ見ていただいたんですねエーン

お恥ずかしい点がたくさんありますがあせあせ

早速テストしてみましたが、変化が見られなかったようですしくしく
ごめんなさい、面倒なことを丸投げしてしまっていて。

万一あせあせ分かったことがありましたらご報告させていただきます。
無知ですみません。。。

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

>>121 sigeo さん

> 早速テストしてみましたが、変化が見られなかったようです
あ~やっぱりそうですかぁのほほん
そすると、実際に jquery.inc-5.js を使ってデバッグしてみないと分からないかなぁ。
単体だとそれぞれ問題ないんですもんね。
帰宅したら試してみますぺこり

#123: Posted by sigeoからbzbellへの返信 @ October 1, 2008 [REPLY]
user-pic

>>122 bzbell さん
すいません、お手間かけさせてしまってしくしく

恐縮ですが、よろしくお願いいたしますもじもじ

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

>>123 sigeo さん

デバッグしたところ、jquery.pagerank.js 内のコンフリクトの記述が jquery.inc-5.js に影響してるようです。
結果、jquery.inc-5.js 内でエラーすることで処理が中断されてました。

sigeo さんが prototype と併用しない( てか、jQuery 使う人はあまり prototype と併用は考えないかな )のであれば、jquery.pagerank.js 内のコンフリクト処理を元に戻すことで正しくロードされることを確認しました。

以前はまだ prototype 全盛!? だったのでコンフリクトを考慮してたのですが、今どきは jQuery を使われる人も多いようなのでコンフリクトの記述をやめたバージョンをサーバに UP しました。
ですので、お手数ですが再度 ZIP ファイルをダウンロードして頂き、jquery.pagerank.js だけを差し替えていただけますか。
※sigeo さんがもし jquery.pagerank.js を再構築してるのであれば、テンプレートを差し替えて再構築してください。
てか、今どきならプラグイン化した方がいいかな。(時間があるときに TRY してみます。)

以上です。
ご連絡ありがとうございます。いろいろ勉強になりましたキャハハ
ご確認ください。

#125: Posted by sigeoからbzbellへの返信 @ October 2, 2008 [REPLY]
user-pic

>>124 bzbell さん
体調悪いところに無理言ってしまって申し訳ないですしくしく

ありがとうございます。 動作するようになりました。

今だからいう話ですが、どうしてもbzbellさんのアクセスランキングが使いたくて
サーバー変える決心したので、jquery.inc-5.jsが併用できるようになってかなり嬉しいですキャハハ

ちなみにすべてjQueryで統一しようと思っていたので今後便利なものを試しまくっていきます。
今後も良いものがあったら共有しますね。

本当にありがとうございました。 今夜は寝れませんw

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

>>125 sigeo さん

こんにちわ^^

> 体調悪いところに無理言ってしまって申し訳ないです

いいえぇ~とんでもないです。むしろご連絡いただけたことでわたしとしても助かりました。
動作確認できたようでよかったですワクワク

> 今後も良いものがあったら共有しますね。
ありがとございますキャハハ
今後ともどうぞよしなにもじもじ

#127: Posted by Author Profile Page Mango @ October 11, 2008 [REPLY]
user-pic

bzbell さん
はじめまして、Mangoともうします。
いつもこちらのブログ、物凄ーく参考にさせて頂いてます。

今回アクセス・ランキングを使わせて頂き、設定、表示まではうまくいきましたが、
2点ほどどうしても解決できないことがあるので、質問させてください。

1、僕もCORESERVERを使っているんですが、pagerankディレクトリのパーミッションを
755にするとログファイルが作成されず、707にしてようやく動くようになりました。
これって問題ないでしょうか?
2、ログファイルの内容は正常に表示されるのですが、リスト一件目の上にどうしても
1行分くらいの空白ができてしまいます。CSSではこのスクリプトで出力される
class、idどちらともまだ何も指定していませんし、rank_view.phpの$sに余計な
改行や空白行が入っていないこともデバッグ文を入れたりして確認できました。
となると、あとはJavascriptの処理かな?と推測しましたが、そこら辺はどうにも
理解の範囲をこえていまして・・・。
なんとかこの空白を除去したいのですが、どうすれば良いでしょうか。

お手数おかけして申し訳ありませんが、以上ご教示いただけないでしょうか。
よろしくお願いします。

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

>>127 Mango さん

こんにちわ^^

ご質問の件ですが、

  1. 基本的にログファイルの書込みができさえすれば問題ないと思いますが、同じ CORESERVER で 755 でダメなんですか!?
    ちょと気になりますねあせあせ

  2. あぁ~それはですねぇ、Mango さんさんとこのサイトの TITLE が改行されてませんか!?
    以前 MT4 になったことで一時期問題にもなったかと思います。それが原因だと思われます。
    対策としては現状だと TITLE を改行しないようにしてていただければとうぅ~ん
    改善されないようでしたらまたご連絡ください。

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

>>128 bzbell さん
お返事ありがとうございます。

>基本的にログファイルの書込みができさえすれば問題ないと思いますが、同じ CORESERVER で 755 でダメなんですか!?
755にすると
Warning: mkdir() [function.mkdir]: Permission denied in /virtual/XXXXX/public_html/●●●.com/■■■/pagerank/rank_view.php on line 94
こんなエラーがでます。
data.txtとpeiod.txtの所有者がapacheになっているので、そのせいかなっと思ったんですが・・・。
一応動いているので、このまま行ってみようと思います。

>あぁ~それはですねぇ、Mango さんさんとこのサイトの TITLE が改行されてませんか!? なるほど、これが上記の説明文中にあったタイトルの改行の問題でしたか。 この部分だけちょっと理解できていなかったんですが、いまテンプレートのソースが
<MTIf name="main_index">
<title><$MTBlogName encode_html="1"$></title>
<MTElseIf name="entry_template">
<title><$MTGetVar name="page_title"$> - <$MTBlogName encode_html="1"$></title>
<MTElse>
<title><$MTGetVar name="page_title"$>: <$MTBlogName encode_html="1"$></title>
</MTIf>
このようになっているので問題ないかと思っていました。 また、出力されるHTMLソースは、bzbell さんの空白除去プラグイン等を使用させていただいて、余分な改行・空白は 一切無い状態になっています。 このテンプレートタグは何か問題ありますでしょうか?

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

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

>>129 Mango さん

こんにちわ^^

  1. ディレクトリの所有者が「apache」の件

    ディレクトリの所有者が「apache」のままだと自分でリネームや削除などができなくなってしまいます。 なので、管理メニューから所有者変更の依頼を行ってください。以下のページでもご紹介してます。
    http://bizcaz.com/archives/coreserver/

  2. TITLE の件

    えっ!? そのタグだったら問題ないですね。
    確認して頂きたいのですが、基本的にログファイル中のアクセスログは 1 行=1 アクセスデータとなっています。
    それを前提として、Mango さんのログファイル中に 1 アクセス=複数行に跨るような(ちょとおかしいログ)などありますでしょうか。
    通常ならキレイに並んでるので、おかしくね!? というのは見てすぐ分かると思います。

    もしある場合、お手数ですがおかしなログの前後数行を抜粋してメールフォームからログを添付して頂けますか。確認しますので。

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

>>130 bzbell さん
こんにちは

1、ディレクトリの所有者が「apache」の件
これは知りませんでした。
ただ、ある程度時間が経ったら、勝手に2つのログファイルの所有者が自分になってたんですよね。
ファイルのパーミッションも707になってました。不思議です。
念のため、管理画面から「ファイル所有者の変更」ボタンをポチッとして10分ほど待ってみましたが、やはりpagerankディレクトリの
パーミッションは707じゃないとだめみたいです。755だとloader.gifが何時までもクルクル回ってます。
でもちゃんと動くので、こちらは問題ないと思います。

2、TITLE の件
全て1レコード1行になっています。
ただTrackwordからのアクセスだけアクセス元の出力が文字化けしていたので、念のためメールフォームで送ろうとしたら、
エラーが出て送れなかったみたいです。メールフォームのエラーはエラー内容が表示されていなかったので不明です。
文字化けログは以下の通りです
http://blog.esterchan.com/archives/2006/08/28181916.php>浅草サンバカーニバルで起きた嬉しいハプニング>xxxxxxxxx.xxxxxxxx..xxx.ne.jp>">http://www.trackword.biz/k/ミ+ݤ惕・>
ログに改行が含めれているわけではないし、このレコードだけ冒頭に空白ができる訳ではないので、関係無いかもしれませんが。

度々お手数おかけして申し訳ありません。

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

>>131 Mango さん

> ある程度時間が経ったら、勝手に2つのログファイルの所有者が自分になってたんですよね。

えっ!? そうなんですか!!
それは知りませんでした。じゃぁ気にすることないのかもですねあせあせ
すいません。何か勘違いしてたかも・・・なので、確認させてください。
>>127で言われてます「リスト一件目の上にどうしても1行分くらいの空白ができてしまいます。」についてですが、どうも IE に限ったことのようですよあせあせFirefox、Safari では他のリストと同様に表示されてるようです。

ちょと Mango さんのサイトのコードを見させてもらったら、ページランキングのタイトル( dt タグ )の span が正しく閉じられてないようですあせあせ
それが原因か分かりませんが確認してみてください。

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

>>131 Mango さん

ちょとだけ Mango さんの CSS みさせてもらいました。
気になった点をいくつか・・・。

  1. 元々サイドバーのコンテンツをメインコンテンツ内にレイアウトしてますが影響はないですか!?
    たとえば、メインコンテンツ内の ul 属性とサイドバー内の ul とではスタイルが異なる(テンプレートによりますが)ことがあります。
  2. .side セレクタで padding の上下 15px に対して、.side の子にあたる ul タグなどの margin はどのようになってますか!?
    たとえば他のサイドバーコンテンツに習って .side #page_rank li {margin: 0;} などとやるとどうなります!?
ざっと見てちょと気になりましたやあ!
#134: Posted by Author Profile Page Mangoからbzbellへの返信 @ October 12, 2008 [REPLY]
user-pic

>>132 bzbell さん
>どうも IE に限ったことのようですよ
なるほど、そうですかぁ。
僕の環境ではFirefox、IE6、Operaとみんなどうしても空白ができてしまうんですよね。
ただ、ブラウザや環境によって違いが出るようなら、やはりCSSの可能性大なので、もう少し
そのあたりを掘り下げてみたいと思います。

ちなみにspanの件はbackgroundを指定したブロックの中にもう一回backgroundのイメージを
おくにはどうしたらよいか試している途中でした。実験中に席を立ってしまい、中途半端な
ソースが残ってました。紛らわしいことしてすみません。

あと、サイトを見て頂いたのでお気付きかも知れませんが、うちのブログって、bzbell さんの
記事やサイトのアイディアをパクリまくりなんですよね。
いつかちゃんとお礼を言いたいと思ってました。
今回の件もあわせて、本当にありがとうございます。

いろいろお手数おかけしてしまって申し訳ありませんでした。

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

>>133 bzbell さん
本当に、何度もすみません。

>1、元々サイドバーのコンテンツをメインコンテンツ内にレイアウトしてますが影響はないですか!?
sideセレクタですね。これを確認するためにclassごとはずしたり、セレクタをはずしたり、新しくセレクタを作ってみたり
したんですけど、変化が現れませんでした。

>2、.side セレクタで padding の上下 15px に対して、.side の子にあたる ul タグなどの margin はどのようになってますか!?
>  たとえば他のサイドバーコンテンツに習って .side #page_rank li {margin: 0;} などとやるとどうなります!?
空白が表れるのがリストの上部一回だけなので .side #page_rank li {margin: 0;} と .side #page_rank ul {margin: 0;} の両方で
試してみましたがこちらも変化がありませんでした。

ちなみにログにAAA、BBBの2レコードがあるとして、rank_view.php79行目でhtmlを出力している部分を、
echo $s;
echo $s;
と2度連続にしてみると、

→空白
AAA
BBB
AAA
BBB

となり、やはり冒頭にのみ空白が表れます。

取り急ぎ、ご報告まで。

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

>>134 Mango さん

やっぱり margin が関係してるようです。 以下のスタイルを追加してみてください。 わたしの方では Firefox、Safari、IE いずれも隙間なく表示できることを確認しました。 きっと Mango さんとこでも隙間が消えると思いますうぅ~ん
.side #pagerank_viewer ul { margin: 0; }
お試しくださいもじもじ

- 追記① -
何で margin を疑ったかというと、Mango さんとこ(小粋空間さんとこ)の .side に包含される ul などの margin がデフォルトだったためです。

- 追記② -
何で確認できたかというと、Mango さんとこのトップページのコードを少し拝借しまして、わたしの環境下で同一コードで表示確認できたからです。すいませんでした。

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

>>136 bzbell さん
何度もご親切にアドバイスをくださってありがとうございます。

ご指摘くださったmarginの件、.side #pagerank_viewer ul { margin: 0; } と試してみましたが、残念ながら空白は
消えませんでした。

ここで、原点に戻ってみようと、pagerankファオルダに同梱されているindex.php(pagerank/index.php)を調べてみました。
これならば、僕がいじったCSSとは無関係なので、原因が特定しやすいと思ったんです。

結果から書きますと、インストールしたままのindex.phpでも青い外枠とリスト最上段との間に1行分の空白が出ていました。
さらにFirefoxだと、マウスで選択してみると空白の左端が1文字分くらい選択できてしまいます。(IE6だと1行選択されます)

なにかが出力されているように思えたのでprototype.pagerank.js205行目のelem.innerHTML~の次の行にalertを入れてみたら、
<ul id="page-rank" class="widget-list">
の直前に何か入っていました。一見空白のように見えましたがバイナリエディタでしらべるとBOMでした。 BOMは3バイトなので2バイト文字列のUTF-8で全て除去する方法が思いつきませんでしたが(javascriptの知識が無いので)、 とりあえず上記205行目を以下のように変更して、1文字削ってみたところ今まで悩んでいた空白がなくなりました。
var str_req = pagerank_safari_escape(req);
elem.innerHTML = str_req.substr(1);
BOMを削るだけなら、もっとまともな方法があると思いますが、BOMは文字化け対策か何かで付加されているのですよね? そうすると安易に削ってしまうわけにもいかないし、でも空白は取りたいし、何か良い方法がありましたら 教えていただけないでしょうか?

ホント、しつこくてすみません。エーン

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

>>137 Mango さん

えーーーーっ!? BOM ですか!?
確かに Safari の文字化け対策で BOM 付きのスクリプトにしてますけど、PHP から自動生成されるタグ中にも BOM って付けられるんですか!?
そうなのかぁ・・・知りませんでしたガーンBOM っててっきりファイルの先頭にあるコードなだけだと思ってました。

う~んはて?BOM はスクリプトから付けたり/削除したりってのはできないはずですから、それが原因なら PHP のスクリプトを BOM なし UTF-8 で保存し直すしかないと思います。
※コード的には意図して BOM を付加するってことはやってないので。

ちなみにわたしのサイトでも以下のページ(jQuery 版)でも先頭に BOM は付いてないようです。
http://bizcaz.com/mt_memo/js/prototype/jquery/

> とりあえず上記205行目を以下のように変更して、1文字削ってみたところ今まで悩んでいた空白がなくなりました。

もしかして、Mango さんはエンジニアさんですかふつう!?
少しお聞きしますが、上記は必ず 1 文字目が BOM ってことでしょうか。
先頭に BOM が付く要因って分かりますか!? どうも BOM のコードが付加される理屈がよくわからなくってしくしく

- 追記 -
BOM を削除する方法っての教えてもらいました。
rank_view.php 内の 73 行目辺りに以下を追加してみてください。

if (ord($s{0}) == 0xef && ord($s{1}) == 0xbb && ord($s{2}) == 0xbf) {
$s = substr($s, 3);
}

相変わらず出力するコードの先頭に BOM が付くっていう理屈は分かりませんが、確認してみてください。

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

>>138 bzbell さん

> もしかして、Mango さんはエンジニアさんですか
3年前までエンジニアでした。体を壊しドクターストップがかかってやめました。
ただ、事務処理系や工場制御系の仕事ばかりだったので、WEBアプリとかPHPとかjavascriptは未経験です。
今は一人でWEBの勉強を始めたところですが、bzbell さんもご覧の通り、CSSなんか素人丸出しです。
ですから独学でここまで高度なことを成し遂げてしまうbzbell さんはお世辞抜きで尊敬しちゃいます。

> 上記は必ず 1 文字目が BOM ってことでしょうか。
正確には1文字目ではなくinnerHTMLで挿入される文字列の先頭3バイトみたいですよ。バイナリエディタで見たら
先頭3バイトが EF BB BF になってました。
参考:http://www.atmarkit.co.jp/fxml/rensai/w3cread38/w3cread38_1.html
javascriptがわからないので、とりあえずネットで調べて、手っ取り早く1文字削って見ましたが、
本当ならバイト単位で削らないとですよね。今のやり方だと1バイトごみが残っちゃう様な気がします。
で、インストール直後から毎回空白行ができていたので、BOMは必ず付加されるみたいです。

> 先頭に BOM が付く要因って分かりますか!? どうも BOM のコードが付加される理屈がよくわからなくって
残念ながら僕の今の知識では全く調べ切れていません。
そこで、以下のような条件を仮定してみました(かなり独断と偏見に満ちてますあせあせ

・最終的に出力される文字列(タグ)にBOMは必要ない(文字化け対策に関係ない)
・PHP側の処理でBOMは付加されていない(前々回のコメントで書いたとおりecho $s;を2度繰り返してもBOMがつくのは冒頭の1回のみ)
・jquery版の最終出力ではBOMは付加されていない。
・とするとBOMを付加しているタイミングはPHP側から文字列が返されたあとその文字列を処理している、かつjqueryとprototypeで大きく異なっている箇所

こんな感じでもう少しあたりをつけてみようと思います。
お役に立てず、しかも質問ばっかりで申し訳ありません。

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

>>139 Mango さん

> 3年前までエンジニアでした。体を壊しドクターストップがかかってやめました。

やっぱりっキャハハ
だって BOM って普通シロウト知りませんから(わたしもシロウトだけど PHP 勉強して始めて知りました)

> PHP側の処理でBOMは付加されていない(前々回のコメントで書いたとおりecho $s;を2度繰り返してもBOMがつくのは冒頭の1回のみ)

これすっごく気になりますね。
PHP 自体は jQuery 版も prototype 版も同じものなので結果は変わらないはずなんですよね。
試しに BOM なしで保存したバージョンを以下に置いておきます。お手数ですが PHP スクリプトだけ差し替えてご確認頂けませんか。
http://bizcaz.com/archives/shoco/js/prototype.pagerank_without_BOM.zip

ちなみに Mango さんがお使いの PHP は 5.2.5 ですか!?
また、PHP をモジュールとして動作させてますでしょうか!?
ご存知かも知れませんが、PHP はモジュールモードと CGI モードで動作可能なんです。それぞれメリット/デメリットがあります。
※CORESERVER ではデフォルトはモジュールモードになります。
ここら辺に関係してないか調べてみます。

- 追記 -
わたしはページアクセス、投票(Five Star Rating)の PHP スクリプトだけ CGI モードで動作させてます。他はモジュールモードです。
具体的には、pagerank/ ディレクトリの中に .htaccess を置いて、その中に以下を追加しています。

AddHandler application/x-httpd-phpcgi .php
#141: Posted by Author Profile Page Mangoからbzbellへの返信 @ October 13, 2008 [REPLY]
user-pic

>>140 bzbell さん

今日は遅くまでお付き合いくださってありがとうございました。

以下の点確認しました。

1、rank_view.php 内の 73 行目辺りにBOM除去の処理を入れる
→変化ありませんでした。というかif (ord($s{0}) == 0xef ~ の条件分岐に引っかからない=echo前の$sの段階ではBOMがついていない?

2.PHPのバージョン
→5.2.5がはっきりわかりませんが、CORESERVERのサーバー仕様のページに5.2系と書いてありました。

3、PHPの動作モード
→モジュールモードです。ディレクトリ毎に記述してモジュールによってモードを変えるという発想はありませんでした。
これは目からうろこです。ありがとうございます。

4、PHP動作モードの変更
→変化ありませんでした。.htaccessを記述してcgiモードに変えてもBOMはついているようです。空白行も表示されました。

5、BOM無しPHPファイル(prototype.pagerank_without_BOM.zip)への差し替え
→BOMがつきませんでしたキャハハ!!!。もちろん空白行は表示されません。
スクリプトファイルがBOM付で保存されていると、そこからの出力も自然BOM付きになってしまうということでしょうか?
BOMを除去するタイミングが難しいですね。

今日は一日振り回しちゃってすみません。あせあせ
本当に感謝してます。

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

>>141 Mango さん

おはよございます。

> スクリプトファイルがBOM付で保存されていると、そこからの出力も自然BOM付きになってしまうということでしょうか?

そんなかんじっぽいですよねぇあせあせ
ただ、わたしテストしてるときそんなこと一度もなかったし、使われてるサイトさんの一覧見てもそのような現象はなさそうだったのが気になるなぁあせあせしかも同じ CORESERVER なのにってのが・・・。
違いと言ったらやっぱり PHP の動作モードになりますよねぇ。

まぁ元々 Safari 向けに BOM 付きにしたんですけど、今となっては JavaScript 側でコード変換してるからなくっても問題ないかも、ですねやあ!

勉強になりました。
今後ともどうぞよしなにぺこり

#143: Posted by meico @ November 19, 2008 [REPLY]
user-pic

はじめまして。とても参考にさせていただいています。
MT 3.35を使ってこのアクセスランキングを表示させようと試行錯誤しています。
こちらのコメントでも何件かあがっていますがタイトルの削除についてです。
タイトルはテンプレートで<title><$MTEntryTitle encode_html="1"$> | <$MTBlogName$></title>
削除方法は#112を参考にさせていただいて
var title = document.title.replace(/|.*$/, '');
が当てはまるのかと思いjquery.pagerank.jsの222行目以下を
$(document).ready(function()
{
var title = document.title.replace(/|.*$/, '');
pagerank_post(pagerank_blogid, title, pagerank_blog_url, '');
});
に書き換えました。
しかし結果がおかしなことになっています。。。
タイトルが全て表示されてしまう上に、先頭に同じ番号がついています。
正しいタイトルの削除方法を教えていただけますでしょうか。よろしくお願いいたします。

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

>>143 meico さん

こんばんわ^^

> しかし結果がおかしなことになっています。。。
> タイトルが全て表示されてしまう上に、先頭に同じ番号がついています。
なんと不可解なあせあせ おっかしいですねぇ。
その正規表現で問題ないと思うんですけど・・・「|」は全角ですよね!?
半角の「|」だとマッチングされないのですが、間違いないですよね!?

ページタイトルを確認したいので、お手数ですが meico さんサイトの URL を教えていただけますか。
※コメントは公開しませんので URL は伏せます。

#145: Posted by meico @ November 20, 2008 [REPLY]
user-pic

bzbellさんご回答ありがとうございます。
1日たってログが安定したのか(?)本日きちんと希望通りの形で表示されました!!お騒がせいたしました。
ところが……(汗)
今回、ブログ内検索用のscriptを使用している関係で、このランキングのscriptと競合してしまうようです。
(検索用のscriptを外すと表示されます。)
このscriptの競合を回避する方法がありますでしょうか…?
js/prototype.jsになります。
(ブログではprototype.pagerank.jsではなくてjquery.pagerank.jsを使用しています。)

また、もう一つ問題がありまして。年別のアーカイブというのをつくっていて
2008というフォルダが自動生成されます。
その結果、2008配下のインデックスページもランキングに含んでしまうようです。
このページをランキングに含めない方法はありますでしょうか?

サイトのURLをお知らせいたします。
作成途中のため、公開はご遠慮くださいますようよろしくお願いいたします。
もしお時間がありましたらご確認ください。
すみません、お手数おかけいたします。

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

>>145 meico さん

こんばんわ^^

解決してよかったですワクワク

  1. このscriptの競合を回避する方法がありますでしょうか…?

    meico さんは jQuery でコードを書くことできますか!?
    jQuery にコンフリクト( 衝突 )を防ぐ機能があるのですが、そちらで jqeury.pagerank.js を変更すれば大丈夫だと思いますパチパチ

    具体的には 1 行目辺りに以下を追加します。

    jQuery.noConflict();
    

    次に 177、178、181、182、185、215、217、223 行目の行頭にある「$」を「jQuery」に変更します。

  2. このページをランキングに含めない方法はありますでしょうか?

    はい。除外したいページに以下を追加することでそのページはカウントされなくなります。

    <script type="text/javascript">pagerank_exclude = 1;</script>
    

    たとえば、すべての月別アーカイブページを除外したい場合には、テンプレート内の HTML ヘッダ内に上記を追加すれば OK です。
    また、meico さんが MT の MTSetVar タグなどを使いこなせるようでしたらもっと効率よくできると思いますうぅ~ん

以上ですバイバイ
#147: Posted by meico @ November 21, 2008 [REPLY]
user-pic

おはようございますbzbellさん
ご回答ありがとうございます!
教えていただいたように修正したらできましたー!うまく動作しました!
ほんとーーにありがとうございます!!

script関係やPHPは私には難しくて一つつまずくと
もう前になかなか進めないのでかなり心身ともにブルーになってしまいます。。
でも今回はbzbellさんに素早く回答していただいてかなり心強かったです。
今後とも参考にさせていただきます。ありがとうございました。

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

>>147 meico さん

おはよございます^^

解決してよかったですブイブイ
今後ともどうぞよしなにぺこり

#149: Posted by ポニョ @ December 10, 2008 [REPLY]
user-pic

はじめまして。
先日MT3.3にjQuery 版にてアクセスランキングを導入させて頂きました。
ログが貯まってきたのでそろそろ公開しようかと思うのですが、ページタイトルの表示で不都合(見栄えが悪い部分)がありまして質問させて頂きます。

コメントをクリックして個別ページへ移った場合、ページランキングの方で記事タイトルが「記事タイトル#AnchorComments#AnchorComments」という風に表示されてしまいます。
(テンプレートには <a href="<$MTEntryPermalink archive_type="Individual"$>#AnchorComments">コメント[<$MTEntryCommentCount$>]</a> と記述しています。)

pagerankのpv数は「記事タイトル」「記事タイトル#AnchorComments#AnchorComments」と別(二重)になることはなく、リンク先は個別ページのトップに正しく飛ぶのですが、
コメントから個別ページに飛ぶと、それまで「記事タイトル」だったものが「記事タイトル#AnchorComments#AnchorComments」に差し変わってしまいます。

私のテンプレートの書き方が悪いのかと思いますが、#AnchorComments#AnchorCommentsというのを表示させない方法がお分かりになればと思い質問させて頂きました。
「コメント数をクリックして開かれたページはカウントしない」という回避法でも構いません。

p.s 最近のコメントでコメント投稿者部分にもリンクを張り、その方のコメントへ飛ぶようにしているのですが、こちらも同様にpagerankの記事タイトルの表示が見苦しいことになってしまいます。

bzbellさんの所では問題ないですね。。。やはり私のテンプレートに問題がありそうですね。しくしく

#150: Posted by Author Profile Page bzbellからポニョへの返信 @ December 11, 2008 [REPLY]
user-pic

>>149 ポニョ さん

こんばんわ^^

お返事が遅くなってすいませんあせあせ

> コメントから個別ページに飛ぶと、それまで「記事タイトル」だったものが「記事タイトル#AnchorComments#AnchorComments」に差し変わってしまいます。

確か以前にも同じような現象の人がいて、同じような質問されたことがあります。
でも何だったか思い出せなくってあせあせ
可能であれば ポニョ さんのサイト( 現象 )を見させてもらえますか。

> コメントをクリックして個別ページへ移った場合、ページランキングの方で記事タイトルが「記事タイトル#AnchorComments#AnchorComments」という風に表示されてしまいます。

これもおかしぃんですよねぇ。
というのも、ページランクのスクリプト中ではロケーション( #AnchorComments )を削除して、普通の URL に変換するような処理が入ってるんです。
なので、ポニョ さんのような現象がでること自体ちょと問題なんですよね。

何れにしてもサイトを見せて頂ければ早期解決かとブイブイ

#151: Posted by ポニョからbzbellへの返信 @ December 11, 2008 [REPLY]
user-pic

>>150 bzbell さん

お返事ありがとうございます。
記事タイトルの表示に悩んでまだブログにはランキング表示をさせていないのですが、こちらのページで確認して頂けると思います。
http://●●●.jp/
続きを読むで個別ページに移っても#more#moreになってしまいますね。
上記のランキングは変動があって症状を確認できないといけないので、念のためテストページのアドレスもお知らせしておきます。
http://●●●.jp/test
(左サイドバーにランキング表示。デザイン調整中でお見苦しいですが)。もじもじ


記述を変更した所と言えば、<ul><li>を<ol><li>に変えた事と、様子を見ながら集計期間を変更しようと思ったので「14日間ログを集計します」を消した事だけだったと思います。
他にはjquery.innerfade.jsでニュースティッカー風お知らせをつけているので、競合する部分があっておかしくなるのかな?と素人判断しておりました。あせあせ


症状が解消されなければ「ブログには表示させずに一人こっそりランキングを見られればいいかな」と思い始めておりましたので、bzbellさんのお暇なときにでも検証して頂ければ幸いに思います。テレテレ

#152: Posted by Author Profile Page bzbellからポニョへの返信 @ December 12, 2008 [REPLY]
user-pic

>>151 ポニョ さん

こんばんわ^^

サイト拝見させてもらいました。
猫ちゃんたちかわいいですねブイブイ
ウチにもわがままな娘が一匹します。もぅかわいくってしょうがないですキャハハ

それはさておき、どうやら IE からのアクセスだとポニョ さんが言われる現象が発生するようです。しかも URL からロケーション( #xxx )が削除されてないのだと思ってたら、タイトルに #xxx がついてるんですね。
Firefox や Safari などのモダンブラウザでは問題ないようです。

なので、スクリプト的には問題なさそうなのですが、一応以下のスクリプトを試してみて頂けますか。
http://bizcaz.com/archives/shoco/js/jquery.pagerank_for_ponyo.zip

  1. ポニョ さん用に作ってますので元ファイルをバックアップして差し替えてください。
  2. そして現象が発生する方法で、かつ IE でページ表示してみてください。
  3. そうするとページタイトルのメッセージボックスが表示されます。
  4. そのタイトル名が正しいかどうかをご確認いただけますかテレテレ

タイトル名がおかしい場合には、わたしが作った jquery.pagerank.js に問題がありますガーン
おかしくない場合、他のスクリプトにてページタイトルの変換!? みたいなことされてる可能性があります。

また、テストが完了したらそのスクリプト( jquery.pagerank.js )中の 22 行目~ 26 行目を削除すればそのまま使用可能です。その際テンプレート内のランキング表示部を少し変更する必要があります。
サンプルとして index.php を添付しますので参考にしてくださいぺこり

#153: Posted by ポニョからbzbellへの返信 @ December 13, 2008 [REPLY]
user-pic

>>152 bzbell さん

bzbellさんの所も可愛いお嬢様がいらっしゃるんですね♪キャハハ
うちはヤローばかりなので女の子は羨ましいです。

報告が遅くてすみません。
どうやら私得意の凡ミスをしている様で、bzbellさんに作っていただいたファイルに差し替えた所白紙状態になってしまったので、表示確認でき次第また改めてご連絡に上がります。あせあせ
(色々試して現在はtest/js/pagerank/下にjquery.pagerank.jsとindex.phpを置いています。初心に返ってjQuery版を再ダウンロードし、私用にご用意下さったjquery.pagerank.jsとindex.phpと差し替えてサーバーにアップしてみましたが、data.txt等が生成されない状態です。差し換え用だからそういう仕様だったり?)

また、お詫びしなければいけない事が!
昨晩はCSSのデザイン調整をして、表示確認で普通に個別ページを見ておりました。
故に途中でページランキング部分が#AnchorComments#AnchorCommentsなしのタイトルになってしまった時間帯がございます。
bzbellさんが見に来られたら症状が確認出来ないじゃないの!とすぐに再現したのですが・・・タイミングの悪いことをしてすみませんでした。あせあせ
ponyo/pagerank/で症状が出た状態にして確認すると、IE6でもFirefoxでも同じ表示になります。
(それにしても、症状が消えたり現れたりするので、次の方が記事タイトルをクリックでプレビューするとpagerankのタイトルは元に戻る(最新のものになる?)のでしょうかね???)

長々とすみません。明日もう一度ご用意下さったファイルで表示確認してみます。ぺこり

#154: Posted by Author Profile Page bzbellからポニョへの返信 @ December 13, 2008 [REPLY]
user-pic

>>153 ポニョ さん

こんばんわ^^

&gt; どうやら私得意の凡ミスをしている様で、bzbellさんに作っていただいたファイルに差し替えた所白紙状態になってしまったので、表示確認でき次第また改めてご連絡に上がります。

あっ!! ごめんなさいガーン
JavaScript を差し替えただけだと白紙になっちゃいますね。
プラグイン化したので使い方が別物になってるの忘れてましたあせあせ

お渡ししたスクリプトを使う場合には、テンプレート内のランキング表示のコードをサンプルの index.php のようにする必要がありました。ちょと手間かかっちゃうかなあせあせ

&gt; (それにしても、症状が消えたり現れたりするので、次の方が記事タイトルをクリックでプレビューするとpagerankのタイトルは元に戻る(最新のものになる?)のでしょうかね???)

お察しのようにランキングは URL で識別するのでページタイトルは最新のものが表示されます。なので、現象が出たり消えたりすると思います。
問題は、アクセスログファイル中に #AnchorComments#AnchorComments というページタイトルで保存されてしまうことなんです。
本来はそのような保存のされかたしないはずなんです。

わたしの環境で、データをイジくってみて同じ現象がでるか確認してみますね。

#155: Posted by Author Profile Page bzbellからポニョへの返信 @ December 13, 2008 [REPLY]
user-pic

>>153 ポニョ さん

こんにちわ^^

原因が分かりましたよ。
ポニョ さんとこで貼り付けてる猫グッズの Amazie のスクリプトがページタイトル名を IE に限って書き換えてます。
たとえば、http://ponyo.com/xxx.php#auau などのように存在しないロケーション( #auau )をくっつけても同じ現象が発生します。
また、IE のタイトル名のところを見てると分かると思いますが、最初は正しく表示されてるのに、途中から #auau が追加されることが分かります。

きっと Amazie のスクリプトを外すと問題ないと思いますよブイブイ
今後も Amazie を使い続けるようなら、不具合としてご報告した方が良いように思いますワクワク

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

#156: Posted by ポニョからbzbellへの返信 @ December 14, 2008 [REPLY]
user-pic

>>155 bzbell さん
お手数をおかけしました!&原因究明ありがとうございました!ワクワク
他のjavascriptが競合しているのかもと、<MTIgnore>でひとつひとつ除外しながら検証していたのですが分からず、「こりゃ複数のjsでバッティングしてるのかな?」と思っていました。
デザイン変更でリニューアルしようと思っていた所なので「これまでのjsは全て捨てて一から作り直すかな...」と思った所でのbzbellさんからのお返事、とてもとても助かりました。
検証作業に大変なお手間を取らせてしまい申し訳ありませんでした。
(申し訳ないから検証はしていただかなくても大丈夫と書きに来た所でした)ぺこり


Amazieに報告をし、改変が難しい様でしたら普通のAmazon商品リンクに差し換え様と思います。
bzbellさんのスクリプトには問題のないこと・関係のないことにまで丁寧にご回答下さいましてありがとうございました。
感謝にたえません。しくしく

#157: Posted by AUSGANG SOFTからbzbellへの返信 @ December 14, 2008 [REPLY]
user-pic

>>155 bzbell さん

こんばんわ。はじめまして。
amazieを開発・公開していますAUSGANG SOFTです。

ポニョさんから、今回の問題をご指摘いただいて、調べた結果、原因がわかりましたのでこちらにもご報告させていただきます。

IE+Flash Player で Location Hash 使ったときにタイトルが変わる問題
http://d.hatena.ne.jp/nitoyon/20081209/ie_location_hash

原因は、ほぼ間違いなくIEですあせあせ

で、対処方法としては↑のページで抜粋で示されているようなコードをsetIntervalで回してチェックすれば、解消できそうです。

この対処用のコードをどこが書くのかが悩ましいところなんですが
もし、可能でしたら、こちらのアクセスランキングのJSの中で、対処用のオプションとして取り入れていただけたらと思いご連絡差し上げました。
お手数ですが、よろしくご検討ください。

#158: Posted by Author Profile Page bzbellからポニョへの返信 @ December 15, 2008 [REPLY]
user-pic

>>156 ポニョ さん

こんばんわ^^

> 検証作業に大変なお手間を取らせてしまい申し訳ありませんでした。

いいえぇ、どぉいたしましてワクワク
基本的に原因が分からないと嫌な性質なので気にしないでください。
最近は忘年会やら何たらパーティやらで帰りが遅い日もありますが、たまたま暇だったのでおせっかいしちゃいましたあせあせ

ステキなテンプレがんばってくださいやあ!
今後ともどうぞよしなにぺこり

#159: Posted by Author Profile Page bzbellからAUSGANG SOFTへの返信 @ December 15, 2008 [REPLY]
user-pic

>>157 AUSGANG SOFT さん

こんばんわ^^ & ご連絡頂けて感謝します。
そうですか、やっぱり IE ですか。
いろいろ検証してる中で IE だけに限った現象だったので十中八九 IE かななんて思ってました。

> もし、可能でしたら、こちらのアクセスランキングのJSの中で、対処用のオプションとして取り入れていただけたらと思いご連絡差し上げました。

ありがとうございます。
追加して試して確認してみます。

#160: Posted by AUSGANG SOFTからbzbellへの返信 @ December 15, 2008 [REPLY]
user-pic

>>159 bzbell さん

お返事ありがとうございます。
組み込んでいただけるとのことで、感謝です。

ちょっとその後、対処を方法を考えてみたので蛇足ですが書きます。
↑で紹介した対処方法は、document.titleがおかしくなる問題を修正するスクリプトなのですが、アクセスランキングの集計に正常に現れる処理にとどめても良い気がしました。

IEでかつ、location.hashがあれば、
document.titleの末尾に、location.hashが含まれてないか
(Flashが複数貼られたページの場合、複数ついている可能性がある)
含まれていれば、#でsplitして本来のタイトルを取得する。
(本来のtitleに#が含まれていた場合の対処も)

という処理を、集計用PHPに送る前に挟めばよいのかなと。
アクセスランキングの仕組みを理解してないので、もしかしたら、
タイトルを送られてないのかもしれないですが。
ご参考までに。

#161: Posted by ポニョからAUSGANG SOFTへの返信 @ December 15, 2008 [REPLY]
user-pic

>>159 bzbell さん >>160 AUSGANG SOFT さん

色々お騒がせ&お手数をおかけしてしまい申し訳ありません。
bzbellさんの方で対処策をご検討いただけるのですね♪うるうる

> この対処用のコードをどこが書くのかが悩ましいところ
頑張って自分で対処してみますとAUSGANG SOFTさんには言ってみたのですが、私には敷居が高くて。。。あせあせ

自分の知識と技量が足りないのが悪いのだから、どれかを諦めることになっても仕方がないと思っておりました。
年の瀬も近いことですしご多忙でしょうから、ご無理のない範囲で作業をして頂ければと思います。もじもじ
(ご面倒でしたらノータッチで構いません。少々見栄えが悪くたって私のブログなら支障なしですから。)

p.s IEに限って起こる現象という意味が分かりました。
Firefoxでも同じ表示になるなどと勘違いな事を申し上げてすみませんでした。

#162: Posted by Author Profile Page bzbellからAUSGANG SOFTへの返信 @ December 15, 2008 [REPLY]
user-pic

>>160 AUSGANG SOFT さん

> bzbellさんの方で対処策をご検討いただけるのですね♪

はい。現象が発生してもいいように対策は入れるつもりです。
でも、ランキング・スクリプトでは Location Hash は使用してないのですが、他のスクリプトで使用されてた場合、現象が発生しちゃうんですよねあせあせ困ったものです。

なので、AUSGANG SOFT さんがおしゃるように PHP 側にページタイトルを転送する直前で末尾の #xxx を無条件に削除してしまおうと思ってます。

幸いわたしのサイトでも Amazie のスクリプトを使わせて頂いてるので、FLASH に変更して動作確認してみますワクワク

#163: Posted by Author Profile Page bzbellからポニョへの返信 @ December 15, 2008 [REPLY]
user-pic

>>161 ポニョ さん

こんばんわ^^

> bzbellさんの方で対処策をご検討いただけるのですね♪

はい。
手っ取り早く Ajax による転送直前でページタイトルの #xxx をすべて削除するよう対策してみます。
一応わたしの方でも確認しますが、できれば ポニョ さんにもお手伝いして頂けると助かりますぺこり
ポニョさん向けのスクリプトを作成しましたので以下の ZIP ファイルをダウンロードして確認していただけますか。
http://bizcaz.com/archives/shoco/js/jquery.pagerank_for_ponyo.zip

お手数ですがよろしくお願いしますぺこり

- 追記 -
一応カンタンにですが動作確認しました。
具体的には以下のような対策になります。

var name_split = document.title.split('#');
opt.page_name  = name_split[0].replace('Movable Type 備忘録 - ', '');

上記コードは以下のようなことをやってます。

  1. ページタイトルから「#」をキーにしてタイトルを分割します。
  2. 分割した先頭のテキストをページタイトルとして今まで通りの処理を行います。

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

#164: Posted by ポニョからbzbellへの返信 @ December 17, 2008 [REPLY]
user-pic

>>163 bzbell さん
大変遅くなりました!
私の凡ミスで只今おかしな集計をしているのですが、bzbellさんがご用意下さった「ページタイトル#xxx」の#xxxを削除するという動作は確認OK(動作良好)です。パチパチ

(ブログ記事ページのアクセス数を集計するべき所、ページランクのindex.phpを集計してしまってますが、しかしこれは私の設置ミスなのでスルーして下さい。
ページランクのindex.phpにFlashとアンカーリンクを張って、IEでテストしました。)あせあせ


年の瀬のお忙しい時期に煩わせてしまって申し訳ありませんでした。
助かりました♪どうもありがとうございました。ぺこり

#165: Posted by Author Profile Page bzbellからポニョへの返信 @ December 17, 2008 [REPLY]
user-pic

>>166 ポニョ さん

こんばんわ^^

改善されたようですね。良かったですワクワク
大したことできませんでしたが、今後ともどうぞよしなにぺこり

#166: Posted by 海の河童 @ February 23, 2009 [REPLY]
user-pic

いつも拝見させてもらってますヽ( ´ ▽ ` )ノ
最近始めたばかりのド素人で
MovableTypeの世界で当たり前のこともよくわかっていません。
いつもなら半日近く調べてやっと解決できるんですが、
今回は自分の頭の中じゃわからないので・・・

サーバはチカッパ
MT4.23を使っています。

起こった問題は
リンクをクリックしてもカウントされないということです。
GoogleChromeは1回目のクリックには反応してくれるけど
それ以降は反応しません。
Firefoxは3回に1回のペースで反応してくれるだけです。

PHP・JavaScriptの知識は底辺なのでアドバイスをお願します。
よろしくお願します。

#167: Posted by Author Profile Page bzbellから海の河童への返信 @ February 23, 2009 [REPLY]
user-pic

>>166 海の河童 さん

こんばんわ^^

まず、同一 IP アドレスによるページアクセスは 1 日 1 回に制限してます。
同じ人が同じページを何度もクリックしたのでは公正なアクセスログを取得できませんからねうぅ~ん

で、海の河童 さんが言われてることはそういったことではないですよね!?
ロリポップが先日 PHP5 使えるようになったと聞いたので、チカッパでも PHP5 は使えますよね!?
アクセスランキングを設置したページの URL を教えていただけますか。
一度確認させてくださいもじもじ

#168: Posted by 海の河童からbzbellへの返信 @ February 23, 2009 [REPLY]
user-pic

>>167 bzbell さん
URLは
http://successstory.jp/kurashitas_page/です。

>まず、同一 IP アドレスによるページアクセスは 1 日 1 回に制限してます。
>同じ人が同じページを何度もクリックしたのでは公正なアクセスログを取得できませんからね

そうですよねヾ(´▽`;)ゝ
自分のサイトはまだアクセス数が少ないので
自分でリンクを追ってテストするしかなかったのでエラーと勘違いしたのかもしれません。
今のところ正しく動作していますでしょうか?

あと、
var title = encodeURIComponent(document.title.replace(':', ''));のところがよくわかりませんでした。
現時点でタイトルが
アクセス数 サイトの名前 「記事のタイトル」という感じになっていますが、これを
記事のタイトル アクセス数にするためにはどうしたらよいでしょうか?

よろしくお願します。

#169: Posted by Author Profile Page bzbellから海の河童への返信 @ February 23, 2009 [REPLY]
user-pic

>>168 海の河童 さん

こんばんわ^^

海の河童 さんとこのサイトを確認したところ、とりあえずログには書き込まれてるようですパチパチ
しばらく様子を見てみてくださいうぅ~ん やっぱりちょと変っ!! ていうのがありましたら再度ご連絡頂けたらと思いますぺこり

> 記事のタイトル アクセス数にするためにはどうしたらよいでしょうか?

はい。CSS でデザインする必要があります。 ダウンロードした圧縮ファイル中にサンプルとして index.php というのがあるかと思います。 そのファイル中に CSS を明記してますので参考にして頂けたらと思います。 たとえば、海の河童 さんのご希望の順番に表示したいのであれば以下のようになります。
ul#page_rank li a span.right {
padding: 0 .5em;
float: right;    ★これがポイント
font-weight: 700;
}
#170: Posted by 海の河童からbzbellへの返信 @ February 24, 2009 [REPLY]
user-pic

>>169 bzbell さん
まずは、動作しているようでよかったです。
お忙しい中ありがとうございます。

あとですね~
ブログタイトルの両サイドに「」が付いているのですが、
どのようにしたら消せますか?
サイトのタイトルなら消せたのですがヾ(´ε`;)ゝ

これが出来れば完成します。
よろしくお願します!!

#171: Posted by Author Profile Page bzbellから海の河童への返信 @ February 24, 2009 [REPLY]
user-pic

>>170 海の河童 さん

こんばんわ^^

> ブログタイトルの両サイドに「」が付いているのですが、
> どのようにしたら消せますか?

どうも 海の河童 さんとこのエントリページの TITLE 属性に「が付加されてるようですよあせあせあせあせ
なので、テンプレート中にそのような記述がされてるのではないでしょうか。
ご確認くださいぺこり

#172: Posted by 海の河童からbzbellへの返信 @ February 25, 2009 [REPLY]
user-pic

>>171 bzbell さん
普通に「」をつけていましたヾ(´▽`;)ゝウヘヘ
お騒がせしました!!

これからもよろしくお願します。

#173: Posted by 海の河童からbzbellへの返信 @ February 26, 2009 [REPLY]
user-pic

>>171 bzbell さん
お疲れ様です。
ログが動かなくなってしまいました。・゚゚・(≧д≦)・゚゚・。
アクセス数が少ないので確かめられません。
一度、見ていただいていいですか( p_q)

#174: Posted by Author Profile Page bzbellから海の河童への返信 @ February 27, 2009 [REPLY]
user-pic

>>173 海の河童 さん

こんばんわ^^

確かにロギングされてないようですね。
ソースを確認したところ、JavaScript エラーが出てるようです。
ブログ記事ページでは必ず mt.js を HTML ヘッダ内に記述するようにしてください。
また、ちょと気になることが prototype.js を重複して読込んでるようです。

Google のライブラリを読込んでるようなので、pagerank/prototype.js は不要です。HTML ヘッダから削除してください。

#175: Posted by 海の河童からbzbellへの返信 @ February 27, 2009 [REPLY]
user-pic

>>174 bzbell さん
こんばんは(*゚‐゚)

ブログ記事ページにmt.jsを読み込ませて
prototype.jsを削除しました。
重複したらダメなんですね。勉強になりました。

まだ調子悪いみたいです。(´;ェ;`)

#176: Posted by Author Profile Page bzbellから海の河童への返信 @ February 27, 2009 [REPLY]
user-pic

>>175 海の河童 さん

こんばんわ^^

> まだ調子悪いみたいです。(´;ェ;`)

う~ん・・・困りましたね。
まず、海の河童 さんとこでは JavaScript エラーが発生してます。
その影響でページランキング用のロギングスクリプトが実行されてないと思われまする。

ですので、1 つずつ確認してエラーを取り除いてください・・・としか言えないのですあせあせ
ただ、気になることがありまして、shadowbox の初期化コードを以下のようにやってみてもらえますか。

変更前
window.onload = Shadowbox.init;
変更後
Event.observe(window, 'load', function() {
Shadowbox.init();
});

prototype を使うなら上記のようなハンドラ登録の方がよろしいかとワクワク

#177: Posted by 海の河童からbzbellへの返信 @ February 28, 2009 [REPLY]
user-pic

>>176 bzbell さん
お忙しい中すみませんあせあせ
shadowboxのコードを変更しました。

非常に初歩的なことなんですが、
JavaScriptのエラーはどうやってわかるのですか?
Firebugで十分でしょうか?
Firebugではエラーなくなりました。

#178: Posted by Author Profile Page bzbellから海の河童への返信 @ February 28, 2009 [REPLY]
user-pic

>>177 海の河童 さん

こんにちわ^^

海の河童 さんは Firebug による JavaScript のデバッグが可能なんですね!?
それでしたら話は早いです。ざっくり説明すると、

  1. prototype.pagerank.js 内の下の方( 258 行目辺り )にブレークを張ります。
  2. 適当なブログ記事ページを表示します。
  3. 正しく動作していればブレークを張ったコードがジャンプされます。
あとはステップ実行で実際にコードが正しいかどうかを確認することができますうぅ~ん

今わたしの方で確認したら、ロギングのスクリプトは実行されてます。
なのでログファイル中に記録されてると思いますよやあ!
原因は >>176 の件だったのでしょうか。

あと、ブログ記事ページの HTML ヘッダ内に mt.js が消えちゃってますねあせあせ
その影響で 1 つだけエラーしてますよぉ。

#179: Posted by 海の河童からbzbellへの返信 @ March 1, 2009 [REPLY]
user-pic

>>178 bzbell さん
ちゃんとカウントされてましたキャハハ
感動しちゃってもう(´;ェ;`)

Firebugは使いこなせてないんですけどねヾ(´▽`;)ゝ
mt.jsも読み込ませたはずが
出来ていませんでした。

これも全てbzbell さんのお蔭です。
自分もJavaScriptなどを猛勉強してbzbellさんのようなスキルを見につけたいです。

これからも参考にさせていただきます。
本当にありがとうございましたヾ(*ΦωΦ)ノ

#180: Posted by aki @ March 12, 2009 [REPLY]
user-pic

bzbellさんこんにちは

ランキングで表示されるタイトルに日付やカテゴリー名も一緒に表示されてしまいます。
Line 22の opt.page_name = name_split[0].replace(' - ブログ名', ''); をいろいろいじっていても
自分ではよく理解できないのでご質問いたしました。

私のブログの場合タイトルが:

タイトル名 - 2009年03月12日 - カテゴリ名 - サイト名

となっております。具体的にどういう風に記述すれば日付などのを取り除くことができますでしょうか?よろしくお願い致します。

aki

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

>>180 aki さん

こんばんわ^^

aki さんのケースだとマッチングはムズかしいので以下のように変更してください。
var title = document.title.split(' ')[0];
これでタイトル名称だけを抜き出すことができます。

ご確認くださいぺこり

#182: Posted by @ March 15, 2009 [REPLY]
user-pic

bzbellさん、こんにちはバイバイ
試行錯誤しながらjQuery版を設置してみました。
トップページやアーカイブページを対象外にすること、ページタイトルだけを抜き出す事・・・等、ここに書かれているとおり、ひとつずつクリアしていって出来上がってゆくのに感激し、感謝しきりです。ワクワク

おたずねしたいのは、複数ブログを対象にした時、
1 サイトのトップページには全ブログを対象にしたランキング表示
2 各ブログのトップページには当該ブログのみを対象にしたランキング表示
させたいことです。

http://***.net/(←サイトトップ)
http://***.net/book/ (~以下、階層下げて個別ブログ)
http://***.net/cinema/

(今は便宜上、bookブログにサイト全体のランキングを表示させ、cinemaには当該ブログのみのランキングを表示させています。)
最初はpagerankディレクトリを各階層(ブログ)ごとに追加で設置してやればいいかと思ったのですが、それでは追加したjquery.pagerank.jsの方が優先して当該(個別)ブログのランキング(カウント)には効くけれど、サイト全体のランキングにはカウントされず漏れてしまいます。ガーン

何か方法がありますでしょうか。

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

>>182 羊 さん

こんばんわ^^

> おたずねしたいのは、複数ブログを対象にした時、
> 1 サイトのトップページには全ブログを対象にしたランキング表示
> 2 各ブログのトップページには当該ブログのみを対象にしたランキング表示
> させたいことです。

実は以前にも同じことをご質問されました。
jQuery 版をお使いでしたら、以下のページでご紹介してるスクリプトを使っていただければ可能です。
http://bizcaz.com/archives/2008/10/04-002457.php

考え方としては、1 つのトラッキングコード( JavaScript )から全ブログ、個別ブログというようなログの解析は困難なため、全ブログ用、個別ブログ用というように 2 つのトラッキングコードを各ページに埋め込む・・・といったかんじになるかと思います。
以下のコードを各ブログのページに埋め込んでください。

<!-- ▼個別ブログ用トラッキングコード▼ -->
<div id="book_pagerank">
<script type="text/javascript">
$('#book_pagerank').PageRank({
blog_id:1,
blog_url:'http://***.net/book/'
});
</script>
</div>
<!-- ▼全ブログ用トラッキングコード▼ -->
<div id="grand_pagerank">
<script type="text/javascript">
$('#grand_pagerank').PageRank({
blog_id:0,
blog_url:'http://***.net/'
});
</script>
</div>
※行頭に全角スペースが入ってます。コードをコピーする際には行頭の全角スペースを削除してから使ってください。

ポイントとしては、

  1. 表示先を #book_pagerank と #grand_pagerank というように分けていること。

  2. PageRank のパラメータの blog_id を、それぞれ 1( http://***.net/book/ 用 )、0( 全ブログ用 )に分けていること。
    ※全ブログ用の #grand_pagerank は CSS にて非表示( display:none; )を指定することを忘れずに ( ̄∇ ̄)b
    そうすれば個別ブログ用だけがランキング表示されます。

です。
ですが、実は先ほど jQuery 版に関しては最新のアクセス・ランキングスクリプト( ローテーションバージョン )を公開したばかりなんです。
http://bizcaz.com/archives/2009/03/15-174253.php

ついでですから、複数ブログのログを集計できるようカスタマイズしてみましょうかワクワク
今わたしが思いつく方法なら 1 つのトラッキングコードで、全ブログ用、個別ブログ用のログ収集が可能かも。
※とはいってもよく考えないとダメですけどねあせあせ

#184: Posted by @ March 15, 2009 [REPLY]
user-pic

>>183 bzbell さん、早速のご対応、ありがとうございます。
ランキング表示の解説ページは全て熟読したつもりで、ご指摘されたあたりかなあとは思っていたところです。
(同じ事に時間を割いていただき、すみません)グウグウ
ただ、今回、プラグイン版とこのページ(その4)で説明されている方法と両方、試してみて、プラグイン版の方はうまくゆかず、こちらの方がうまく表示できたので、こちらで処理を進めていたところです。
今回のアドバイスもプラグイン版が前提となっているようですので、まず、そちらをもう少しよく調べてみたいと思います。

ちなみにプラグイン版の方で疑問になるのが、解説されているパスが
js/jquery/pagerank/  だったり
js/pagerank/ だったり
js/ だったりするのですが、これは私の考え違いでしょうかキャハハ


>>ついでですから、複数ブログのログを集計できるようカスタマイズしてみましょうか
これ以上、お手を煩わせるのも気が引けますがそうしていただけると嬉しいです。
おそらく同じリクエストを持っている方は多いと思いますので・・・。
お時間のあるときにでも・・・。
まずはこちらで日をあらためて、もう少し頑張ってみます。エーン

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

>>184 羊 さん

> ちなみにプラグイン版の方で疑問になるのが、解説されているパスが・・・

すいません、統一した方が誤解がないですねあせあせ
要するにトップページから見た、pagerank/ フォルダまでの相対パスを指定して頂ければと思います。
たとえば、

トップページ: http://bizcaz.com/index.html
pagerank 設置場所(URL): http://bizcaz.com/js/jquery/pagerank/
だった場合、http:bizcaz.com/ からの相対パスを指定となると以下のようになります。
js/jquery/pagerank/

> おそらく同じリクエストを持っている方は多いと思いますので・・・。

羊 さんが使われてるサーバでは cron というものは利用可能でしょうか。
利用可能な場合すっごく楽に全ブログのログデータを一覧することができますワクワク

#186: Posted by からbzbellへの返信 @ March 15, 2009 [REPLY]
user-pic

>>185 bzbell さん
いつも早速のご対応、本当にありがとうございます。
いちユーザーにここまで親切に対応していただいて、頭が下がります。パチパチ

サーバーでcronは使えますので、有効活用したいと思っていたところです。

羊はもう眠りにゆきますし、理解がすぐには追いつかないので、bzbell さんもお時間のあるときでかまいませんので、よろしくお願いします。うぅ~ん

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

>>186 羊 さん

一応以下のページでカンタンに説明してますのでご確認ください。
http://bizcaz.com/archives/2009/03/16-013119.php#more

#188: Posted by mopre @ April 2, 2009 [REPLY]
user-pic

bzbell 様

参考にさせていただいて、なんとか自サイトにアクセスランキングを導入できました!

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

ちなみにお聞きしたいのですが、
ランキングに画像を使用することは可能でしょうか?

自サイトでは、<$MTBlogURL$><$MTCategory$>/<$MTEntryTitle$>/l.jpg という名前で、
共通のサムネイルを表示しています。

これをアクセスランキングで使用することは可能でしょうか?

お忙しいところ恐縮ですが、ご教授願えれば幸いです。

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

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

>>188 mopre さん

おはよございます^^

ランキングに画像を使用するのは可能です。
ただ、mopre さんがやろうとしてることは、ランキングの順位に限らずサムネイルを表示したい…ということだと思いますが正しいでしょうか。
それなら、以下のランキング・スクリプト( 最新版 )なら mopre さんのお好きなようにデザインすることができるのでもっと楽かもうぅ~ん

上記では JavaScript 内で取得したランキングログをお好みでマークアップすることができます。
その際に mopre さんのサイトデザインに合わせてタグに ID、CLASS をつけてあげれば良いと思います。

わからないことがありましたらご連絡ください。
今後ともどうぞよしなにぺこり

#190: Posted by mopreからbzbellへの返信 @ April 3, 2009 [REPLY]
user-pic

>>189 bzbell さん

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

>ただ、mopre さんがやろうとしてることは、ランキングの順位に限らずサムネイルを表示したい…ということだと思いますが正しいでしょうか。

ページにて紹介されていたものをデフォルトで使用すると、

<a href="リンク">エントリータイトル名</a> という形でアクセス数順に吐き出されると思いますが、
希望としては、
<a href="リンク"><img src="<$MTBlogURL$><$MTCategory$>/<$MTEntryTitle$>/l.jpg"></a>

というかたちでアクセス順に吐き出してほしいと考えています。

この場合は、

Prototype
http://bizcaz.com/archives/2009/03/20-220335.php

で実現できますでしょうか?

たびたびのご質問でたいへん恐縮ですが、ご教授いただければ幸いです。

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

>>190 mopre さん

おはよございます^^

  1. アクセスされたページとサムネイルの関連付け
    一番てっとり早いのは、ログ保存時にサムネイルの URL もいっしょに保存してしまう。
    修正ファイルは、prototype.pagerank.js と rank_post.php になります。

JavaScript と PHP のスクリプトの両方を変更する必要があります。
これが mopre さんの方でできれば実現できるのではないでしょうかにこっ!

#192: Posted by mopre @ April 4, 2009 [REPLY]
user-pic

bzbell様

ご返答誠にありがとうございます。

> 1.アクセスされたページとサムネイルの関連付け
一番てっとり早いのは、ログ保存時にサムネイルの URL もいっしょに保存してしまう。
修正ファイルは、prototype.pagerank.js と rank_post.php になります。

JavaScript と PHP のスクリプトの両方を変更する必要があります。
これが mopre さんの方でできれば実現できるのではないでしょうか


やっぱり一筋縄ではいかなそうですね。あせあせ

JavaScriptとPHPの知識がほぼ初心者なので、
今回はあきらめて、現状のアクセスランキングをうまくサイトに合わせる方法を考えてみます。

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

#193: Posted by かお @ April 13, 2009 [REPLY]
user-pic

お疲れ様です。
すいません、こちらでもお聞きします。あせあせ
何故か急にランキングの中にIPアドレスがまぎれてしまうように
なったのですが、やっぱりサーバのせいでしょうか??
カスタムでも青色吐息でなかなか頭を抱えてしまいます・・・
でも、こっちは諦めないようがんばるつもりですあせあせ
ご指導よろしくお願いします。

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

>>193 かお さん

こんばんわ^^

新しいバージョンのものは IP アドレスで保存してます。
変換などは行ってませんのでそれが正しい。何か問題ありますでしょうか。

#195: Posted by かおからbzbellへの返信 @ April 13, 2009 [REPLY]
user-pic

>>194 bzbell さん

どうも!この間はありがとうございました。

すいません、文章が下手であせあせ
ランキングに直接IPアドレスがはいってるんです。
たとえば

ランキング
一位の記事
二位の記事



十位の記事
softbannk.2…

みたいなかんじで最後にひとつだけ
リンクと一緒に貼りこまれているんです。
それでデータをノートパッドでみると
飛び飛びですが改行がはいったデータがありました。

スクリプトは特にいじってません。
コメントをみても同じ人がいないので
他の何かが影響してるのでしょうか?

ご指導よろしくお願いします。

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

>>195 かお さん

それはおっかしいですね。
いってん確認しますが、かお さんのサイトの TITLE 属性は以下のようになってますでしょうか。

<title>ページ名称…</title>

上記 TITLE 属性のテキストが既に改行されてる場合、そのような現象が発生すると思われまする。
※特に JavaScript 側で何の処理もしてませんので。
まずはご確認を。そして、改行されてる場合には改行しないよう対応して頂けたらと思いますもじもじ

#197: Posted by かおからbzbellへの返信 @ April 14, 2009 [REPLY]
user-pic

>>196 bzbell さん
おお!ガーン
確かに改行されてます!!
デフォルト状態だったのですがMTタグの改行も改行されるんですねー。
とりあえずまっすぐにしてみました。
後は明日のお楽しみです・・・ドキドキあせあせ

これでおkだったらもしかして新しいバージョンも・・・

#198: Posted by かお @ April 14, 2009 [REPLY]
user-pic

ありがとうございます!!
なおりましたしくしく
最小限しか知識がないので本当に助かります。

お世話様でした。

 Post a Comment

 

コメント用フィード