[Zope] ZCatalog Object Identifier

Casey Duncan casey@zope.com
Mon, 16 Sep 2002 00:07:48 -0400


Up until recently the CatalogAware base class for ZClasses was not
compatible with virtual hosting. There is a new CatalogAware base class
which alleviates this problem.

As a workaround, create a simple product that registers the
Products.ZCatalog.CatalogPathAwareness.CatalogAware as a base class for
ZClasses (This is available in new Zopes, but not 2.4.x). Then use this base
class in its place. (Unfortunately this means creating new ZClasses and
instances or holding onto your butts ;^).

Alternately you could replace the code from CatalogAwareness module with the
code in CatalogPathAwareness (or make CatalogAwareness a symlink to
CatalogPathAwareness). This should work equally well with no class/object
rebuilding necessary (just do a full clear and reindex). I would do this in
a test environment first just to make sure nothing breaks.

hth,

-Casey

----- Original Message -----
From: "Mark Gibson" <mark@kaivo.com>
To: <zope@zope.org>
Sent: Monday, September 16, 2002 2:11 PM
Subject: [Zope] ZCatalog Object Identifier


> Using Zope 2.4.4
>
> I have a zope instance that's setup like this:
> /
> /Client
> /Client/company
> /Client/company/data
> /Client/company/catalog
>
>
> I'm using VirtualHostMonster to allow access to /Client/company through
> a domain name. (i.e. www.company.com points to /Client/company).
>
> I have set of ZClass objects that get cataloged. If I submit them
> through http://www.company.com, the Object Identifier in the catalog is
> listed as /data/objectid1. If I submit through
> http://zopeinstance:8080/Client/company the Object Identifier in the
> catalog is listed as /Client/company/data/objectid2.
>
> A query on the catalog will return both records, however when I call
> getObject() on the records returned, the record identified by the
> relative path, ( /data/objectid1 ) returns None, while the record with
> the full path, ( /Client/company/data/objectid2 ) returns the object.
>
> So how do I correct this problem?  How is the 'Object Identifier' used
> in the catalog generated?  Can I force it to use the full path when
> cataloging objects?  Why is getObject() in the first case returning None?
>
> Thanks,
> Mark
>
>
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )
>