Dear Christophe,

thank you for your answer, you're right, this way i get the container
object. additionally permission needs to be added for this method.

only one question remained unanswered. as i recognized zope3 collects
always all addmenu items. this i assume, because the traversal
exception raised for the objects where  i didn't specify any filter in
the addMenuItem. that means zope3 tries to check the filter expression
for all container objects.
i don't really understand why it is in this way. is it possible to
specify a certain object where isNeedtoDisplay should be queried, or
should i use a kind of sub classing solution?

On 4/2/07, Christophe Combelles <[EMAIL PROTECTED]> wrote:
I think the context of an adding view is an object providing IAdding. The
context of the context might be the container of your object.
Try to set isNeedtoDisplay as the container's method, and maybe
"context/context/isNeedtoDisplay" as your filter.


Ivan Horvath a écrit :
> Dear All,
> it seems that i have to use filter attribute in browser:addMenuItem
> directive. i couldn't find any usable help how to use it, and my
> trials are failed so far.
> this is the menu declaration in zcml:
>  <browser:addMenuItem
>      title="Article"
>      factory="fa.Article"
>      view="addArticle.html"
>      filter="context/isNeedtoDisplay"
>      permission="zope.ManageContent"
>      />
>  <browser:page
>    for=""
>    name="addArticle.html"
>    class=".helper.ArticleAddForm"
>    permission="zope.ManageContent"
>    />
> i receive always a TraversalError exception. i don't know where shall
> i put the isNeedtoDisplay method.
>  File "D:\alco\zope\src\zope\traversing\", line 52, in traverse
>    raise TraversalError(subject, name)
>   - __traceback_info__: (< object
> at 0x02D
> E9D90>, 'isNeedtoDisplay', [])
> TraversalError: (< object at
> 0x02DE9D90>, '
> isNeedtoDisplay')
> thanks in advance
> Ivan
> _______________________________________________
> Zope3-users mailing list

Zope3-users mailing list

Zope3-users mailing list

Reply via email to