addElement('hidden', 'add_show_id', [ 'decorators' => ['ViewHelper'], ]); // Hidden element to indicate the instance id of the show // being edited. $this->addElement('hidden', 'add_show_instance_id', [ 'decorators' => ['ViewHelper'], ]); // Add name element $this->addElement('text', 'add_show_name', [ 'label' => _('Name:'), 'class' => 'input_text', 'required' => true, 'filters' => ['StringTrim'], 'value' => _('Untitled Show'), 'validators' => [$notEmptyValidator, ['StringLength', false, [0, $maxLens['name']]]], ]); // Add URL element $this->addElement('text', 'add_show_url', [ 'label' => _('URL:'), 'class' => 'input_text', 'required' => false, 'filters' => ['StringTrim'], 'validators' => [$notEmptyValidator, ['StringLength', false, [0, $maxLens['url']]]], ]); // Add genre element $this->addElement('text', 'add_show_genre', [ 'label' => _('Genre:'), 'class' => 'input_text', 'required' => false, 'filters' => ['StringTrim'], 'validators' => [['StringLength', false, [0, $maxLens['genre']]]], ]); // Add the description element $this->addElement('textarea', 'add_show_description', [ 'label' => _('Description:'), 'required' => false, 'class' => 'input_text_area', 'validators' => [['StringLength', false, [0, $maxLens['description']]]], ]); $descText = $this->getElement('add_show_description'); $descText->setDecorators([['ViewScript', [ 'viewScript' => 'form/add-show-block.phtml', 'class' => 'block-display', ]]]); // Add the instance description $this->addElement('textarea', 'add_show_instance_description', [ 'label' => _('Instance Description:'), 'required' => false, 'class' => 'input_text_area', 'validators' => [['StringLength', false, [0, $maxLens['description']]]], ]); $instanceDesc = $this->getElement('add_show_instance_description'); $instanceDesc->setDecorators([['ViewScript', [ 'viewScript' => 'form/add-show-block.phtml', 'class' => 'block-display', ]]]); $instanceDesc->setAttrib('disabled', 'disabled'); } /** * Enable the instance description when editing a show instance. */ public function enableInstanceDesc() { $el = $this->getElement('add_show_instance_description'); Logging::info($el); $el->setAttrib('disabled', null); $el->setAttrib('readonly', null); } public function disable() { $elements = $this->getElements(); foreach ($elements as $element) { if ($element->getType() != 'Zend_Form_Element_Hidden') { $element->setAttrib('disabled', 'disabled'); } } } public function makeReadonly() { $elements = $this->getElements(); foreach ($elements as $element) { if ($element->getType() != 'Zend_Form_Element_Hidden') { $element->setAttrib('readonly', 'readonly'); } } } }