Форум сайта python.su
Здравствуйте, кто нибудь сталкивался с решением такой проблемы, когда
стандарный вилет в админку с надписью что “мол такой урл не бывает” -
не подходит?
Хорошо бы приткнуть де нибудь .htaccess, но они вроде б только для
апача, а http серевре вроде б какой то внутренний.
Или может где то можно описать скрипт обработчика - тоже отлично было
бы.
Я так понимаю, чт если есть стандартній обработчик для всего сервера, который выдаёт
The page that you are trying to access is not available
Please note the following:
1. You might have misspelled the url
2. You might be trying to access a non-existing page
То может его можно как то подменить своим, для всей среды а не для отдельного проекта
Офлайн
1. Перенесите вопрос в соответствующий разде.
2. в Zope 3 ошибка 404 все-равно по-прежнему завязана на компонентную архитектуру: ексцепшн NotFound c интерфейсом INotFound. Все, что вам нужно - написать свой вид и зарегистрировать его в zcml:
<page
...
for = "zope.exception.interfaces.INotFound"
...
/>
Отредактировано (Дек. 11, 2009 14:50:30)
Офлайн
regallя попробовал в разных модификациях
1. Перенесите вопрос в соответствующий разде.
2. в Zope 3 ошибка 404 все-равно по-прежнему завязана на компонентную архитектуру: ексцепшн NotFound c интерфейсом INotFound. Все, что вам нужно - написать свой вид и зарегистрировать его в zcml:P.S. Код писал по памяти, так что неуверен, что написал правильный путь к INotFound.<page
...
for = "zope.exception.interfaces.INotFound"
...
/>
Также такое можно делать для каждой ошибки, только нужно взять соответствующий интерфейс.
UPDATE
Кстати, в Zope 3 wiki FAQ это описано: http://wiki.zope.org/zope3/FAQProgramming#how-do-i-write-a-custom-404-error-page
Офлайн
misha111Можете поподробнее описать, как у вас устроена работа со скинами, если у вас есть layer, в котором вы собственно работаете, то в директиве также необходимо указать этот layer.
не работает
Офлайн
да я и со скинами попробовал. Может я правда не правильно записываю.
деректив layer в объявлениях страниц нет, а здесь я попробовал написать
<browser:page
for=“zope.publisher.interfaces.INotFound”
name=“notfound.html”
class=“.Page_main.PageMainImpl”
permission=“zope.Public”
layer=“.Page_main.IPageMain”
template=“notfound.pt”
/>
вообще этот IPageMain везде используется вот так
<browser:page
for=“.Page_main.IPageMain”
…
/>
в описании этот интерфейс пустой.
но чот наверно не так надо, может описать этот слой нужно как то по другому?
Отредактировано (Дек. 14, 2009 10:29:26)
Офлайн
misha111Я ведь в рассылке отвечал Вам же, посмотрите внимательнее. Почему name=“notfound.html”? Это имя (динамически генерируемого адаптера вида с подмешиванием указанного mix-in'а “.Page_main.PageMainImpl”) назначено дефолтным именем для траверса на контексте “INotFound” и запроса “IPageMain” ?
да я и со скинами попробовал. Может я правда не правильно записываю.
деректив layer в объявлениях страниц нет, а здесь я попробовал написать
<browser:page
for=“zope.publisher.interfaces.INotFound”
name=“notfound.html”
class=“.Page_main.PageMainImpl”
permission=“zope.Public”
layer=“.Page_main.IPageMain”
template=“notfound.pt”
/>
?
misha111в корне не верно.
вообще этот IPageMain везде используется вот так
<browser:page
for=“.Page_main.IPageMain”
…
/>
Офлайн
astoonНе можно, а обязательно НУЖНО. misha111, судя по предыдущему посту, вы не понимаете что это такое, изучите эту тему (кроме книги можете еще посмотреть здесь.
ожно подглядеть в книге Филлипа
astoonДа, по сути вид это мультиадаптер, и в параметре for вы указываете, какие именно объекты будут адаптированы. Если вы там укажете interface.Interface, то данный вид будет доступен абсолютно для всех объектов, так как все интерфейсы от него наследуются.
for атрибут директивы browser:page используется для обозначения контекста.
Офлайн
regallта да, дали решать такую проблему, а получается что это не так просто как представлялось поначалу.
Не можно, а обязательно НУЖНО. misha111, судя по предыдущему посту, вы не понимаете что это такое,
Офлайн
misha111Тяжело в учении - легко в бою… На самом деле все очень просто, достаточно только понять, как все работает.
а получается что это не так просто как представлялось поначалу
Офлайн
misha111, как уже видишь, Zope3 так просто, с нахрапа не дается. Но слава богу, документации и туториалов - завались. После же изучения достаточно быстро приходит понимание, что этот фреймворк вообще ни в чем не ограничивает. С ним не нужно “бороться”. Что меня и привлекло изначально когда-то.
Офлайн