Registering skins in lib/python plone 3.0 productsΒΆ

Tags: plone

I assume this approach only works for plone 3.0 as that runs on a nice recent zope 2.10 release and has a recent enough CMF. At least, that's mostly my experience: you'll need pretty new stuff to get the most out of genericsetup and so.

So: you've made a product and you've done it in lib/python instead of Products. There's got to be a way to register a skin directory without filling your product's __init__.py with lots of registration code. I found the solution in plone.app.openid.

In your configure.zcml, add the cmf namespace and a registerDirectory directive. I'm doing it for the plonehrm.jobperformance (not fully released yet) product:

<configure
  ...
  xmlns:cmf="http://namespaces.zope.org/cmf"
  ...>
  <.....>
  <cmf:registerDirectory name="jobperformance"/>
</configure>

The only remaining thing is to add a skins.xml in your profiles/default directory:

<object name="portal_skins">
 <object name="jobperformance" meta_type="Filesystem Directory View"
    directory="plonehrm.jobperformance:skins/jobperformance"/>
 <skin-path name="*">
  <layer name="jobperformance" insert-after="custom"/>
 </skin-path>
</object>

That ought to do it!