Хорошие способы получения ресурсов из родительских папок в Plone?

У меня есть сайт 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 и представлений задействованы некоторые хитрости, и я почти уверен, что пропустил больше.

Итак: это, конечно, не так, как предполагается, но что?


person Ulrich Schwarz    schedule 16.11.2010    source источник


Ответы (3)


Вы можете вдохновиться коллективным.фантазией, который реализует этот вариант использования для plone3 (замените l&f на контейнер папок).

person yboussard    schedule 29.11.2010
comment
Спасибо, я проверю, хотя, надеюсь, сегодня я устранил последнюю ошибку в своем коде. ;) - person Ulrich Schwarz; 29.11.2010

Используйте CSS.

Просто пометьте свой тег классами, основанными на текущем разделе / ​​факультете / аспекте по вашему выбору, и измените свои изображения на основе этих классов. Держите визуальный дизайн отдельно от вашего контента!

person Martijn Pieters    schedule 16.11.2010

Кажется, это так. В итоге я зарегистрировал вспомогательное представление, которое проверяет и искажает контекстный путь и указывает его куда-то еще в представление каталога файловой системы.

person Ulrich Schwarz    schedule 29.11.2010