ZF-5935: Zend_Form_Element_File does not include Description decorator
Description
When creating an instance of Zend_Form_Element_File it does not render a description if set with setDescription.
E.g.
$image_file = $this->createElement('file', 'image_file') ->setLabel('Image file') ->setDescription('Select a image file to upload a new image. Image should be a gif, jpg or png image, less than 2mb in size.') ->addValidator('Count', false, 1) ->addValidator('Size', false, 102410242) ->addValidator('Extension', false, 'jpg,png,gif');
Does not display the description.
Looking at for code for Zend_Form_Element_File I can see why:
Line 71:
public function loadDefaultDecorators() { if ($this->loadDefaultDecoratorsIsDisabled()) { return; }
$decorators = $this->getDecorators();
if (empty($decorators)) {
$this->addDecorator('File')
->addDecorator('Errors')
->addDecorator('HtmlTag', array('tag' => 'dd'))
->addDecorator('Label', array('tag' => 'dt'));
}
}
Its clear that this element does not get its default decorators from the parent... Any reason why?
Comments
Posted by Thomas Weidner (thomas) on 2009-03-05T10:33:41.000+0000
Because files don't have a description until they are uploaded. Feel free to use addDecorator() if you want to use decorators.
Posted by Al James (al.james) on 2009-03-05T15:20:53.000+0000
Hmmm... Why does a file not have a description until its uploaded? What if I want to add a description of the form "Please make your file a jpg,gif or png less that 1mb in size"?
Posted by Thomas Weidner (thomas) on 2009-03-05T23:11:59.000+0000
Integrated with r14234