IIRC the idea was to have a template usable from standard Zope 3 views that expected the standard Zope 3 slots, and css_slot was one of those.

But I'll let Lennart answer, I've never really touched this stuff.


yuppie wrote:

A while ago the five_template for the trunk / CMF 2.0 was replaced by the one from CMFonFive.

I still have some difficulties understanding the rationale behind that change. I never got an answer to this mail:


AFAICS there are two use cases for the five_template:

1.) Provide generic slots used in Five and Zope 3

The five_template shipped with Five provides two slots: 'style_slot' and 'body'. The old CMF five_template did provide the same two slots. The new five_template maps 'style_slot' to a non-existent 'css_slot'.

2.) Provide cmf specific slots in @@standard_macros/page

The new five_template provides 'base' and 'header', mapping them to the corresponding slots in main_template. 'body' is mapped to 'main', so all slots in main_template can be filled via the five_template. I'm not sure if we really should support that use case. At least it is less important than the first use case.


- mapping 'style_slot' to 'css_slot' is an obvious bug, that change should be reverted

- the 'header' slot behaves different than in main_template: main_template provides default content for 'header', the five_template 'header' is empty by default. I'd like to keep that in sync, but maybe we should remove the default content from main_template. Most skin templates override the 'header' slot anyway.

- the Five 'body' slot doesn't map very well to the CMF 'main' slot: 'header' *and* 'main' would match better.


1.) Add a new 'body' slot in main_template that wraps around the 'header' and the 'main' slot. You can either use 'body' *or* 'header' and 'main'.

2.) Remove the default content in main_template's 'header' slot.

3.) Replace five_template by something like this:

<metal:macro metal:define-macro="page">
<html metal:use-macro="context/main_template/macros/master">
  <metal:slot metal:fill-slot="base">
   <metal:slot metal:define-slot="base" />
  <metal:slot metal:fill-slot="style_slot">
   <metal:slot metal:define-slot="style_slot" />
  <metal:slot metal:fill-slot="body">
   <metal:slot metal:define-slot="body">
    <metal:slot metal:define-slot="header" />
    <metal:slot metal:define-slot="main" />

4.) Change the browser view templates to use 'main' instead of 'body' (that no longer maps to 'main').

Any feedback is welcome. If there are no objections I'd like to make the proposed changes on Saturday, before the 2.0-beta2 release.



Zope-CMF maillist  -  [EMAIL PROTECTED]

See http://collector.zope.org/CMF for bug reports and feature requests

Florent Guillaume, Nuxeo (Paris, France)   Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]
Zope-CMF maillist  -  Zope-CMF@lists.zope.org

See http://collector.zope.org/CMF for bug reports and feature requests

Reply via email to