2009/03/30

Flash-style Banner

在 Plone 上直接於表頭區擺 flash 檔,是個不小的系統負擔,比較輕量的方法是利用 KSS 或 jQuery,或是借力於 Carousel
http://fjelleiligheter.no/ 可看到範例。
至於 zope.conf 裡 TimeZone 的設定方法能否成功,我得看到「錯誤訊息」,才能判斷可能的下一步。

2009/03/20

Make Plone3 Forms the easy way

plone.app.z3cform 能讓 Plone3 應用 z3c.form 來建立表單。在 Plone2 初期開始引用 Archetypes 工具建立表單,此方案過於複雜,不適合建立獨立而簡單的表單場合。另一個 zope.formlib 工具,也有人覺得 adaptability 與 widget 不足。

在架構上,最底層是 z3c.form,而 plone.z3cform 是 z3c.form 的介面,最後再由 plone.app.z3cform 提供 widget 與 utility 給表單開發者。使用 plone.app.z3cform 所建立的表單,原則上就等同於利用 z3c.form 在 Zope 3 環境裡所建立的表單,開發過程也可直接參考 z3c.form 的文件

更多範例可參考 http://plone.org/documentation/how-to/easy-forms-with-plone3 和 http://kayeva.wordpress.com/2008/07/16/using-z3cform-for-our-forms-in-plone

也可以 svn co https://svn.plone.org/svn/collective/collective.dancing/trunk/collective/dancing 查看 Singing & Dancing 的程式碼範例。

2009/03/07

Catalog to Speed Up Plone

在 Plone 資料夾裡呼叫所有的內容項目,會讓系統效能大受影響,非必得已,應降低這類的動作。早期 Plone 的導引清單因為設計還不成熟,成為效能殺手的主因之一,但隨著 Plone 2.1 和 ExtendedPathIndex 的問世,情況已大幅改善。

查詢目錄內容項目清單的方法有好幾種,但 objectValues() 和 contentValues() 則是最耗資源的兩種,應優先考慮改用 catalog 工具,範例如下:
 catalog = getToolByName(self, 'portal_catalog')
results = catalog.searchResults(
path = {'query' : '/'.join(self.getPhysicalPath()),
'depth' : 1 },
sort_on = 'getObjPositionInParent',
)
更多資訊可參考 http://plone.org/documentation/tutorial/richdocument/folder-listings