counterview.inc.php

サマリcounterプラグインでカウントしたすべてのページのカウントを表にする
リビジョン1.0
対応バージョン1.4.4
投稿者H2?
投稿日2004-12-18 (土) 01:47:06

counterプラグインでカウントしたすべてのページのカウントを表にする

ページごとのアクセス数を表にしてくれるプラグイン。#counterが書かれているページの各カウント数(total, today, yesterday)をテーブルにしてくれる。

使い方
#counterview
こんな感じ
ページ名トータル今日昨日
FrontPage43237
MenuBar854310
自己紹介23101

ダウンロード

コメント

  • 面白いプラグインですね。テーブル表示するページ数の指定と、トータル・今日・昨日それぞれでソートができると便利かも。 -- sagen 2004-12-21 (火) 15:36:26
  • 数字を右寄せをしたいのですが、可能ですか? -- 2005-01-12 (水) 23:12:05
    • 小出しですいません。以下の部分のstyle=\"text-align:right;\"を加えればOKです。-- baniko 2005-01-28 (金) 11:49:00
                  if(strcmp($ext, COUNTER_EXT)==0) {
                     $pageName = decode($fileName);
                     if(eregi('^:.*',$pageName)) continue;
                     $counter = plugin_counterview_get_count($pageName);
                     if($counter['total']==0) continue;
                     $r_page = rawurlencode($pageName);
                     $ret .= "<tr>";
                     $ret .= "<td class=\"style_td\"><a href=\"$script?$r_page\">$pageName</a></td>";
                     $ret .= "<td class=\"style_td\" style=\"text-align:right;\">{$counter['total']}</td>";
                     $ret .= "<td class=\"style_td\" style=\"text-align:right;\">{$counter['today']}</td>";
                     $ret .= "<td class=\"style_td\" style=\"text-align:right;\">{$counter['yesterday']}</td>";
                     $ret .= "</tr>\n";
                 }
  • 特定カテゴリ以下のページのみとか、そんな感じでページ指定ができると便利かも。 -- 2005-01-18 (火) 19:24:09
  • 閲覧できない設定のページに関しては、カウントを表示しないようにしたいのですが、:で始まるページのみ表示しないようにすることは可能なんでしょうか? -- 2005-01-20 (木) 12:34:19
    • とりあえず、:で始まるものを表示しないようにしてみました。また、WikiName等だけで、実体のないページ(total counter==0)のものも非表示にしてみました。(自分の好み) filecounterview.inc.php.2-- baniko 2005-01-28 (金) 11:26:00
    • このようにすると、$non_list を反映するようになりますよ :) -- teanan 2005-01-28 (金) 12:19:29
      16行目
        function plugin_counterview_convert() {
          global $script;
      +   global $non_list;
      
      45行目
                     $pageName = decode($fileName);
      -              if(eregi('^:.+),$pageName) continue;
      +              if(preg_match("/$non_list/",$pageName)) continue;
                     $counter = plugin_counterview_get_count($pageName);
    • ありがとうございます。無事、指定ページの除外ができました。 -- 2005-01-28 (金) 15:03:34
  • おお、いつの間にかVer.2 が出てる! 嬉しいです ☆ -- H2? 2005-02-05 (土) 18:27:59
  • カウンタが更新されないと、古い日付のカウンタも今日・昨日に表示されています。こんな感じのコードを足して使っています。 -- PHP初心者? 2005-02-24 (木) 19:31:59
    • もっとスマートなコードがあれば教えてください。
      68行目
            static $default;
      +    $today = date('Ymd');
      111行目
            fclose($fp);
      +    // 日付比較
      +    // カウンタ日付をyyyy/mm/ddからyyyymmddに置換
      +    $cdate = ereg_replace("/", "", $counters[$page]['date']);
      +    if($today - 1 == $cdate)
      +    {
      +       // 日付が昨日
      +        $counters[$page]['yesterday'] = $counters[$page]['today'];
      +        $counters[$page]['today'] = 0;
      +    }
      +    else if($today - 1 > $cdate)
      +    {
      +        // 日付が昨日より前
      +        $counters[$page]['yesterday'] = 0;
      +        $counters[$page]['today'] = 0;
      +    }
  • 表示させないページをパラメーターで渡すようにするともっと使い易そうですが(例えば 「日記」を表示しない等)、自分はプログラムがちゃんと書けないので提案しかできません…; -- ton 2005-04-08 (金) 09:03:06
  • ソート対応パッチ http://www.revulo.com/blog/20060503.html#p02 -- 2006-05-04 (木) 02:20:32
  • PHP初心者?さんの日付比較のパッチですが、月の最初の日(1日)だけ表示がおかしくなります。
    以下のように修正してみました。 -- matsuda? 2006-06-01 (木) 11:12:12
    // 日付比較
    $today = strtotime(date('Y-m-d'));
    $cdate = strtotime(str_replace('/', '-', $counters[$page]['date']));
    if ($cdate + 2 * 24 * 60 * 60 <= $today) {
        // 日付が昨日より前
        $counters[$page]['yesterday'] = 0;
        $counters[$page]['today'] = 0;
    }
    else if ($cdate + 24 * 60 * 60 <= $today) {
        // 日付が昨日
        $counters[$page]['yesterday'] = $counters[$page]['today'];
        $counters[$page]['today'] = 0;
    }

添付ファイル: filecounterview.inc.php.2 1748件 [詳細] filecounterview.inc.php 2096件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-08 (月) 16:50:38
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2018 PukiWiki Development Team. Powered by PHP 5.6.38-0+deb8u1. HTML convert time: 0.373 sec.

OSDN