How to subclass an ATContentType in 7 Minutes(その1)

Ploneのサイトをのぞいていたら、こんな記事がありました。

しかもその中味は、ATDocumentをサブクラス化して、PageTemplate自体をコンテンツにする、というものです。

In this how-to we're creating an ATDocument derivate where content itself is a page template.

The Goal

I want to show how simple one can subclass from ATDocument. In this example we're replacing the text-body field of ATDocument by a ZPTField from TemplateFields. Yes, indeed, PageTemplates as content are evil. Thats the reason why I called the Product EvilZPTDocument.

ヘロヘロ訳:

目的

ここでは、ATDocumentのサブクラス化が、どんなに簡単にできるかを示してみたい。この例では、ATDocumentのtext-bodyフィールドを、TemplateFieldsのZPTFieldで置き換える。そう、確かにPageTemplate自体をコンテンツにするのは邪悪なことである。それが、私がこのプロダクトを EvilZPTDocument と呼んだ理由である。

確かにそのとおりなんですけどね。でも、TTWでなんでもできるZopeってもの自体がEvilなBlackMagicの塊なのであって、あまりZope3でお利口さんになられてばかりでは、やはり困ってしまう気もします。「水清ければ魚住まず」ということですね。

Zope3化してTTWでカスタマイズできなくなってきている中、これが使えるととっても便利そうです。この記事自体は、Plone3.0.xは適用外なのですが、やってみたらどうにかなるかも知れません。