Hi Wichert!
Wichert Akkerman wrote:
At the moment it is not possible to use skin layers in pure python
packages. This is caused by the DirectoryView implementation using
a minimal path name for the layer id. This path name is created
by CMFCore.utils.minimalpath, which uses the ProductsPaths list of
directories to look for the filesystem directory and uses an absolute
path if it can't find it. Since this absolute path will differ per
install you can't use it in something like genericsetup profiles.
The patch below fixes this by adding $INSTANCE_HOME/lib/python to the
ProductsPaths list. This allows minimalpath to find python packages installed
there.
Are there any objections to commiting this to trunk?
Yes, I object. This is a hack that resolves the issue just for some
special use cases. We need a solution that works with python packages
anywhere in the python path.
Please read this thread:
http://mail.zope.org/pipermail/zope-cmf/2006-July/024631.html
And please note that we just need a human readable registry key, nothing
that allows to look up the directories directly.
Different keys are possible, e.g.:
Products.MyProduct/skins/my_skin
MyPackage.MySubPackage/skins/my_skin
Products/MyProduct/skins/my_skin
MyPackage/MySubPackage/skins/my_skin
Products.MyProduct:skins/my_skin
MyPackage.MySubPackage:skins/my_skin
Products.MyProduct:my_skin
MyPackage.MySubPackage:my_skin
I think the old keys should become deprecated and replaced everywhere.
Cheers,
Yuppie
_______________________________________________
Zope-CMF maillist - Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf
See http://collector.zope.org/CMF for bug reports and feature requests