Trackback plugin for Textpattern

千呼萬喚始出來,txp 的 trackback 外掛。


增加一個新的管理頁籤

管理接收到的 Trackback
管理接收到的引用通告

文章編輯頁面增加發送 Trackback 通告欄位
文章編輯頁面增加發送引用通告欄位

Download:bat_trackback.7z (21K)

功能:
接收及發送 Trackback 及 Pingback
採用 Akismet 執行過濾 spam 的動作,在後台 Trackback 管理頁面裡標為廣告(垃圾留言)的項目會傳送資訊到 akismet,告知此篇 trackback 是廣告,當原本標記為廣告的項目再重設為審核或公開狀態的話,同樣也會告知 akismet 取消此篇 spam。
當然,因為加上 Akismet 過濾的關係,所以在廣告與非廣告之間的操作速度會稍微慢一點。


資料夾結構:
contents 裡面有兩個 class,分別是防 spam 用的 akismet 及發送 trackback 的 trackback_cls,不過 trackback_cls 有修改過,改成能發送 user_agent,及刪掉一些用不到的函式。

TxpRoot/contents/lib/
            akismet.php
            trackback_cls.php
en_us/
    bat_trackback_v0.1.txt
    bat_trackback_lib_v.txt
    en_us.txt
zh_tw/
    bat_trackback_v0.1.txt
    bat_trackback_lib_v.txt
    zh_tw.txt

/ contents /
整個資料夾放到 txp 根目錄
put this folder in your txp directory.

bat_trackback_v0.1.txt
定義四個標籤,及在必要的時間點載入函式庫
this plugin is used to handle loading libray, and defined four tags.

bat_trackback_lib_v.txt
這個外掛的函式庫。
library for bat_trackback.

zh_tw.txt | en_us.txt
語系檔
language file.

資料庫:
基本上外掛啟用之後就會自動建立 txp_trackback 資料表,用來存放接收到的引用通告。

txp_prefs 資料表會新增一個 bat_trackback_list_pageby 欄位,這是給管理頁面存取列表篇數用的。

textpattern 資料表新增兩個欄位,分別是 pingedtrackbacks_count。pinged 用於紀錄發送過通告的網址;trackbacks_count 用於紀錄文章所接收的通告總數。

標籤:
提供三個標籤其實是四個。
<txp:bat_trackback_rdf />
這個標籤放在網頁的 head 標籤裡面,用於產生 Auto-Discovery 的 RDF。
 
<txp:bat_trackbacks />
顯示文章已接收的 trackback 列表,在文章模型裡使用。
屬性:

slim
沒有預設值,設為 1 的時候只會列出日期與標題連結。不顯示摘要等資訊。
break
參考 TextBook,預設值是 li
class
參考 TextBook,預設值是 bat_trackbacks
wraptag
參考 TextBook,預設值是 ul
label
參考 TextBook,沒有預設值
labeltag
參考 TextBook,沒有預設值
anchor
Trackback 在站內的永久網址連結顯示的文字,預設是 #
time_format
日期的顯示格式,預設跟迴響的時間格式一樣,也可以自己設定。
參考 strftime()
gmt
gmt 時間

 
<txp:bat_trackbacks_count />
顯示文章已接收的 trackback 總數,在文章模型裡使用。
 
 
<txp:bat_recent_trackbacks />
列出站內最近期的引用

break
項目分隔標籤,預設為 li
class
css class,預設為 bat_recent_trackbacks
label
沒有預設值。
labeltag
沒有預設值。
limit
要列出的篇數
sort
設定排序,說明參考TextBook
wraptag
包覆標籤。

 
Trackback URI
這個因為使用簡單,所以我沒有設定標籤。
messy 模式下的引用網址是
<txp:permlink />&tb=1
有設固定網址的話就是
<txp:permlink />trackback/
 

Pingback
接收 Pingback 要先安裝 TXP 的 XML-RRC
之後依照這份說明 修改 rpc/TXP_RPCServer.php。
並在網頁樣板的 header 加入
<link rel="pingback" href="<txp:site_url />rpc/" />
 


另外必須聲明的是:後台管理頁面的代碼是改自 txp 的迴響管理頁面,而且拿掉了單篇編輯功能,只剩下列表編輯頁面。縱是如此,還是耗掉差不多 8k 的份量:炸彈:。

會有 contents/lib 這個資料夾是因為我習慣把佈景、函式庫等等都丟到 contents 裡面去,所以釋出的資料夾結構有點怪。

要改路徑的話,找到 bat_trackback_lib 開頭的 BAT_LIB
預設的定義是 txpath.`/../contents/lib`
txpath 代表 path/to/txp/textpattern

Akismet 的 API Key 也可以改成自己的

$akismet = new Akismet(hu, '75ce82c625dc');

75ce82c625dc 是我的 wp api key,換掉這組就可以了。

另外如果 trackback 所偵測到已去除標籤之內文的 http: 文字大於 5 個,會判定為待審核的 trackback。

不會接收黑名單及禁止的 ip 所發送的 Trackback 及 Pingback。
 
恩…剩下的,想到再說…

—-
阿!對了,從txp編輯頁面中所發送出去的是 trackback,pingback 的部份就要等我有時間再改囉~


10 Responses to “Trackback plugin for Textpattern”

  1. Di Says:

    懒懒猫你太伟大了,拥抱一下!

    嗯,好像我有一点激动

    现在 ftp 有点慢,今晚上我就装上:)

  2. Beata Says:

    接下來是…

    關鍵字連結、文章閱覽次數、巢狀回覆
    (整個習慣搬到txp…)

    Table of content.(想做這個想很久了)

    最後是 javascript….

    哇~好像要很久耶:漢堡:

  3. playpiggy Says:

    “關鍵字連結、文章閱覽次數、巢狀回覆…”期待中。: )

    小小建议,因为 textpattern 下已经有 lib 了,为了多数人的方便可以把 akismet.php、trackback_cls.php 的默认位置改到这个下面。

    还有,快去论坛发一下吧,肯定有人等这个已经很久了。

  4. Di Says:

    事实上,此前 TXP 的 TB Hack 也不是木有,而Team 很明确地说不希望支持这样的东西。不过中文区的 TB 环境还好,因此向官方发布可能得不到欢迎,“民间”宣传好了:)

  5. ourr » links for 2006-10-28 Says:

    [...] Trackback plugin for Textpattern 向伟大的懒懒猫同学致敬! (tags: plugin Textpattern tools) [...]

  6. Di Says:

    懒懒猫 orz

    报错了~~ 嗯,大概是这样的:

    “Fatal error: Call to undefined function: safe_pfx() in /home/bororod/public_html/weblog/textpattern/lib/txplib_misc.php(459) : eval()’d code on line 104”

    激活 bat_trackback 就会报错,此前以为我用 en(GB) 和你的 en(US) 不符,改过来还是不行

    -___-! 难道是我 host 的 php 语言版本不符合?

  7. Beata Says:

    :穿心: 詭異,明明都是用 txplib_db.php
    你的卻找不到 safe_pfx()

    這個函式的作用是:
    如果你有替資料表設定前飾辭的話,它會幫你附加上去

    位於 txplib_db.php 的 $DB = new DB; 的下1行

    
    //-------------------------------------------------------------
    function safe_pfx($table) {
    	$name = PFX.$table;
    	if (preg_match('@[^\w._$]@', $name))
    		return '`'.$name.'`';
    	return $name;
    }
    

    —–
    這問題跟語系檔無關,事實上….
    我使用 zh_tw:二葉草:

  8. Di Says:

    妈妈呀,我好像还是,没看懂~~

    不管先,有时间研究看看,顺便把Theme一起完善,暂时也不怎么急需。哈哈

    我好像看你的新Theme啊 @_@

  9. Di Says:

    原来是4.0.3版本的问题,现在升级到4.0.4了就好了,哈哈

  10. Sherry Says:

    您好,很喜歡Textpattern這個程式,但因沒有引用功能,所以一直沒有使用。
    看到您這個外掛真是喜出望外呀!
    裝上後,可以正常送出引用,但卻無法收到他人的引用。
    http://文章網址/trackback
    只有顯示:

    1

    The specified URI cannot be used as a target. It either doesn’t exist, or it is not a trackback-enabled resource.

    不知道是出了什麼問題呢?

    謝謝您!

Leave a Comment