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!
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):