def renderBlockProvider(self, context): #logger.info('sl viewlet renderer not cached') view = self block = context request = self.request blockconf = IBlockConfig(context) name = blockconf.viewlet_manager #Paragraph is our example, this content type has no ViewletManager #so it should use simplelayout.base.block default = 'block' prefix = 'simplelayout.base' #first time we have to generate the viewletManager name. #so we have the possibility to change the manager later. if name is None: #now build the viewletManager name from given prefix and #block.__class__.__name__ (ClassName) name = '%s.%s' % (prefix, block.__class__.__name__) blockconf.viewlet_manager = name provider = None counter = 0 while provider is None and counter < 10: provider = zope.component.queryMultiAdapter( (block, request, view), cp_interfaces.IContentProvider, name) counter += 1 if provider is None: name = '%s.%s' % (prefix, default) #if provider is still None if provider is None: return 'Something is wrong - pls debug' addTALNamespaceData(provider, block) provider.update() return provider.render()