Форум сайта python.su
Здравствуйте.
Возможно кто либо сталкивался со следующей сдожностью, или сможет что нибудь подсказать:
есть большой проект в zope 3 (спасибо, больше не буду.), в котором используются несколько публикуемых объектов.
пользователи делают запросы к обектам вида, вида xxx/y1/page1.html, xxx/y2/page2.html, xxx/y3/page3.html,
где y1, y2, y3 - несколько публикуемых объектов.
Можно ли сделать так, чтоб ничего (или не много) не меняя в исходном коде объектов, сделать запросы вида
xxx/y/page1.html, xxx/y/page2.html, xxx/y/page3.html
то есть чтоб было что -то вроде аналога индексного файла с перенаправлением в xxx/y1/page1.html, xxx/y2/page2.html, xxx/y3/page3.html
где уже эти запросы будут обслуживаться разными публикуемыми объектами как и ранее.
Вот, надеюсь, понятно изложил свои мысли.
Отредактировано (Июнь 25, 2010 11:49:51)
Офлайн
Можно переписать траверсинг для контейнера xxx.
Почитать можете здесь: http://mg.pov.lt/blog/zope3-custom-traversal.html
P.S.
И не пишите “зоуп3”, как то некрасиво =).
Офлайн
спасибо regall, хорошя ссылка. Для полного комплекта ещё не помешала бы ссылка, на пояснение, как сделать
модификации url в отрендеренной странице.
вроде б это надо делать переопределением IBrowserRequestFactory, а именно Request и Response, и там уже модифицировать url в ссылках и action в формах, но я не уверен.
Отредактировано (Июль 2, 2010 16:28:12)
Офлайн
misha111Не совсем понял, что вы имеете в виду. Я так понимаю, вы хотите чтобы мультиадаптер @@absolute_url в TAL возвращал правильную ссылку на объект, для которого переопределен механизм траверсинга. Для этого просто нужно написать свой адаптер к zope.traversing.browser.interfaces.IAbsoluteURL
как сделать
модификации url в отрендеренной странице.
Офлайн
у меня на генерируемой странице ссылки вида /xxx/yyy_aa/zzzz
мне надо просто исправлять “_” на “/” чтоб было везде /xxx/yyy/aa/zzzz
механизи траверсинга я решил не менять, там по другому сделал.
осталось только менять ссылки в контенте страници и на формах, при определённых условиях.
Может есть где-нибудь ещё описание, как добраться до контента сгенерённой страници?
Отредактировано (Июль 5, 2010 14:20:14)
Офлайн
misha111А если не секрет, то как вы сделали?
механизи траверсинга я решил не менять, там по другому сделал.
Офлайн
не секрет.
там решили просто поставить прокси через апач с mod_rewrite
вот и появилась проблема, когда надо вправлять все url на сгенерённой странице в виде, который я указывал.
Отредактировано (Июль 5, 2010 16:44:38)
Офлайн
misha111Так почему из-за прокси URL'ы поменялись? Может плохо настроили? Все должно работать одинаково, как при прокси так и с runzope. Прописывать URL'ы в шаблонах вручную - это очень плохой подход, используйте absoluteURL.
там решили просто поставить прокси через апач с mod_rewrite
вот и появилась проблема, когда надо вправлять все url на сгенерённой странице в виде, который я указывал.
Офлайн
нет нет, там совсем в другом дело, там старая проблема из-за разнобоя с классами и basic авторизацией
из-за этого и меняем, там просто классы так называются
xxx_yy
xxx_zz
и по постановке от этого нужно уйти, чтоб в url было
xxx/zz
Отредактировано (Июль 5, 2010 17:38:57)
Офлайн
пока задавал вопрос - сам всё решил
помогло чтение тут
http://svn.zope.org/hurry.zoperesource/trunk/src/hurry/zoperesource/zopesupport.py?rev=91843&view=markup
и разбор текста zc.resourcelibrary-1.3.1
что по суте похоже, но, почему-то, разбирая тексты отдельно результата не было :-)
Отредактировано (Июль 5, 2010 18:23:32)
Офлайн