从Plone中的父文件夹获取资源的好方法?

从Plone中的父文件夹获取资源的好方法?,plone,acquisition,Plone,Acquisition,我有一个Plone(4.0.1)站点,它需要根据文件夹的不同更改布局。想象一下这样的结构: University > Faculty A > Institute A1 > Person A11 > Person A12 > Institute A2 > Person A21 ... 现在,如果我将所有需要的资源(自定义css文件、图像等)

我有一个Plone(4.0.1)站点,它需要根据文件夹的不同更改布局。想象一下这样的结构:

University > Faculty A > Institute A1 > Person A11
                                      > Person A12
                       > Institute A2 > Person A21
...
现在,如果我将所有需要的资源(自定义css文件、图像等)放入ZODB中,person A11的页面将自动拾取位于Faculty a文件夹中的fac-image.gif

但是,为了避免混淆,我不想向用户公开fac-image.gif。(这都是框架的一部分,他们无论如何都不应该碰它。)

如果我注册了一个资源,我可以使用++resource++theme.images/path访问内容,但没有从家长处获取,因此++resource++theme.images/facultyA/instituteA1/fac-image.gif将找不到该图像。更糟糕的是,我现在要维护一个单独的目录结构

我目前正在做的是通过一个文件系统目录视图手动滚动一个“尽力而为”的遍历过程,该文件系统目录视图将尝试沿着路径前进,如果子目录不存在,只需停留在原处(即,资源树没有person A11的子目录;我停留在institute A1,而不是大叫404),然后尝试获取备份。portal_factory和视图涉及一些技巧,我很确定我错过了更多

所以:这当然不是我们应该用的方法,但这是什么呢?

使用CSS


只需根据您选择的当前部分/教员/方面使用类标记您的标签,并根据这些类更改您的图像。将视觉设计与内容分开

似乎是这样。我最终注册了一个助手视图,该视图检查并破坏了上下文路径,并将其指向文件系统目录视图中的其他位置。

您可以从collective.phantasy中获得灵感,它实现了plone3(更改文件夹容器的l&f)的这个用例。

谢谢,我会检查,尽管我希望今天已经消除了代码中的最后一个bug。;)