2007年4月23日 星期一

PmWiki:顯示最近更新列表

最近讀了《資訊架構學》,覺得即使是Wiki,也可以構思如何將頁面以更豐富的方式呈現,比方加上最近更新的頁面。

原本 Site.AllRecentChanges 就有顯示所有更新過的頁面,但不方便自訂格式,像是去掉一些不想統計的頁面(例如*.RecentChange),所以自己來弄一個。做法相當簡單,只要用shell script找出wiki.d/下的更新時間即可,再將shell執行結果讀進自訂變數,由wiki page內文裡讀出變數的結果即可。由於做法太簡單了,我就沒找Cookbook裡有沒有類似工具,自己直接黑手做掉了。

修改local/config.php

最上面加入shell script取得更新列表:

function GetRecentUpdatedList() { $result = `ls -tl wiki.d | perl -ne 'print if ! /\.RecentChanges|\.AllRecentChanges|PmWiki\.|Site\.ActionLog|^total /' \ | perl -ane 'print " \$F[-4]-\$F[-3] \$F[-2] [[\$F[-1]]]\n";' | head -30`; return $result; } ... $result = GetRecentUpdatedList(); $FmtPV['$RecentUpdatedList'] = "'" . $result . "'"; #capture contents of $result

在wiki page裡讀出script結果

比方在Main.HomePage裡加上:

!! Recent Updated List {$RecentUpdatedList}

原理說明

這個做法的關鍵是使用自訂變數,參照PmWiki官網說明:OtherVariables,有使用自訂變數的範例。

沒有留言:

張貼留言