Interesting.. Let me see if I have this right. In your controller you are either setting c.layout_template if you want to use a layout or None if you don't.. Then you pass the layout variable into an application template and conditionally render it around the template.
If I'm correct.. I feel like an unfortunate downside of this approach is having to include that conditional layout code in every template. I think we should be able to create layouts automatically like rails does. Either we have an entire site layout or layouts by controllers. Or, we should be able to create a routes like feature that automatically decorates your template depending on the url.. Chad On Feb 21, 5:54 am, Contact 42 <[EMAIL PROTECTED]> wrote: > Chad wrote: > > Just curious of how other pylons developers are doing site layout in > > their apps? Are you guys mostly using the template and includes? > > > I'm currently using genshi and xi:include. This method works.. but it > > really seems like a lot of wasted code. In the past I've used several > > methods for site layout. Once we wrote a "filter" that automatically > > added a layout based on a url config file. We based this method off of > > sitemesh (http://www.opensymphony.com/sitemesh/). Rails allows you to > > automatically associate a layout with templates in a controller or all > > templates. > > > Just curious about what other people are doing and what you think of > > rails/sitemesh.. > > I think sitemesh is awesome. It keeps out of your way yet is so flexible. > > Don't know about genshi, but in mako I do the following: > > I render the following template for every request which contains the > following code. It is passed two variables (the layout template, the > actual page template). This allows me to change layouts on each request > (if necessary just like sitemesh). > > == apptemplate.mak > <% > > if c.layout_template: > layout_template = self.get_namespace(c.layout_template) > else: > layout_template = None > > namespace = self.get_namespace(temp) > body = capture(namespace.body) > if hasattr(namespace, 'head'): > head = capture(namespace.head) > else: > head = None > %> > > %if layout_template: > ${layout_template.layout(body, head=head)} > %else: > ${body} > %endif --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
