/** * Override setDefaults to dynamically generate elements * @param array $defaults */ public function setDefaults($defaults) { $subform = $this->getSubForm('current'); foreach ($defaults['current'] as $id => $values) { $subform->addElement($this->createTaskElement($id, $values)); } // set defaults, which will propagate to newly created subforms & elements parent::setDefaults($defaults); }
/** */ public function initForm(Zend_Form $form, ListView $list, MemberView $member = null) { $newsletter = new Zend_Form_SubForm(); $newsletter->addElement('checkbox', 'subscriber', array('label' => 'I want to receive newsletter')); foreach ($list->groups as $group) { $type = $group['form_field'] == 'radio' ? 'radio' : 'multiCheckbox'; $newsletter->addElement($type, $group['name'], array('label' => $group['name'], 'multioptions' => $group['groups'])); } if ($member !== null) { $newsletter->setDefaults(array_merge((array) $member, $member->groups)); } $form->addSubForm($newsletter, 'newsletter'); }
/** * Przeciążenie setDefaults, żeby uwzględniało prefixy w filtrach * * @return Zend_Form */ public function setDefaults(array $defaults) { if ($this->filteredData && isset($defaults[$this->filteredData])) { $defaults = $defaults[$this->filteredData]; } return parent::setDefaults($defaults); }
/** * Add user attributes subform to form * * @param Zend_Form $form * @param Newscoop\Entity\User $user * @return void */ private function addUserAttributesSubForm(Zend_Form $form, User $user) { $translator = \Zend_Registry::get('container')->getService('translator'); $subForm = new Zend_Form_SubForm(); $subForm->setLegend($translator->trans('User attributes', array(), 'users')); foreach ($user->getRawAttributes() as $key => $val) { $subForm->addElement('text', $key, array('label' => $key)); } $subForm->setDefaults($user->getAttributes()); $form->addSubForm($subForm, 'attributes'); }