[Zope-CMF] Determining the current view

Dieter Maurer dieter@handshake.de
Sat, 8 Feb 2003 19:38:18 +0100


J C Lawrence wrote at 2003-2-8 01:56 -0800:
 > I'm writing a page template for a side box which I only want to display
 > for specific views of objects.  How can I, in a page template,
 > 
 >   a) Check that the thing currently being viewed is not a page template
 >   or DTML method or script (ie it has to be a "real" object)?
You look at "here.meta_type" and check whether you like it...

 > and,
 > 
 >   b) Check that the object view method on the object is being invoked,
 >   and not, for instance, folder_content, edit, or some other view of the
 >   object?
Not so easy:

  The "view" method may be called when
  
    *  you do not specify an explicite template

    *  you use "view" explicitely

    *  you use the action, "view" is mapped to, directly.

  You can approximate the first two reasons by comparing
  "URL" with "here.getId or "here.absolute_url".
  Acquisition may make it a bit more difficult.

  The last case is more difficult, as "view" can be mapped
  to different actions...


Dieter