I like the idea.  One thing that I dislike very much about not using
VelocityECSLayout is that the users will be required to modify their
layout templates.  This seems to allow for a way around that problem.  

> -----Original Message-----
> From: Chris Felaco [mailto:[EMAIL PROTECTED]] 
> Sent: Wednesday, January 15, 2003 10:56 AM
> To: "Turbine Developers List"
> Subject: RE: Converting from VelocityECSLayout to VelocityOnlyLayout
> 
> 
> "Quinton McCombs" <[EMAIL PROTECTED]> wrote:
> 
> >The VelocityECSLayout is deprecated in T2.3.
> 
> This was news to me.  I totally understand why using ECS is 
> not desirable for performance reasons here, but we are losing 
> convenience to the user.  I have an idea to mitigate that however.
> 
> I had added a hack^H^H^H^Hfeature to my customized Layout to 
> enable layouts to be embedded within other layouts.  This way 
> you can have a standard layout containing just the basic HTML 
> HEAD and BODY tag stuff, and then reuse that layout in other 
> layouts.  
> 
> The way to do it is for the layout template itself to change 
> the layoutTemplate in the TemplateInfo.  When the Layout 
> class is done rendering the template using Velocity, it 
> checks if the layoutTemplate name was changed, and if so, it 
> sets the $screen_placeholder to the original layout content 
> and then renders the new layout template.  Repeat as 
> necessary.  The explanation is not very clear - here's the basic code:
> 
>     /*
>      * Grab the layout template set in the TemplatePage.
>      */
>     String templateName = data.getTemplateInfo().getLayoutTemplate();
> 
>     /*
>      * Finally, render the layout template.
>      */
>     String layoutContent = TurbineVelocity.handleRequest(
>         context, "layouts" + templateName);
> 
>     // If the template itself changes the layoutTemplate, 
> then it wants to
>     // be embedded inside it.  This allows for any level of 
> nesting, so beware
>     // of infinite recursion.
>     while (! 
> templateName.equals(data.getTemplateInfo().getLayoutTemplate()))
>     {
>       templateName = data.getTemplateInfo().getLayoutTemplate();
> 
>       context.put("screen_placeholder", layoutContent);
> 
>       layoutContent = TurbineVelocity.handleRequest(
>         context, "layouts" + templateName);
>     }
> 
> Note that the embedding does not involve looking up the 
> Layout class for the template that is being embedded in.  
> This is only for reusing content.
> 
> Does this idea appeal to anyone for general use in Turbine?
> 
> On a related note, I think it would make sense for 
> "navigations" to be available within the screens.  This would 
> make it much easier to create widget-like templates with 
> smart functionality that can be reused throughout the site.  
> It would be akin to portlets in a sense.
> 
> - Chris
> 
> 
> __________________________________________________________________
> The NEW Netscape 7.0 browser is now available. Upgrade now! 
> http://channels.netscape.com/ns/browsers/downl> oad.jsp 
> 
> Get 
> your own FREE, personal Netscape Mail account 
> today at http://webmail.netscape.com/
> 
> --
> To unsubscribe, e-mail:   
> <mailto:turbine-dev-> [EMAIL PROTECTED]>
> For 
> additional commands, 
> e-mail: <mailto:[EMAIL PROTECTED]>
> 
> 

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to