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

StackOverflow https://stackoverflow.com/questions/4192290

  •  10-10-2019
  •  | 
  •  

Вопрос

У меня есть сайт Plone (4.0.1), который требует изменений в макете в зависимости от папки.Представьте себе такую структуру, как:

University > Faculty A > Institute A1 > Person A11
                                      > Person A12
                       > Institute A2 > Person A21
...

Теперь, если я помещу все необходимые ресурсы (пользовательский css-файл, изображения и т.д.) В ZODB, страницы для person A11 автоматически получат a fac-image.gif, расположенные в папке Faculty A.

Однако, чтобы избежать путаницы, я не хочу раскрывать fac-image.gif пользователям.(Все это часть фреймворка, к которому они в любом случае не должны прикасаться.)

Если я зарегистрирую ресурс, я смогу получить доступ к материалам с помощью ++resource ++ theme.images/path, но получение данных от родителей не происходит, поэтому ++resource++theme.images/facultyA/instituteA1/fac-image.gif не найдет изображение.Что еще хуже, теперь мне нужно поддерживать отдельную структуру каталогов.

То, что я сейчас делаю, - это вручную запускаю процесс обхода "наилучших усилий" через представление каталога файловой системы, которое попытается пройти по пути, просто оставайтесь там, где он есть, если подкаталог не существует (т. Е.в дереве ресурсов нет подкаталога для person A11;вместо того, чтобы кричать 404, я остаюсь в институте А1), а затем пытаюсь получить резервную копию.Для portal_factory и views задействованы некоторые хитрости, и я почти уверен, что пропустил больше.

Итак:конечно, это не тот способ, которым предполагается это делать, но какой именно?

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top