2010/08/22

Ploneboard 2.1 with Plone 3.3.5

雖然 Plone 4.0 近期就要正式問世,最近還是先搭配 Plone 3.3.5 安裝了 Ploneboard 2.1b2。執行 buildout 安裝過程沒問題,但在 quick install 過程遇到 AttributeError: portal_placeful_workflow 的錯誤訊息,原因在於 CMFPlacefulWorkflow 是它的相依模組,但沒有自動隨之啟用,解決方法很簡單,就是手動先把 CMFPlacefulWorkflow 啟用,再啟用 Ploneboard 就行,這個動作也會順便把 SimpleAttachment 啟用。正式的解法已寫成 trunk,訊息翻譯的成果也要放在這裡。
http://lh3.ggpht.com/_BESgcgeL9eA/THEo2QMMneI/AAAAAAAACRo/mKHhjQ2BD2o/s800/ploneboard01.png
選擇想要新增討論區的目錄,以首頁為例,從新增項目的下拉選單找到 Message Board。
http://lh5.ggpht.com/_BESgcgeL9eA/THEo2408f-I/AAAAAAAACRs/PNZtm9y0Fpc/s800/ploneboard02.png
設定討論區的基本資料,包括標題、摘要描述、分類關鍵詞等。
http://lh3.ggpht.com/_BESgcgeL9eA/THEo274-6II/AAAAAAAACRw/2sdOyNzuOyg/s800/ploneboard03.png
討論區的基本樣貌已經具備,接著,點選 Add Forum 就可新增討論板。
http://lh4.ggpht.com/_BESgcgeL9eA/THEo263Lf5I/AAAAAAAACR0/gO-X4akuGfg/s800/ploneboard04.png
設定討論板的資料,包括標題、摘要描述、分類關鍵詞、附件檔案最大數量等。
http://lh5.ggpht.com/_BESgcgeL9eA/THEo3PhfBII/AAAAAAAACR4/OhFSUuKJkeo/s800/ploneboard05.png
討論板的預設狀態是 Requite membership to post,表示註冊會員在登入系統後才能張貼討論文章,新的討論主題稱為 conversation。
http://lh3.ggpht.com/_BESgcgeL9eA/THErS9miToI/AAAAAAAACSU/7PKQ4d3y59U/s800/ploneboard06.png
設定討論主題的資料,包括標題、內文、附件檔案等。
http://lh6.ggpht.com/_BESgcgeL9eA/THErS67Vr1I/AAAAAAAACSY/2C6E3nnqO24/s800/ploneboard07.png

2010/08/16

bzr Tip: These branches have diverged

Bazaar 是搭配 Launchpad 所用的管理工具,屬於分散式版本管理方式,由 Canonical 公司支援發展。
最近使用 bzr 2.0.1 的經驗,遇到 "bzr: ERROR: These branches have diverged. Use the missing command to see how. Use the merge command to reconcile them." 訊息,有撇步表示可以使用 bzr pull --overwrite 指令,再把 patch 重新擺回去。

2010/08/08

Plone Theme Resource Customizer

想要更換 Plone 網站的 logo 或 CSS 設定值,傳統方式是到後台介面 (也就是 Zope Management Interface, ZMI) 進行設定,現在由前台介面 (也就是 Plone Site Setup) 也可以搞定了。

安裝 plone.app.themeeditor 後,原本要到 portal_skins 或 portal_view_customizations 才能編輯的佈景主題資源檔案,現在都可以在 Plone Site Setup 裡統一進行修改,操作方式請見教學影片,甚至可以搭配 windmill 進行測試工作

2010/08/05

How Sahana Eden Uses Launchpad

幾天前看了 launchpad 的介紹,網頁講得像是天下無敵,因此就問 Fran 有打算完全使用 launchpad 來開發嗎? Fran 表示 launchpad 的 branch 支援很棒,但 ticket 並不能搭配 branch 來排序,如果 branch 數量不多是夠用,但 branch 數量多時,就亂到難以管理。
因此 Sahana Eden 目前只使用 bzr 及 launchpad 來管理 branch,但使用 trac 來管理 ticket,另外 trac 本來就有 wiki 能整理文件。
還有一點,Eden 借用 lauchpad 的 BluePrint 概念,但直接在 trac wiki 上撰寫 BluePrint。
或許日後 launchpad 會改善上述的排序問題,

2010/06/16

Setting Random Times with zope.sendmail

This is an abstract from How to add a random time between two emails sent from zope.sendmail.

需要搭配 Plone 架設 newsletter 的場合,可以使用 collective.dancing,它能夠管理訂戶資料,並利用 zope.sendmail 協助自動發信。如果訂戶數量過大,批次發信可能會被列入黑名單,此時,試試設定亂數時點,來處理這樣的問題。方式是撰寫 plone.smtp 程式碼:
import random
import time

from zope.sendmail import mailer

class SMTP(mailer.SMTPMailer):
"""Override SMTPMailer to let a random time"""

def send(self, fromaddr, toaddrs, message):
time.sleep(random.uniform(0,2))
super(SMTP, self).send(fromaddr, toaddrs, message)

2010/06/07

Tips on LeadImage and Folder View

Folder 預設的標準顯示方式,如果覺得單調,想要增加圖示,可以藉助於 Content Lead Image



使用 buildout 新增擴充模組的方法,就可以安裝 collective.contentleadimage,在 Site Setup 裡可以指定使用 lead image 的 content type,包括 Folder。指定後,在 Folder 的 display 選項裡,就看得到 Folder lead-image view。

如果逐行顯示目錄的方式,還是覺得單調,想要改成兩欄式,可以在 ploneCustom.css 裡調整 vevent 的 class 設定值。
.vevent {
float: left;
height: 137px;
width: 42%;
margin-left: 4em;
}
如果發現 History 的位置亂掉,可以到 ZMI portal_view_customizations 修改 plone.belowcontentbody.contenthistory (zope.interface.interface-plone.belowcontentbody.contenthistory),在上方新增一行:
<div class="visualClear"></div>
以上是 Through The Web (TTW) 的修改方式,如果要在程式碼裡調整,可以參考 Plone Manual dynamic views 的說明

2010/05/24

Developer Options for Plone 4

從 Plone 4 beta 版本開始,buildout.cfg 裡關於
開發者的設定值,被獨立放在 develop.cfg 檔案裡,如此一來,paster 和 ZopeSkel 之類的工具,預設就不會馬上安裝,要額外執行指令,才會安裝開發工具:
bin/buildout -c develop.cfg
安裝開發工具後,還可以測試寄送通知信的工作,這類開發測試的工作獨立出來後,可以進一步簡化一般使用者的安裝步驟。