addElement('hidden', 'add_show_id', array( 'decorators' => array('ViewHelper') )); // Hidden element to indicate the instance id of the show // being edited. $this->addElement('hidden', 'add_show_instance_id', array( 'decorators' => array('ViewHelper') )); // Add name element $this->addElement('text', 'add_show_name', array( 'label' => _('Name:'), 'class' => 'input_text', 'required' => true, 'filters' => array('StringTrim'), 'value' => _('Untitled Show'), 'validators' => array($notEmptyValidator, array('StringLength', false, array(0, $maxLens['name']))) )); // Add URL element $this->addElement('text', 'add_show_url', array( 'label' => _('URL:'), 'class' => 'input_text', 'required' => false, 'filters' => array('StringTrim'), 'validators' => array($notEmptyValidator, array('StringLength', false, array(0, $maxLens['url']))) )); // Add genre element $this->addElement('text', 'add_show_genre', array( 'label' => _('Genre:'), 'class' => 'input_text', 'required' => false, 'filters' => array('StringTrim'), 'validators' => array(array('StringLength', false, array(0, $maxLens['genre']))) )); // Add the description element $this->addElement('textarea', 'add_show_description', array( 'label' => _('Description:'), 'required' => false, 'class' => 'input_text_area', 'validators' => array(array('StringLength', false, array(0, $maxLens['description']))) )); $descText = $this->getElement('add_show_description'); $descText->setDecorators(array(array('ViewScript', array( 'viewScript' => 'form/add-show-block.phtml', 'class' => 'block-display' )))); // Add the instance description $this->addElement('textarea', 'add_show_instance_description', array( 'label' => _('Instance Description:'), 'required' => false, 'class' => 'input_text_area', 'validators' => array(array('StringLength', false, array(0, $maxLens['description']))) )); $instanceDesc = $this->getElement('add_show_instance_description'); $instanceDesc->setDecorators(array(array('ViewScript', array( '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'); } } } }