2011-07-21 19 views
3

私は非常に多くの敏捷性コンテンツタイプを作成しています(zopeskel.dexterity devs !!ありがとうございます)、私はそれらを異なるコンテンツタイプ(検索、コレクション...)にする必要があっても、それらは均等にレンダリングされます。異なるコンテンツタイプに同じテンプレートを再利用する

異なるコンテンツタイプに同じテンプレートを再利用する方法はありますか?

[OK]を、私はそれを働かせたが、それは正しいアプローチだ場合、私は思ったんだけど:

from my.product.parent_type import IParentType, ParentType, TwoColumnsView 

... code omitted ... 

# Common folder for templates 
grok.templatedir('parent_type_templates') 

class SameTwoColumnsView(TwoColumnsView): 
    grok.context(CustomClass) 
    grok.require('zope2.View') 

    grok.template("twocolumnsview") 

任意の考え? どのようにコンテンツタイプ間でテンプレートを再利用しますか?

答えて

6

このためのインターフェイスを作成します。

from zope.interface import Interface 

class ITwoColumnViewable(Interface): 
    """Can be viewed in a 2-column layout""" 

あなたは、あなたの様々なコンテンツタイプにこのインターフェイスを割り当て、およびタイプに代わり、直接そのインターフェイスのビューを登録します。

class SameTwoColumnsView(TwoColumnsView): 
    grok.context(ITwoColumnViewable) 
関連する問題