<div dir="ltr">Hello,<br><br>I need use several layout templates in same layer for z3c.pagelet-based browser views.<br>For this, in current project I did follow:<br><br>renderer.py:<br><br>from zope.component import getMultiAdapter<br>
from z3c.template.interfaces import ILayoutTemplate<br><br>
def layoutRenderer(self):<br> """Allow to use named layout templates."""<br> try:<br> name = self.layout_name<br> except:<br> name = u''<br>
<br> self.update()<br> if self.layout is None:<br> layout = getMultiAdapter((self, self.request), ILayoutTemplate, name)<br> return layout(self)<br> return self.layout()<br>
<br>So, a pagelet's code look like:<br clear="all"><br>from .... renderer import layoutRenderer<br><br>class Pagelet(object):<br> __call__ = layoutRenderer<br><br> ....<br><br>and usual pass the name into zcml-directive:<br>
<br><z3c:pagelet<br> ...<br> layout-name="narrow"<br> /><br><br>And layout-directive from z3c.template allow define name.<br><br>Summary, it quite convenient. But my proposal - let's add this feature into z3c.pagelet package.<br>
<br>-- <br>Ilshad Habibullin<br>Gadoz, Inc (<a href="http://www.gadoz.com">http://www.gadoz.com</a>)<br>
</div>