protected function _recursivelyPrepareForm(Zend_Form $form) { $belongsTo = $form instanceof Zend_Form ? $form->getElementsBelongTo() : null; $elementContent = ''; $separator = $this->getSeparator(); $translator = $form->getTranslator(); $view = $form->getView(); foreach ($form as $item) { $item->setView($view)->setTranslator($translator); if ($item instanceof Zend_Form_Element) { $item->setBelongsTo($belongsTo); } elseif (!empty($belongsTo) && $item instanceof Zend_Form) { if ($item->isArray()) { $name = $this->mergeBelongsTo($belongsTo, $item->getElementsBelongTo()); $item->setElementsBelongTo($name, true); } else { $item->setElementsBelongTo($belongsTo, true); } $this->_recursivelyPrepareForm($item); } elseif (!empty($belongsTo) && $item instanceof Zend_Form_DisplayGroup) { foreach ($item as $element) { $element->setBelongsTo($belongsTo); } } } }
public function testTranslatorFromRegistryUsedWhenNoneRegistered() { $this->assertNull($this->form->getTranslator()); $translator = new Zend_Translate('array', array()); Zend_Registry::set('Zend_Translate', $translator); $received = Zend_Form::getDefaultTranslator(); $this->assertSame($translator->getAdapter(), $received); $received = $this->form->getTranslator(); $this->assertSame($translator->getAdapter(), $received); $form = new Zend_Form(); $received = $form->getTranslator(); $this->assertSame($translator->getAdapter(), $received); }
/** * Adds an element Status of Project as a Combobox.<br/> * Defaults:<br/> * name = status<br/> * required = true<br/> * label = Status<br/> * dimension = 6<br/> * modelfield = status<br/> * class = selectpicker<br/> * first-options= must be and array of array('value1', 'label'). Default is an empty array<br/> * sample of first-options: array(array('value'=>null, 'label'=>'Choose an option')) * * @param Zend_Form $form The Zend_Form object where the element will be added * @param array $options The options to pass in the element * @return Zend_Form_Element Zend Form element just created */ public function addElementProjectStatus($form, $options = array()) { $elementName = isset($options['name']) ? $options['name'] : 'status'; $modelField = isset($options['modelfield']) ? $options['modelfield'] : 'status'; $form->addElement('select', $elementName, array('filters' => array('StringTrim'), 'label' => isset($options['label']) ? $options['label'] : 'Status', 'dimension' => isset($options['dimension']) ? $options['dimension'] : 6, 'required' => isset($options['required']) ? $options['required'] : true, 'value' => $this->_model ? $this->_model->{$modelField} : '', 'class' => isset($options['class']) ? $options['class'] : 'selectpicker')); $el = $form->getElement($elementName); if (isset($options['first-options'])) { foreach ($options['first-options'] as $op) { $el->addMultiOption($op['value'], $op['label']); } } $el->addMultiOption(Project_Model_Project::PROJECT_STATUS_DRAFT_ID, Project_Model_Project::PROJECT_STATUS_DRAFT_LABEL); $el->addMultiOption(Project_Model_Project::PROJECT_STATUS_ACTIVE_ID, Project_Model_Project::PROJECT_STATUS_ACTIVE_LABEL); $el->addMultiOption(Project_Model_Project::PROJECT_STATUS_FINISHED_ID, Project_Model_Project::PROJECT_STATUS_FINISHED_LABEL); $el->addMultiOption(Project_Model_Project::PROJECT_STATUS_CLOSED_ID, Project_Model_Project::PROJECT_STATUS_CLOSED_LABEL); $el->addMultiOption(Project_Model_Project::PROJECT_STATUS_PAUSED_ID, Project_Model_Project::PROJECT_STATUS_PAUSED_LABEL); $optionClasses[] = '" data-content="<span class=\'label\'>' . $form->getTranslator()->_(Project_Model_Project::PROJECT_STATUS_DRAFT_LABEL) . '</span>'; $optionClasses[] = '" data-content="<span class=\'label label-success\'>' . $form->getTranslator()->_(Project_Model_Project::PROJECT_STATUS_ACTIVE_LABEL) . '</span>'; $optionClasses[] = '" data-content="<span class=\'label label-info\'>' . $form->getTranslator()->_(Project_Model_Project::PROJECT_STATUS_FINISHED_LABEL) . '</span>'; $optionClasses[] = '" data-content="<span class=\'label label-inverse\'>' . $form->getTranslator()->_(Project_Model_Project::PROJECT_STATUS_CLOSED_LABEL) . '</span>'; $optionClasses[] = '" data-content="<span class=\'label label-warning\'>' . $form->getTranslator()->_(Project_Model_Project::PROJECT_STATUS_PAUSED_LABEL) . '</span>'; $el->setAttrib('optionClasses', $optionClasses); if ($this->_model && $this->_model->{$modelField}) { $el->setValue($this->_model->{$modelField}); } else { $el->setValue(null); } return $el; }
public function testCanDisableTranslation() { $this->testCanSetDefaultGlobalTranslator(); $this->form->setDisableTranslator(true); $this->assertNull($this->form->getTranslator()); }
protected function initTranslation(\Zend_Form $form, $id, $locale = null) { if ($locale === null) { $locale = \Zend_Locale::findLocale(); } $trans = $this->translateForm($id, $locale); if ($locale != null && $locale != "") { if (null === $form->getTranslator()) { $form->setTranslator($trans); } else { $form->getTranslator()->addTranslation($trans); } } }