Posts for: #Zope

Web Framework


Ruby on Rail


紅很久了,以 Ruby 快速開發的架構

DjanGo


蠻新的,以 Python 開發

TurboGears


非常新,以 Python 開發

以上的架構,多是有自己的 Application Server,結合範本,也可以做到 MVC 的開發,也容易快速的結合 Ajax, 彈性都非常大,都可以快速開發 Web 應用,功力好,喜歡自己堆積木的同好,不要放過,對 Java 來說,真是很好的對應,Vgod ,有一則 blog,Rail v.s. J2EE 的圖,真的非常好笑,當然,Perl 的架構也是很多,看到 CPAN 就夠嚇人了,不過我自己對整合駱駝文並不太行,常常會頭暈,所以那一部分留給長輩說吧。

我自己則是比較喜歡 TurboGears,原因,大概就是,喜歡,CherryPy (櫻桃派),還有 SQLObject ,這兩個可是很有名的,也不是說 DjanGo 的方式不好,雖然他的成熟度稍高,也已有大型的實作,對岸,也有熱心的朋友 woodpecker.org.cn,不過,TurboGears 的開發腳步非常快,相信,很快 0.9 和 1.0 stable 的發佈應該也不會太遠。

Django, Or why I chose it over turbogears and ruby on rails

TurboGears, or why I chose it over Django and Ruby on Rails

Zope 下的內容管理系統


CMS (Content Management System)


Zope 一用好幾年了,現在已經有好幾套內容管理系統可用,有時會讓很多人不知道如何選用

Zope 的 CMS 大多是基於 CMF 的框架上,再繼續發展,所以有一定的相依性,不過這是好也是不好,Zope 和 CMF 是不同的專案,這樣增加了彈性,不過卻也讓新版的 CMF 永遠必須比 Zope 慢,像這一次 Zope3 是比較大的改版,CMF 要好一陣子才能跟上來,對專案的開發不利,比如說你的專案是相依在 CMF 上,那就算是 Zope3 出來了,你可能還要苦等 CMF Zope3 的版本很久,如果您的專案是相依 CMF 及 Plone 的話,那你可能要等更久,這都是讓開發人員不喜歡的,可能以前作過的都要重新作了。就像是 Zope3 出來到現在,不知道要多久,她的 Product 及成熟度才可以和 Zope2 相同。

好吧開始說 CMS 了

Plone 算是在台灣最有名的,不過從 2.1 的版本後,他的內容就都是用 Archetype 了,不再是 CMF 的內容元件了,也就是說以後相依性,要加 Archetype ,而且在升級時,如果自己裝了很多的產品,或是客製太多的內容,都會造成一定的難度,要自己 patch 升級的程式,這對不是開發人員的使用者來說是個難題。

CPS 網頁的內管理系統,架構於 Zope 與 CMF 上,適合於內容網站,或是企業內部或是外部的站台

Silva 也是一個內容管理系統,內容均以 XML 的格式儲存

CPS 和 Silva 應該都是基於 CMF 比較多的,但是目前中文的支援都比較不好

感言


效能還是蠻重要的,好像目前在大型的站台的運用,除了 Cache 還是 Cache,這對一些個人化的服務是一個缺點,一旦沒有太多的經費加伺服器,然後線上人數很多時,在沒有 Cache 的狀態,反應時間有一點點難過。

Zope 的發展,到了 Zope3 真的是變很多,如果各家 CMS 的產品也都可以共用不知道有多好,要是可以集合各家的專長和力量,一定可以做出更可怕的東西。

不過以 Plone 為基礎來開發,已經是很強的系統了,讓使用者有很多不同的體驗,也有許多其他的架構所沒有的優勢及彈性,在介面上 web,webdav,ftp,plonedesktop 還有 external editor 都是很好用的,這樣的內容管理系統也是很夠用了,不過還是希望可以再進步。

FSPhoto patch

話說前一陣子用了 FSPhoto ,後來發現不能用 FTP 的方式上傳,有點美中不足,所以又激起了找 bug 的鬥志,嗯,這是新舊 diff 的內容,請慢用,真的好短,不過我追了很久,真是太遜了。

FSPhoto


簡單的 FSPhoto


架構相單精簡,也沒有太多的功能,沒有像 ZPhotoSlides 那樣有許多的功能,但是可以將圖片放在檔案系統上,不會讓您的 ZODB 一下就佔用很大的空間,最重要的是,圖片可以全用 Apache 來處理,減輕 Zope 的負擔,也不失為一個簡易又輕便的解決方法。

注意事項:


如果是用較新的 Archetypes ,請將 FSPhoto 套件中,FSImageField.py 檔案中的 has_pil 改成 HAS_PIL,在檔案系統建立 /var/www/photos 這一個目錄,再將目錄的擁有者改成 Zope 的程式執行者,再來要用 Apache 來送檔案的話,就在 Apache 的設定檔中用 Rewrite Rule 來設定就可以了。

相關資料:


CMFPhoto

CMFPhotoAlbum

PloneRealtyAlbum

FSPhoto

ZPhotoSlides

CMFMailadd 0.2 Alpha Release


短命的 CMFMailadd 0.1 Alpha


說起來真是丟臉,試一下發現,01 版的預設型態是 News Item 時會有問題,趕快解決。

其實預設型態必須有 edit 這一個 method,而且我是用下面的方式修改內容:

entry.edit(text_format=‘structured-text,text=entry_body)

下載 CMFMailadd 0.2

詳細說明


詳細說明請見 CMFMailadd 01 Alpha Release

CMFMailadd 0.1 Alpha Release


CMFMailadd 出生了


在網路上一直找不到和 COREBlog 一樣可以 Moblog 的功能,來讓 Plone 用,只好自己花一些時間自己生嘍! 主要的一隻程式才 336 行,不知道這麼短的程式,我同時會生多少 bugs,有興趣的人就用用看吧! 說實在,CMFMailadd 又讓我的懶人 blog 向前邁一步,除了可以用傳統瀏覽器,ftp,或是 webdav 的方式加入新內容,現在也可以用 Email 的方式了,尤其是有些手機已經可以直接發 email,雖然手機上沒有 Emacs 或是 Vim,不過也不失為一個克難的方法,真是 “科技始終來自於人性”,我真是夠懶了。 :o)

這個工具完全是以方便性大於安全性作考量,用來收信的 pop3 帳號,最好不要給 shell 的權限。

主要功能


您可以設定一個 pop3 帳號來讓 CMFMailadd 收信,如果寄件者的郵件地址,是會員的郵件地址,同時該地址也在 CMFMailadd 容許的郵件地址清單中,那麼這一封信的內容就會用 CMFMailadd 的預設型態加入該郵件地址對照的會員資料夾中,或是依照設定的資料夾,不會自動轉換郵件和網站的字元編碼,也不會判斷重複附加檔案的名字。

使用方法:


將 CMFMailadd 放到您 Zope 的 Products 資料夾下,解壓縮,重新啟動 Zope,在到您 Plone 的設定介面下,選 “新增/移除產品”, 就可以看到 CMFMailadd 可以點選安裝了,安裝後,用 Zope 的管理介面看,在您的 Plone Site 的根目錄下,有一個叫 portal_mailadd 的工具,設定一下 property 就可以了,這一個工具下,有一個 recieve 的 method 可以去收信,完整的 url 可以點一下 Overview 那一項,下面有寫,可以用排程的工具去執行,像是設定 cron job 的方式,去觸發執行這一個 URL。

用 wget 去觸發的 example:

wget –http-user=username –http-passwd=password http://localhost/Plone_Site/portal_mailadd/receive

property 說明

  • folder: 資料夾的名稱,這樣信件的本體就會加到寄件者會員的家目錄下的folder,空白代表直接加入家目錄

  • file_folder: 附件資料夾的名稱,這樣信件的附件就會加到寄件者會員的家目錄下的 file_folder,空白就加入家目錄

  • default_content_type: 預設的資料型態 (Document 或是 News Item)

  • mailadd_host: POP3 帳號的主機名稱或是位址

  • mailadd_user: POP3 登入帳號名稱

  • mailadd_passwd: POP3 帳號密碼

  • mailadd_email_addr: 加入可以寄信的郵件地址,請用英文逗點隔開一個以上的地址 “,"

  • workflow_action: 預設郵件加入後的狀態,也就是 Plone 中的流程(workflow),如 submit, reject, publish ….

  • body_separater: …..


備註



  • 我的測試環境是在 Zope 2.7.5,Plone 2.0.5

改了 CMFTrackback 可以在 Plone 2.0.5 運行


CMFTrackback


一開始這一個套件只有在 Plone 1 才可以運行,看了 tcc 前輩用的不錯,還有就是它的架構相當的簡單,
有點像是 CMF / Plone 下的 talkback,原來作者的文件是日文的,看看 source code 就生出來這個版本,
想要和原作者聯絡,可是我的 adsl ip,一直被擋住,信無法寄到原作者,只好放在 Zope 的官方網站上了。

有了 CMFTrackback",基本上就可以讓你 Plone 上的元件有搥背(trackback)的功能。

修改


是由原作者的 CMFTrackback_0_2 版開始修改,目前我改到 CMFTrackback_0_3_4 版本。

  • 加入可以直接用 plone quick install 的介面。

  • 加入 delete trackback 的功能。

  • 不必一定要 pykf 這一個 module


下載位址


原作者的網頁 Link

我修改的新版本,我是在 Plone 2.0.5 上測試

Zope terryh homepage

換成 Plone


我先自首


我實在是太善變了,原本用 COREBlog 的系統才沒有一個星期,我就不滿意她的擴充性,也覺功能不多(但是夠用),自己非常的貪心,又看到使用 ZopePlone 相當有經驗的 TCC 前輩網站後,在參考前輩網站的詳細解說及範本後,在電腦螢幕前奮戰幾天,現在新的架構誕生,是架構於 Plone 上的,也作了些許的修改,修了一些在Plone 上 Default Page Template 的蟲,也發現一些,再學 TCC 前輩的網頁 Index 接下來有時間要記得寫一篇有關這些的客制化的細節,免得自己會忘記,現在大概剩下 “搥背” 的功能要再想想辦法了。

目前可以用 CMFTrackback ,不過要作修改才可以在 Plone 2 上使用。

先簡述有那些修改


大約有

  • discussion_reply

  • discussion_reply_form

  • discussionitem_view

  • viewThreadsAtBottom


自己加的

  • portlet_recentreply

  • portlet_static

  • ploneCustom.css

  • base_properties

  • script,for recatalog discussion item,解決 Discussion Item, 在 Clear Catalog 後重建,後找不到的問題

  • script,for 導覽欄下面的 “索引”

  • 重建 portal_catalog 下的 plone_lexicon 換成用 CJKSplitter

  • 小改一下 Products/CMFDefault/Document.py,4 ~ 8 lines

  • 小改一下 DateTime/DateTime.py,1 line

  • DebianZope 2.7.2,"Plone 2.0.5Archetypes 1.3.1-finalCJKSplitter