You want to create database-apps with the ZMI in a few minutes? Then have a look at the PropertyObject...
The PropertyObject is intended mainly for use in conjunction with the
PropertyFolder and
AbracadabraObject.
If you got the logic and power behind AbracadabraObject, you will love the
PropertyObject. If not, you will have no idea what to do with PropertyObject
at all... but maybe you can use it for other problems as well.
Screenshoot of a unlocked PropertyObject
Screenshoot of a locked PropertyObject
The main idea behind AbracadabraObject is a simple mechanism to clone
pre-configured objects through the Zope-Managemement-Interface (ZMI). The
usual way using AbracadabraObject for building database-applications with the
ZMI was setting up a DTMLDocument with some properties and a rendering. With
the PropertyObject you have a highly specialized object for building
comfortable database-applications with the ZMI in just a few minutes.
After installing you can add one or more PropertyObjects to your
AbracadabraObject's "standard_object_folder". The main-view of a
PropertyObject is a configurable property-sheet, which you can edit & modify &
sort to meet your needs (Security-right: PropertyObject: Edit
). You can
simply reorder your properties with the buttons on the right. Additionally you
have a "Manage-Tab" (Security-right: PropertyObject: Manage
). There you can
set an "object_type" for your PropertyObject, which can be a DTMLMethod or ZPT
and is used to render your PropertyObject or to identify different kinds of
PropertyObjects in ZCatalogs (index object_type
as fieldindex). Additionally
you can set a description which will be displayed as a help text on the top of
the property-sheet. Still more you can set a default_catalog and lock/unlock
the property-sheet of your PropertyObject. You can save your changes or
synchronize the properties and management-values of all PropertyObjects of the
same object_type in this folder and below.
Example for building contact-database:
- Create a folder called contacts.
- Create a "standard_object_folder" in contacts.
- Enter the "standard_object_folder", add a PropertyObject and edit the
property-sheet. Add new properties "email", "homepage" and "phone" as
string-types.
- Go to the Manage-Tab: Set Object-Type =
Contact
, Description = Some
dummy text explaining for dummies
, Unlock "Extensible Properties".
- Enter your contacts folder.
- Create a Catalog with id=Catalog.
- Add some contacts with the AbracadabraObject.
- With Z-Search-Interface create a search for your contacts and here you
are...;-)
- If you like, create a DTMLMethod with id=
Contact
which renders "email",
"homepage" and "phone" for every PropertyContactObject so you can call them
via url.
This should give you the main idea behind AbracadabraObject & PropertyObject.
If you want you can use the "Publish-Tab" of the PropertyObject. Publishing
means that a special variable published
is turned on for a PropertyObject
(Security-right: PropertyObject: Publish
). You can use this for some kind of
review processing for PropertyObjects. Please note: No business logic is taken
at all while "publishing" a PropertyObject!
Maybe it is hard to understand what I meant with the PropertyObject. But I
promise you: If you ever wanted to create databases with the ZMI,
AbracadabraObject und PropertyObject is what you need...
Please feel free to contact: [email protected]