У меня есть сайт Plone (4.0.1), который требует изменения макета в зависимости от папки. Представьте себе такую структуру:
University > Faculty A > Institute A1 > Person A11
> Person A12
> Institute A2 > Person A21
...
Теперь, если я помещу все необходимые ресурсы (пользовательский файл CSS, изображения и т. д.) в ZODB, страницы для человека A11 автоматически подберут файл fac-image.gif, расположенный в папке факультета A.
Однако, чтобы избежать путаницы, я не хочу показывать fac-image.gif пользователям. (Это все часть структуры, которую они в любом случае не должны касаться.)
Если я регистрирую ресурс, я могу получить доступ к материалам с помощью ++resource++theme.images/path, но не происходит приобретения от родителей, поэтому ++resource++theme.images/facultyA/instituteA1/fac-image.gif не найдет изображение. Хуже того, теперь мне нужно поддерживать отдельную структуру каталогов.
Что я в настоящее время делаю, так это вручную прокручиваю процесс обхода «наилучших усилий» через представление каталога файловой системы, которое попытается пройти по пути, просто оставайтесь там, где оно есть, если подкаталог не существует (т.е. дерево ресурсов не существует). у меня нет подкаталога для человека A11; вместо того, чтобы кричать 404, я остаюсь в институте A1), а затем попытаться получить резервную копию. Для Portal_factory и представлений задействованы некоторые хитрости, и я почти уверен, что пропустил больше.
Итак: это, конечно, не так, как предполагается, но что?