[Grok-dev] How to effectively reuse viewlets?
Martin Aspeli
optilude+lists at gmail.com
Sun Oct 18 06:37:09 EDT 2009
prinzdezibel wrote:
> I Martin,
> thanks for your reply. Could you please write down a sample snippet of code
> for your suggested solution. Because I tried to override the render method
> of the viewlet in my derived viewlet and got a ambiguous render method
> error, because my original viewlet is rendered from a template.
Viewlets are rendered by name. What I'm saying is, you do something like:
class BlankViewlet(grok.Viewlet):
grok.name('the-original-viewlet-name')
grok.viewletmanager(ITheOriginalViewletManager)
grok.layer(ISomethingSpecificToYou)
grok.context(ITheOriginalContext)
grok.require('zope.View')
def update(self):
pass
def render(self):
return ''
The key here is that you copy the directives from the original, but you
use a skin-specific layer to override it, then you make it render to an
empty string.
Martin
--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book
More information about the Grok-dev
mailing list