I am currently using zend_decorators to add styles to my form. I was wondering if there is an alternative way of doing it? It is a bit difficult to write decorators. I would love the casual one using divs and css style :
<input type="submit" class="colorfulButton" >
It is much simpler rather than set a decorator for a certain control and add it. Since it requires creating a decorator for each style implementation and adding it up with the control. Will view helpers to the trick?
If you just want to set a class attribute on a form element, there is no need to define a decorator : this can be done using some standard methods of zend_form's elements.
See the
setAttrib()
method, in the section Metadata and Attributes of the manual, and the example that's given there (quoting) :And if you can set a class attribute this way, you can probably set it while constructing your form's elements, or in a .ini file that would define those elements -- there is an example that shows that a bit later in the page, in the Configuration section.
There's a few ways. You can roll your own element view helpers (which could get rather clumsy soon I guess).
Or... you could use a viewscript for the form, like this (very basic example):
See the standard decorators section about PrepareElements for why it's needed to have the PrepareElements decorator set for the form, when using the ViewScript decorator.
Then in the viewscript: