Matthew,
That certainly looks simpler than what I came up with. I'm guessing
it's a better option too, since you suggested it :-)
Thanks,
Bradley
On Fri, Dec 5, 2008 at 7:37 PM, Matthew Weier O'Phinney
<[EMAIL PROTECTED]> wrote:
> -- Bradley Holt <[EMAIL PROTECTED]> wrote
> (on Friday, 05 December 2008, 07:09 PM -0500):
>> I have a SubForm that and I'd like to set the content of its related dt. This
>> is the first part of what I'm currently getting:
>>
>> <dt> </dt><dd><fieldset id="fieldset-phone"><dl>...
>>
>> What I want to do is replace the " " above with the word "Phones". It
>> appears that there is no setLabel on SubForms like there is on form elements.
>> There is a setLegend but that does not affect the dt, it only adds a legend
>> element:
>>
>> <dt> </dt><dd><fieldset id="fieldset-phone"><legend>Phones</legend>
>> <dl>...
>>
>> My guess is that I need to get a reference to the DtDdWrapper decorator and
>> set
>> an option on that. However, I'm not sure what option(s) I'd use:
>>
>> $phoneSubForm->getDecorator('DtDdWrapper')->setOption('?', 'Phones');
>>
>> Is this possible and if so am I going about it all wrong?
>
> The DtDdWrapper actually doesn't have an option for that. You have two
> options here.
>
> Short term, create your own drop-in substitute for DtDdWrapper, and push
> in this functionality. This is pretty trivial to achieve -- something
> like this:
>
> class My_Form_Decorator_DtDdWrapper extends Zend_Form_Decorator_DtDdWrapper
> {
> public function render($content)
> {
> $dt = $this->getOption('dt');
> if (null === $dt) {
> $dt = ' ';
> }
> return '<dt>' . $dt . '</dt><dd>' . $content . '</dd>';
> }
> }
>
> Long term, put an issue in the issue tracker to add support for
> providing the dt content.
>
> --
> Matthew Weier O'Phinney
> Software Architect | [EMAIL PROTECTED]
> Zend Framework | http://framework.zend.com/
>
--
Bradley Holt
[EMAIL PROTECTED]