FrontPage
»
ZMICustomization
Introduction
While working on AdytumSolutions projects as well as working on projects for PBS, I came up with a convenient way to beautify the otherwise rather unattracive default ZMI. All that is required is a .zexp import and un'tar'ing a dtml
directory.
Process
Here's what we had to do:
- create a location in Zope to hold property information for the ZMI
- figure out what all the properties were, should be, and name them
- unify all the different but related properties spread across multiple files
- find all the color and style (including spacing/widths/heights) references that we wanted to customize
- replace current hard code with dtml references using the following:
<dtml-with expr="zmi.properties"> <dtml-var property_name> ... </dtml-with> <dtml-var expr="zmi.properties.property_name">
- export the GUI changes with the ZMI as a .zexp and
tar
up thedtml
directory
Here's all you have to do:
gunzip
/WinZip? thedtml.tar.gz
andzmi.zexp.gz
files- move the
ZOPE_INSTALL/lib/python/App/dtml
to a backup location - move
dtml.tar
toZOPE_INSTALL/lib/python/App
- un
tar
dtml.tar
(thus creating a newdtml
directory) - move
zmi.zexp
toZOPE_INSTALL/import
- in your ZMI web interface, go the the main frame at the root folder, scroll to the bottom, hit the "import/export" button, in the "import" section, enter
zmi.zexp
- this will create a folder calledzmi
at the root location (this folder holds the images and properties for the ZMI customization)
Screenshots
PBS Interactive's ZMI (Note: the screenshot shows an image that just says "PBS" - this is a borrowed image that the PBS Interactive team (a small part of PBS) is using. Also, AdytumSolutions is not implmenting this for PBS Interactive; one of our developers is currently employed there and thus we are showcasing his work here.)
Caveats
- this code is hackish and not pretty; ideally, "someone" would take out all the html-ish crud and move everything that should be in CSS to CSS... but we were in a hurry ;-)
- the table cell counts for the tabs is fixed; there is logic in the ZMI DTML for determining this number generally, and we need to use that
- the changes are only partially commented
- we made changes to suite our needs; your mileage may vary
- there is an incompatibility will this customization and certain views (like External Method views in the ZMI); we haven't taken the time to pinpoint this yet
Downloads
Here's where you can get the stuff:
ZMI Properties and images (a gzip
ped Zope export)
ZMI DTML files (tarball)