Tom Schwaller <tom.schwaller@linux-magazin.de> wrote:
http://www.zope.org/Members/Zen/tips/tip_ZCatalogInZClass
shows nicely how to add a ZCatalog in a ContainerClass. How does one implement the same functionality when deriving a class A from ZCatalog:
A(ZCatalog) -- B(CatalogAware)
Check out my How-To, http://www.zope.org/Members/tseaver/inherit_ZCatalog
How to modify <dtml-with "Catalog"> <dtml-call "manage_addColumn('area',REQUEST,RESPONSE,URL1)"> ?
Just call the method (of the ZCatalog-derived class): <dtml-call "manage_addColumn( 'area', REQUEST, RESPONSE, URL1 )">
<dtml-with _catalog> will not work.
Right, attributes/methods starting with "_" are invisible to DTML.
Then I'd like to add B-Objects, which are CatalogAware, to the A-Catalog.
Right now I use only one instance of the A-class (Books) and add the Books (type B) by writing:
<dtml-with "Book.createInObjectManager(REQUEST['id'], REQUEST)"> <dtml-call "propertysheets.buchdaten.manage_editProperties(REQUEST)"> <dtml-call unindex_object> <dtml-call "manage_editCataloger('Books', REQUEST)"> <dtml-call reindex_object> </dtml-with>
which is nonsense, but works for one Book-Folder with a defined name.
I like deriving from ZCatalog, so the users do not see the Catalog (otherwise one could delete it) and the ContainerClass (Books) is the catalog of its members (Book).
Any hints?
This is essentially what I am doing -- I just tried adding a DTMLMethod named "Catalog" to the ZCatalog-derived class, which just returns this() -- IT WORKS! -- ========================================================= Tres Seaver tseaver@palladion.com 713-523-6582 Palladion Software http://www.palladion.com