Trackback plugin for Textpattern
千呼萬喚始出來,txp 的 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 資料表新增兩個欄位,分別是 pinged 及 trackbacks_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 的部份就要等我有時間再改囉~


十月 28th, 2006 at 12:26 下午
懒懒猫你太伟大了,拥抱一下!
嗯,好像我有一点激动
现在 ftp 有点慢,今晚上我就装上:)
十月 28th, 2006 at 2:42 下午
接下來是…
關鍵字連結、文章閱覽次數、巢狀回覆
(整個習慣搬到txp…)
Table of content.(想做這個想很久了)
最後是 javascript….
哇~好像要很久耶:漢堡:
十月 28th, 2006 at 4:35 下午
“關鍵字連結、文章閱覽次數、巢狀回覆…”期待中。: )
小小建议,因为 textpattern 下已经有 lib 了,为了多数人的方便可以把 akismet.php、trackback_cls.php 的默认位置改到这个下面。
还有,快去论坛发一下吧,肯定有人等这个已经很久了。
十月 28th, 2006 at 7:12 下午
事实上,此前 TXP 的 TB Hack 也不是木有,而Team 很明确地说不希望支持这样的东西。不过中文区的 TB 环境还好,因此向官方发布可能得不到欢迎,“民间”宣传好了:)
十月 29th, 2006 at 7:25 上午
[...] Trackback plugin for Textpattern 向伟大的懒懒猫同学致敬! (tags: plugin Textpattern tools) [...]
十月 29th, 2006 at 1:19 下午
懒懒猫 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 语言版本不符合?
十月 29th, 2006 at 5:42 下午
:穿心: 詭異,明明都是用 txplib_db.php
你的卻找不到 safe_pfx()
這個函式的作用是:
如果你有替資料表設定前飾辭的話,它會幫你附加上去
位於 txplib_db.php 的 $DB = new DB; 的下1行
—–
這問題跟語系檔無關,事實上….
我使用 zh_tw:二葉草:
十月 29th, 2006 at 6:46 下午
妈妈呀,我好像还是,没看懂~~
不管先,有时间研究看看,顺便把Theme一起完善,暂时也不怎么急需。哈哈
我好像看你的新Theme啊 @_@
十一月 5th, 2006 at 5:06 上午
原来是4.0.3版本的问题,现在升级到4.0.4了就好了,哈哈
二月 25th, 2007 at 12:12 上午
您好,很喜歡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.
不知道是出了什麼問題呢?
謝謝您!