Florent Guillaume wrote:


On 18 Jan 2006, at 21:50, Jean-Marc Orliaguet wrote:


Yes, both are needed (CPSSkins and CPSSkins-macroless), because the macroless skin is used by the main content templet to render the content of the main ZPT macro slot using python code.

the skins overrides the default 'main_template.pt' with:

<metal:block define-slot="main" />


Hm and it does only that... It would be nice if we could find a hack that avoided having an entire skin to maintain just because we have to switch to that main template from time to time.

Florent


In zope3 the same technique is implemented in a much simpler way. Probably because named adapters / pages are used for looking up the skins, there is no need to duplicate all the information between the layers as in CMF:

configure.zcml:

 <browser:skin
     name="cpsskins-macroless"
     interface=".portlet.IMacrolessSkin"
 />

 <browser:page
     for="*"
     name="standard_macros"
     permission="zope.View"
     class="cpsskins.browser.skin.standardmacros.StandardMacros"
     allowed_interface="zope.interface.common.mapping.IItemMapping"
     layer="cpsskins-macroless"
 />

 <browser:page
     for="*"
     name="skin_macros"
     permission="zope.View"
     layer="cpsskins-macroless"
     template="macroless.pt"
 />


portlet.py:
...
# Switch to the macroless skin before rendering the view
           applySkin(request, IMacrolessSkin)
           # Render the view
           markup = template(instance=view)

/JM
_______________________________________________
cps-devel mailing list
http://lists.nuxeo.com/mailman/listinfo/cps-devel

Reply via email to