[Zope3-Users] Re: prettier edit widgets..
Philipp von Weitershausen
philipp at weitershausen.de
Sun Jan 14 09:30:42 EST 2007
Roy Mathew wrote:
> I need prettier edit widgets than the stock Rotterdam/Basic skin
> versions.
The skins have little to do with it, except for the CSS styles that
apply to pretty much all HTML.
> Is there a collection of such widgets that maybe use
> dojo/mochikit/scriptaculous. Or is it reasonable to simple re-style
> (w/css) the stock widgets, or programmatically (in editform)
> manipulate parameters, to get reasonable edit widgets.
There are several options. First of all, you can style the existing
widgets with CSS. If you want to change their behaviour (JavaScript,
etc.), then you're probably best of writing your own widgets. Often you
can simply subclass the original ones in zope.app.form.browser and
override the __call__ method (which returns the widget's HTML).
To use your custom widgets in your forms, you have two options:
a) explicitly refer to them in form_fields:
class MyForm(EditForm):
form_fields = Fields(IMySchema)
form_fields['afield'].custom_widget = MyCoolWidget
b) register them for the fields you use, so they get picked up
automatically whenever a TextLine, Int, Choice, etc. field is used in a
form (even in Zope 3 itself). See zope.app.form.browser/configure.zcml
for exmaples of how the standard Zope 3 widgets are registered. By the
way, instead of using IBrowserRequest, you probably may want to specify
the interface of your custom layer or skin the 'type' argument to <view
/>. Or you have to use overrides.zcml, otherwise you'll get conflicts
(obviously).
HTH
--
http://worldcookery.com -- Professional Zope documentation and training
2nd edition of Web Component Development with Zope 3 is now shipping!
More information about the Zope3-users
mailing list