के साथ सामग्री प्रकार टैगिंग का बेहतर तरीका मैं एक पठार अंडे में कई सामग्री प्रकारों के दृश्य पर लागू करने के लिए एक व्यूलेट चाहता हूं। क्या मैं कर रहे हैं ब्राउज़र/configure.zcmlएक सामान्य इंटरफ़ेस
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
i18n_domain="AnnualProgramModule.content">
<include package="plone.app.contentmenu" />
<class class="..content.programyear.ProgramYear">
<implements interface=".viewlets.IAnnualProgram" />
</class>
<class class="..content.institution.Institution">
<implements interface=".viewlets.IAnnualProgram" />
</class>
</configure>
के माध्यम से और मेरे Grok आधारित टेम्पलेट में मैं मार्कर इंटरफेस को लागू करने है:
from zope.interface import Interface
from five import grok
from plone.app.layout.viewlets.interfaces import IAboveContentTitle
from AnnualProgramModule.content.interfaces import IInstitution
grok.templatedir('templates')
class IAnnualProgram(Interface):
"""Marker Interface for AnnualProgram content types
"""
class AnnualProgramViewlet(grok.Viewlet):
grok.require('zope2.View')
grok.viewletmanager(IAboveContentTitle)
grok.context(IAnnualProgram)
class InstitutionViewlet(grok.Viewlet):
grok.require('zope2.View')
grok.context(IInstitution)
grok.viewletmanager(IAboveContentTitle)
यह काम करता है। लेकिन मुझे यह जानने में दिलचस्पी है कि ऐसा करने का एक बेहतर तरीका है या नहीं।