[Grok-dev] RFC: Masterpage implementation without macros

kevin at mcweekly.com kevin at mcweekly.com
Sun Apr 15 16:26:55 EDT 2007


Quoting Lennart Regebro <regebro at gmail.com>:

> On 4/12/07, Kevin Smith <kevin at mcweekly.com> wrote:
>> We're using grok for the base of the relaunch of our newspaper website.
>> I'm not fond of macros, so here is an alternate masterpage
>> implementation that I think is fairly easy to grok.  This sort of
>> strategy might also apply in a template neutral environment. Please let
>> me know what you think.
>
> This strategy works. It only has one drawback as a generic strategy,
> and that is that your object needs to implement all the methods used
> to fill in the master template, especially the things in the header,
> such a title() and a method for adding extra css, and one for extra
> javascript. For a generic system this ends up as being quite a lot of
> methods.
>

Thanks for your reply. As far as implementing methods, I'm  
experimenting with simple inheritance and mixins.

class Master:

     def title(self):
         return  "My Website"
     def header(self):
         return "The header"
     def footer(self):
         return "All rights reserved"

class Movies(Master):
     def header(self):
         return "The Movies"

For javascript/css I cheat and use zc.resourcelibrary. :)

I'll find out shortly how well this scales, I'm implementing this on a  
full-featured portal.


> I still haven't had the time (or, well, the energy, rather) to mock up
> what I and Martijn discussed before which would make a better generic
> strategy, but don't let that worry you. The two would be quite
> compatible. :-)

I'm looking forward to this. :)

>
> -- 
> Lennart Regebro: Zope and Plone consulting.
> http://www.colliberty.com/
> +33 661 58 14 64

Kevin Smith



More information about the Grok-dev mailing list