2009/10/19

Content Type Workflow Configuration



workflow 是一種 state machine,在 Plone 系統的脈絡裡,就是指 content type 生命週期裡的可能狀態。Plone 預設提供完整的 (role-based) workflowcontent rule 功能,是開放源碼 CMS 裡少數具備這項特色的產品,藉由 workflow 和 content rule 的支援,我們可以針對 content type 或目錄各別指定工作流程或自動化程序。


進入 ZMI 的 portal_workflow 可以從 Contents 頁籤查看既有的工作流程項目,除了預設啟用的 simple_publication_workflow 之外,還有 one_state_workflow 和 intranet_workflow 等。


舉例來說,想讓新建的文件馬上對外公開,可採用 one_state_workflow 設定值,因為它只有 public 一種狀態。

在 Workflows 頁籤可看到預設 (Default) 的指定值,和 type 與 workflow 的指定列表。


舉例來說,想要把 News Item 設定成 one_state_workflow 工作流程,就把 (Default) 改為 one_state_workflow 按 Change 鈕,再按 Update security settings 確認更新的動作。

2009/10/14

Embed Gmap HTML Code in Plone

想在 Plone 預設的 kupu editor 裡嵌入 Gmap HTML 內容,先到 Site Setup 裡 HTML Filter 項目。

設定內容的下方 Custom tags 新增 iframe 並儲存。
從 Google Map 找到的地圖,左上方選項 Link 裡的 Paste HTML to embed in website 複製內容,嵌入到自己想要的內容位置。
另外像 flickr, youtube 的內容嵌入原理類似。

2009/10/07

Plone Navigation Tree Tips

Plone 的 portlet 包括 navigation (稱為導覽) 的項目,預設會指示正在閱讀的文件位置,如果想要控制位置顯示的細節,文件 How to hide an item from the navigation tree even it is the current item 介紹 Plone 2.5 環境的技巧,想在 Plone 3.x 環境完成類似的效果,方法很多種,文件 How to really exclude from navigation 裡有介紹範例。

2009/10/03

Plone Developer Manual

之前要讀 Plone 技術文件,會從 Plone Core Developer ReferenceArchetypes Developer 找起,現在多了一篇 Plone Developer Manual。這份新手冊的目標,就是要統整並取代舊有散落各處的文件
目前還是草稿階段,最早是由 Mikko Ohtamaa 帶頭發起,並讓社群協力維護
我最關心 Sessions and cookies 的章節,它應該可以處理 PlonePAS 整合 PHP 應用軟體的議題,而且還得繼續學習 HTTP 資料傳輸的底層原理。

2009/09/24

Changing Tabs in Plone

在 Plone Site 根目錄 (root folder) 所建立的項目,例如 (id = about, title = 認識協會) 目錄,它會自動以 tab 型式出現,就像下圖裡的 1。 http://www.contentmanagementsoftware.info/plone-book/navigation/plone-site.png
讀取各別文章時,會有 You are here: 的提示,如圖裡的 2。左方可以有 navigation portlet 導覽視框,如圖裡的 3。

我們也可以讓新增的項目,不要"自動"出現在 tab 位置,方法是從 Site Setup 點選 Navigation Setting 導覽設定,取消"自動產生"的設定值

完成上述的設定調整後,除了"首頁"之外,其他 tab 都不會自動出現。

接著,想再把"認識協會"加回 tab 位置,先進入 ZMI 到 portal_actions/portal_tabs 畫面,從右上方選 CMF Action 來新增

ID 欄位填 about。

http://lh4.ggpht.com/_BESgcgeL9eA/SsB-EugJnJI/AAAAAAAABJ4/DRt3vUUZauI/s800/cmf-action.png

再點選 about 進去填其他詳細資料,注意到 Permissions 欄位選擇 View,而且 Visual? 要勾選生效。

http://lh3.ggpht.com/_BESgcgeL9eA/SsB-E6br48I/AAAAAAAABJ8/YE0V5bccI9w/s800/portal_tabs-config.png

至此,我們在 portal_tabs 裡有兩個 CMF Action,分別是 index_html 和 about,還可以用 Up / Down 或 Top / Bottom 來控制順序。

http://lh5.ggpht.com/_BESgcgeL9eA/SsCB4hAu_jI/AAAAAAAABKA/xKQ8He2MfBc/s800/cmf-action-position.png

想要讓某個 tab 未登入前看不見,登入後才看得到,要在 Condition 欄位裡填 python: member,想要讓某個 tab 只有管理員才看得到,要在 Condition 欄位裡填 python:portal.portal_membership.getAuthenticatedMember().has_role('Manager')


以上說明參考自 http://plone.org/documentation/how-to/changing-tabs

2009/09/11

CMS Showdown for NPO

CMS Showdown for NPO 是個網站改造的觀摩賽,構想仿自「全能住宅改造王」,由 charlesc 開頭籌辦,招募 NPO 團體報名,訪談 NPO 的需求,最後由 Joomla, Drupal, Plone 組隊實作,並在 ICOS 2009 裡舉行。

其中的 Plone 隊伍來自日本 CMS Communications Inc. 成員,隊員介紹如下:


* 寺田學 (Manabu Terada)
o CMS Communications Inc. 總經理,過往十年工作領域在電子工程及系統工程,五年的 Zope/Plone 開發經驗,是日本 Zope/Plone 社群主要成員。現居千葉縣。
o Twitter: http://twitter.com/Terapyon
o Plone site show case (2009): http://www.osaka-u.ac.jp/ http://www.asean.or.jp/


* 永井孝 (Takashi Nagai)
o CMS Communications Inc. 首席工程師,開發 Zope/Plone 及 Google App Engine 應用程式,亦研究遠距學習系統。
o Website: http://ngi644.net/blog/


* 足立健誌 (Takeshi Adachi)
o Scient UX Inc. 設計師及網站顧問,大學畢業後到美國洛杉磯學習平面設計,2002年回到日本大阪任職網站設計工作,五年的網站設計經驗,專長是使用者操作經驗的改善。興趣是吉他、貓、電影。
o Blog: http://www.thinkcreative.jp/blog/
o Google Profile: http://www.google.com/profiles/takeshi.adachi


* 宮本加奈子 (Kanako Miyamoto)
o 自由工作者,專長是 (X)HTML/CSS 程式設計。興趣是吹奏薩克斯風。
o Website: http://balanced.jp/
o Twitter: http://twitter.com/ayaxx


* 渡邊あや (Aya Watanabe)
o 自由工作者,日本網站設計社群 WebSig24/7 主要成員,專長是視覺設計,HTML 及 FLASH 程式設計。
o Website: http://balanced.jp/
o Twitter: http://twitter.com/ayaxx

2009/08/28

Display Portlets Where You Want

在 Plone 裡 portlet 通常只顯示在網頁畫面的兩側,如果想要任意調整 portlet 的顯示位置,利用 ContentWellPortlets 模組是個方式。
測試這模組的最簡易方式,是先下載 Plone 最新版 Windows Installer,假設安裝在 C:\Plone 目錄,它會提供一個 Plone Controller 來管理系統的啟動和關閉。

可以先不急著啟動它,到 C:\Plone 目錄裡利用文字編輯器打開 buildout.cfg 設定檔,如果你完全不清楚文字編輯器的用途,那麼就用 WordPad 打開這個設定檔。

找到設定檔裡的 [instance] 區段,它會包含一個 egg = 的設定項目,在 = 等號之後,就是要指定 Products.ContentWellPortlets 的設定值,完成後的內容類似下列所示:
[instance]
...
# If you want Zope to know about any additional eggs, list them here.
# e.g. eggs = ${buildout:eggs} my.package
eggs =
${buildout:eggs}
Products.ContentWellPortlets

儲存上述設定檔案,再打開 CMD.exe 到 C:\Plone 目錄,執行 bin\buildout 指令。

順利讓 buildout.cfg 的設定值生效後,系統已自動完成 ContentWellPortlets 的第一步安裝。
再啟動 Plone 系統,到 Site Setup 裡的 Add-on Products 把 ContentWellPortlets 啟用。

ContentWellPortlets 生效作用後,從網站首頁畫面看得到 Add, edit or remove a portlet above the content 字樣,點選進入後,會出現 portlet 的設定畫面。

例如在 Column A 的 Add portlet... 裡新增一個 RSS Portlet,設定 Title 為 BBC News,填入 URL of RSS feed。

同樣地,也可以從 Add, edit or remove a portlet below the content 進入設定。