使用BoltWire的緣由
經由老貓的推薦,除了PmWiki,另外也測試了BoltWiki,測試幾天後覺得BoltWire真是個有趣的Wiki系統。順帶一提,老貓社長除了是出版達人外,似乎對Wiki也情有獨鍾,除了他先前發文大力推廣的TiddlyWiki外,他還想把網站改用BoltWire來建置呢。BoltWire有趣的地方是它的設計彈性十足,讓非程式人員也能很容易擴充,它像是樂高積木,只要你有足夠的創意,要把BoltWire網站設計成無敵鐵金剛或宇宙戰艦都悉聽尊便,而別的系統可能都必須透過外掛才能達成,如果你不熟悉PHP,要擴充系統是不太容易的。BoltWire把網站管理上的操作歸納成30多個Action,透過這些Action你就能建立新頁面或編輯或做設定,更方便的是這些 Action都是以Wiki頁面來輸入與管理的,只要學習了BoltWire的命令後,你就能自由變更或擴充。用實例說明會更清楚,下面是 BoltWire的編輯頁面(頁面名稱是action.edit)的Action原始碼:
[if auth write]! >>Edit Page<<
>>You are currently editing page:<< **{p}**
[if* set {?boltkey}]
[(preview boltcontent)]
[if*]
[form]
[box boltcontent cols=75 rows=20 gui=true][(source {p} replacetable=true post=boltcontent)][box]
[submit name=boltsubmit[] value=PREVIEW][submit name=boltsubmit[] value=SAVE]
[session if "equal '{=boltsubmit}' '>>PREVIEW<<' ? warn=Preview Mode."]
[session warn]
[session boltstamp {p}]
[session author {member}]
[session changesummary "Page edited by {=author}."]
[session boltsavedata author,changesummary]
[session boltedit '{=boltcontent}']
[form]
[else]<(forward {p}&action=blocked)>[if]
[if ! exists {p}]<(forward {p}&action=missing)>[if]
>>You are currently editing page:<< **{p}**
[if* set {?boltkey}]
[(preview boltcontent)]
[if*]
[form]
[box boltcontent cols=75 rows=20 gui=true][(source {p} replacetable=true post=boltcontent)][box]
[submit name=boltsubmit[] value=PREVIEW][submit name=boltsubmit[] value=SAVE]
[session if "equal '{=boltsubmit}' '>>PREVIEW<<' ? warn=Preview Mode."]
[session warn]
[session boltstamp {p}]
[session author {member}]
[session changesummary "Page edited by {=author}."]
[session boltsavedata author,changesummary]
[session boltedit '{=boltcontent}']
[form]
[else]<(forward {p}&action=blocked)>[if]
[if ! exists {p}]<(forward {p}&action=missing)>[if]
第8,9行是顯示預覽與儲存按鈕的指令,放在輸入區域([box]...[box])下方,若我們想在輸入區域上方也顯示這兩個按鈕的話,只要把這兩行複製在[box]上方即可,修改後的內容是:
[if auth write]! >>Edit Page<<
>>You are currently editing page:<< **{p}**
[if* set {?boltkey}]
[(preview boltcontent)]
[if*]
[form]
[submit name=boltsubmit[] value=PREVIEW][submit name=boltsubmit[] value=SAVE]
[session if "equal '{=boltsubmit}' '>>PREVIEW<<' ? warn=Preview Mode."]
[box boltcontent cols=75 rows=20 gui=true][(source {p} replacetable=true post=boltcontent)][box]
[submit name=boltsubmit[] value=PREVIEW][submit name=boltsubmit[] value=SAVE]
[session if "equal '{=boltsubmit}' '>>PREVIEW<<' ? warn=Preview Mode."]
[session warn]
[session boltstamp {p}]
[session author {member}]
[session changesummary "Page edited by {=author}."]
[session boltsavedata author,changesummary]
[session boltedit '{=boltcontent}']
[form]
[else]<(forward {p}&action=blocked)>[if]
[if ! exists {p}]<(forward {p}&action=missing)>[if]
>>You are currently editing page:<< **{p}**
[if* set {?boltkey}]
[(preview boltcontent)]
[if*]
[form]
[submit name=boltsubmit[] value=PREVIEW][submit name=boltsubmit[] value=SAVE]
[session if "equal '{=boltsubmit}' '>>PREVIEW<<' ? warn=Preview Mode."]
[box boltcontent cols=75 rows=20 gui=true][(source {p} replacetable=true post=boltcontent)][box]
[submit name=boltsubmit[] value=PREVIEW][submit name=boltsubmit[] value=SAVE]
[session if "equal '{=boltsubmit}' '>>PREVIEW<<' ? warn=Preview Mode."]
[session warn]
[session boltstamp {p}]
[session author {member}]
[session changesummary "Page edited by {=author}."]
[session boltsavedata author,changesummary]
[session boltedit '{=boltcontent}']
[form]
[else]<(forward {p}&action=blocked)>[if]
[if ! exists {p}]<(forward {p}&action=missing)>[if]
修改後將此頁面(action.edit)儲存後立即生效。BoltWire內建了完整的會員權限管理機制,能把特定的網頁或網頁群組鎖定起來,因此會比一般的Wiki系統還更適合架站。我在測試過程裡做的測試備忘記錄在此,有興趣的讀者不妨先看看,再決定是否也架個BoltWire來玩玩。
Welcome
Congratulations! BoltWire has been successfully installed on your computer! We have designed BoltWire to be easy to use, yet surprizingly powerful. We hope you like it! Before you can begin creating your new site, you may need to 註冊 a new account or 登入 to an existing account. For additional support, please visit our online resources–where you can get plugins and skins, glean helpful tips & tricks, report a bug, browse our developer's section, or read docs and tutorials. Better yet, join our mailing list and become an active part of our BoltWire community.Thank you for trying our software,
BoltWire Team