Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 4, 2010 13:45:48

misha111
От:
Зарегистрирован: 2009-11-12
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заменить стандартный обработчик ошибок в ZOPE 3

Итак, вернулся опять к решению єтого вопроса, начитался разного - закончилось тем, что просто начал смотреть как соедан roterdam в зоупе.
Скин объявил, даже увидел его по ссылке http://127.0.0.1:8080/++skin++NotFound

объявлял вот так
<browser:layer
name=“notfound”
interface=“.notfound.notfound”
/>

<interface
interface=“.notfound.notfound”
type=“zope.publisher.interfaces.browser.IBrowserSkinType”
name=“NotFound”
/>

<browser:page
for=“*”
name=“index.html”
permission=“zope.View”
layer=“notfound”
template=“notfound.pt”
/>

теперь, в корневом zcml подключил его вот так <include package = “.notfound” />
то есть он у меня во вложенной папке находится - zcml в котором описан скин и слой
шаблон notfound.pt ну и notfound.py

теперь его же надо прикрутить:
по советам
<z3c:pagelet
for=“zope.publisher.interfaces.INotFound”
name=“index.html”
class=“… мой вид …”
permission=“zope.View”
layer=“…мой скин layer…”
/>
zope3 вообще говорит что unbound prefix на z3c

попробовал
<browser:page
for=“zope.publisher.interfaces.INotFound”
name=“index.html”
class=“.class22.Class2Impl”
permission=“zope.View”
layer=“notfound”
/>
уж не знаю, так ли я понял надпись
<page

for = “zope.exception.interfaces.INotFound”

/>
может конечно и не так, но слой явно есть, но он не пркручивается вместо страници ошибки zope3
я так понимаю я пітаюсь прикрутить скин для некоторого интерфейса zope.publisher.interfaces.INotFound с использованием некоторого вида class=“.class22.Class2Impl” и слоя (notfound - layer или слой , NotFound - скин этого слоя).
Похоже на то что я не правильно пишу layer=“notfound”, вроде б сюда нужно написать скин а не слой. (layer=“…мой скин layer…”)
(я так понял что есть слой, а у него есть скин. Хотя если нужно указать слой layer, то почему нужно указывать скин?)
Ну как бы там ни было, запись
layer=“NotFound”
говорит, что нет такого объекта NotFound
а если layer=“notfound”, то zope3 запускается нормально, но новая страница ошибок не показывается при вызове несуществующей страници класса2.

Где я опять что то непонял или недочитал?
Желательно чтоб страница ошибок была не только для отдельного класса

тут я нашёл
<include package=“z3c.pagelet” file=“meta.zcml” />
это какой то инструмент и его подключать надо отдельно?



Отредактировано (Янв. 4, 2010 22:38:33)

Офлайн

#2 Янв. 4, 2010 22:43:44

astoon
От:
Зарегистрирован: 2007-04-09
Сообщения: 335
Репутация: +  2  -
Профиль   Отправить e-mail  

Как заменить стандартный обработчик ошибок в ZOPE 3

misha111 c z3c.pagelet пока не путай голову, я тогда в рассылке написал его по привычке, т.к. в основном скины на нем делаю.
В остальном ты прав - ты не до конца понял понятие skin'ов и layer'ов.

http://zopelada.ru/lection/doc.zopelection/14%20Скины/Скины.txt



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version