Mark's Development Blog

Open Source? Open Mind!

Mark's Development Blog
Watch Timeline

整合 pLog 與 BBClone

Mark Wu 發表於 2005/05/06 21:23 · 靜態連結網址

苦候 MinstrelBlogStatistic 外掛多時,還是沒等到。所以只好先自力救濟了。

BBClone 自 0.46 之後就已經支援 UTF-8 的關鍵字顯示,所以從其他搜尋引擎或是網站連過來的關鍵字呢,會自動轉為 UTF-8 編碼,不會再是一堆的亂碼了,但是前提是你的主機必須支援 iconv 或是 mb_string。如果不支援呢?沒關係,你還是可以使用 BBClone,只是關鍵字可能還是會有亂碼出現。

另外,我也修改了原本的整合方式,1.0 版的整合可以完全適用於一般網址簡潔網址自訂網址,而二級域名的部分,我就不確定了,因為沒這樣的環境可以測試。

有興趣的人請依照下面的步驟來安裝:

  1. 到 BBClone 網站下載最新的 BBClone 程式,目前是 0.48a 版,記得要下載給 UTF-8 專用的版本。
  2. 把檔案解壓縮後,上傳到你的 pLog 安裝目錄下,例如 /plog/bbclone
  3. 首先要修改 /plog/index.php ,使得所有 pLog 的動作都會被 BBClone 記錄下來。把下面這一段程式,加到 SessionManager::init(); 這一行 (大概是第 30 行) 後面:

define("_BBCLONE_DIR", PLOG_CLASS_PATH."bbclone/");
define("COUNTER", _BBCLONE_DIR."mark_page.php");

if(!isset($_COOKIE["stats_cookie_nolog"])) {
$articles =& new Articles();
if(!empty($_REQUEST['articleId'])) {
$article = $articles->getUserArticle($_REQUEST['articleId']);
$pageName = $article->getTopic();
} elseif(!empty($_REQUEST['articleName'])) {
if(!empty($_REQUEST['blogId'])) {
$blogId = $_REQUEST['blogId'];
} else {
$blogs =& new Blogs();
$blogInfo = $blogs->getBlogInfoByName($_REQUEST['blogName']);
$blogId = $blogInfo->getId();
}

$article = $articles->getBlogArticleByTitle($_REQUEST['articleName'], $blogId);
$pageName = $article->getTopic();
} else {
$pageName = 'index';
}

define("_BBC_PAGE_NAME", $pageName);
if (is_readable(COUNTER)) include_once(COUNTER);
}

  1. 再來我們要修改 /plog/admin.php ,使得如果是網誌的擁有者自己點入的連結,就不做任何紀錄,以免自己灌水。把下面這一段程式加到,加到 SessionManager::init(); 這一行 (大概是第 25 行) 後面:

$session = HttpVars::getSession();
if(!is_null($session["SessionInfo"]->getValue("userInfo")))
setcookie("stats_cookie_nolog", 1, time()+60*60*24*30);

  1. 然後我們要修改 BBClone 的程式,讓他可以正確的轉換中文。修改 /plog/bbclone/constants.php ,把

下面的程式
$BBC_SEP = char(173);
改為
$BBC_SEP = "@@@@";

  1. 最後我們要修改 BBClone 連結的紀錄方式,讓他可以正確的紀錄被訪問的網頁連結。修改 /plog/bbclone/lib/marker.php

下面的程式
$REQUEST_URI = $this->filter_uri($filename, $PATH_INFO , $PHP_SELF);
改為
$REQUEST_URI = $_SERVER['REQUEST_URI'];

  1. 最後記得要把 /plog/bbclone/var 中的 *.inc*.php 權限改為 777.htalock 的權限改為 666 就可以了。因為這樣 BBClone 才有辦法把網頁紀錄寫入。

這樣應該就安裝完畢了。你可以透過 http://your-site/plog/bbclone 來看 BBClone 的統計頁面。

好!再來,就是如何使用 BBClone 所收集的資料了:

  1. 把下面程式剪下後,貼到文字編輯器上,另存成一個新的檔案,我們把它命名為 pluginbbclone.class.php。然後把它上傳到 /plog/plugins/bbclone 的目錄中。

<?php
include_once( PLOG_CLASS_PATH."class/plugin/pluginbase.class.php" );

class pluginBBClone extends PluginBase {
var $bbcloneHome;

function pluginBBClone() {
$this->PluginBase();
$this->desc = "Integrates BBClone stats into pLog";
$this->author = "Palantir, netpalantir@altervista.org";
$this->id = "bbclone";

$this->bbcloneHome = _BBCLONE_DIR;
}

function get($varName) {
require($this->bbcloneHome . "var/access.php");
return $access["stat"][$varName];
}
}
?>

  1. 把下面的程式貼到你的模版中,就可以顯示出你的參觀人數與人次了。

<!--Visitors-->
<h2> 訪客統計 </h2>
<ul>
<li>參觀人次:{$bbclone->get("totalvisits")}</li>
<li>參觀人數:{$bbclone->get("totalcount")}</li>
</ul>

完工!簡單嗎?其實是有點複雜。所以我把需要修改的檔案全都包在一起了放在這裡 plog-hack-bbclone-20050506.zip,請自行下載。記得喔,裡面只有我修改過的程式,你還是必須自行下載 BBClone 的完整程式。

真實引用網址:

http://blog.markplace.net/trackback.php?id=4

迴響 (15) · 引用 (5) 文章分類: 中年男子的碎碎念

迴響 ↓

  • 回覆: 整合 pLog 與 BBClone
    btfans  發表於 07/05/2005, 04:19

    正看到新版的 bbclone, 謝謝 Mark 整合....

  • mark's復活
    桑吉爾夫  發表於 07/05/2005, 04:45

    可惜第一篇被搶走了(不自覺的又回到a網的習慣),差點忘了這裡是blog
    oh~~~ya~~mark's重生了,趕快加入書籤

  • 回覆: 整合 pLog 與 BBClone
    btfans  發表於 07/05/2005, 04:56

    不知何故..下面的在 Linux Fedora Core 3 總是 hang 了..唯有放 bbclone 的 link!

    參觀人次:{$bbclone->get("totalvisits")}
    參觀人數:{$bbclone->get("totalcount")}

  • 回覆: 整合 pLog 與 BBClone
    btfans  發表於 07/05/2005, 08:02

    解決了..忘了下面歩驟:

    到 "外掛中心" refresh 一次,
    看見bbclone
    便成功。

  • 回覆: 整合 pLog 與 BBClone
    ajer001  發表於 14/05/2005, 06:08

    不好意思...想請問一下
    文章中..有另外一個圖案底色的那種效果
    要怎麼弄出來呢

    另外
    1.0之後的編輯器好像變簡單了
    有辦法加強嗎

    希望能幫我一下
    感激不盡

  • 那是用 blockquote
    Mark  發表於 20/05/2005, 00:30

    那是用 blockquote 的方式來做的,只要你用的模版有定義 blockquote 的 CSS,你就可以有這樣的效果。

    Mark

  • 回覆: 整合 pLog 與 BBClone
    阿駕  發表於 08/10/2005, 13:10

    回報一下

    sub-domain 部份也是正常的

  • 轉貼一下這篇教學 ^^
    Catseyes  發表於 09/11/2005, 03:59

    Mark 兄 ^^ 這篇寫的太好了!!

    我把他轉貼到我的 pLog 上去了...可以嘛!?

    當然 ^^ 原作者還是你囉!!!

  • 回覆: 整合 pLog 與 BBClone
    Tony  發表於 15/11/2005, 22:49

    Mark,

    每隔一段時間,我都會遇上這個問題? 目前有解嗎?

    Parse error: parse error, unexpected T_STRING, expecting ')' in /usr/local/apache2/htdocs/html/plog/bbclone/var/access.php on line 28

    Thanks!
    Tony

  • 請問這段是加到模板中的那一個檔案中呢?
    monster  發表於 24/11/2005, 07:27

    我是用grey的模板

    訪客統計

    參觀人次:{$bbclone->get("totalvisits")}
    參觀人數:{$bbclone->get("totalcount")}

  • 回覆: 整合 pLog 與 BBClone
    btfans  發表於 23/05/2006, 11:24

    整合 pLifetype 1.0.4 與 BBClone ?

    有人試過成功嗎?

  • 回覆: 整合 pLog 與 BBClone
    btfans  發表於 23/05/2006, 11:24

    整合 Lifetype 1.0.4 與 BBClone ?

    有人試過成功嗎?

  • 回覆: 整合 pLog 與 BBClone
    jay  發表於 11/07/2006, 23:32

    請問一下我做到前面所有步驟都成功,但是到要加入外掛,使它顯示在模板上出現嚴重錯誤,就是我在模板上有放上大頭貼,但是它似乎與檔案中心有衝突,當我開啟此外掛,檔案中心的資料就莫名的讀不到了,資料都在但是就是顯示不出來,請問這是什麼原因有得解嗎?

  • 請問
    ch  發表於 22/07/2006, 10:04

    參觀人次:
    參觀人數:請問這參觀人數是目前瀏覽人數還是今日累計人數

  • 回覆: 整合 pLog 與 BBClone
    ponpon  發表於 19/03/2007, 19:01

    我也有疑問,我掛上bbclone之後,authimage的圖片和檔案中心上傳的圖片就不見了,這是為什麼?和樓上的jay的問題一模一樣。要怎麼解決呢?感謝您的回答。