public function init() { Zend_Loader::loadClass('Zend_Validate_Regex'); $this->translate = Zend_Registry::get('translate'); //Zend_Form::setDefaultTranslator( Zend_Registry::get('translate') ); // set method to POST $this->setMethod('post'); /* * hidden fields */ $acl = $this->addElement('hidden', 'acl', array('decorators' => $this->elDecorators)); $role_id = $this->addElement('hidden', 'role_id', array('decorators' => $this->elDecorators)); /* * Order role */ $order = $this->createElement('text', 'order', array('label' => $this->translate->_('Order') . '*', 'required' => true, 'size' => 3, 'maxlength' => 5)); $order->addValidator('Int')->setRequired(true); /* * Name role */ $name = $this->createElement('text', 'role_name', array('label' => $this->translate->_('Name') . '*', 'required' => true, 'size' => 30, 'maxlength' => 50)); $name_validator = new Zend_Validate_Regex('/^[a-zA-Z0-9_]+$/'); $name_validator->setMessage($this->translate->_('Role name incorrect. This contains only english alphabetical characters, digits and underscore.')); $name->addValidator('StringLength', false, array(2, 50))->addValidator($name_validator)->setRequired(true); /* * Description role */ $description = $this->createElement('textarea', 'description', array('label' => $this->translate->_('Description') . '*', 'required' => true, 'cols' => 50, 'rows' => 3)); $description->setRequired(true); /* * Inherited role id */ Zend_Loader::loadClass('Wbroles'); $table = new Wbroles(); if ($this->_roleid) { $where = $table->getAdapter()->quoteInto('id != ?', $this->_roleid); } else { $where = null; } $rows = $table->fetchAll($where, 'id'); // create element $inherit_id = $this->createElement('select', 'inherit_id', array('label' => $this->translate->_('Inherited role'), 'class' => 'ui-select', 'size' => 10)); $inherit_id->addMultiOption('', ''); foreach ($rows as $v) { $inherit_id->addMultiOption($v['id'], $v['name']); } unset($table); /* * submit button */ $submit = new Zend_Form_Element_Submit('submit', array('decorators' => $this->elDecorators, 'id' => 'ok_' . __CLASS__, 'class' => 'prefer_btn', 'label' => $this->translate->_('Submit Form'))); /* * reset button */ $reset = new Zend_Form_Element_Reset('reset', array('decorators' => $this->elDecorators, 'id' => 'reset_' . __CLASS__, 'label' => $this->translate->_('Cancel'))); /* * add elements to form */ $this->addElements(array($order, $name, $description, $inherit_id, $submit, $reset)); }
public function init() { Zend_Loader::loadClass('Zend_Validate_Regex'); $this->translate = Zend_Registry::get('translate'); //Zend_Form::setDefaultTranslator( Zend_Registry::get('translate') ); // set method to POST $this->setMethod('post'); /* * hidden fields */ $user_id = $this->addElement('hidden', 'user_id', array('decorators' => $this->elDecorators)); $action_id = $this->addElement('hidden', 'action_id', array('decorators' => $this->elDecorators)); /* * Login */ $login = $this->createElement('text', 'login', array('label' => $this->translate->_('Login') . '*', 'required' => true, 'size' => 30, 'maxlength' => 50)); $login_validator = new Zend_Validate_Regex('/^[a-zA-Z0-9_]+$/'); $login_validator->setMessage($this->translate->_('Login incorrect. Login contains only english alphabetical characters, digits and underscore.')); $login->addValidator('StringLength', false, array(2, 50))->addValidator($login_validator)->setRequired(true); /* * Password */ $pwd_label = $this->translate->_('Password'); if ($this->_action != 'update') { $pwd_label .= '*'; } $pwd = $this->createElement('password', 'pwd', array('label' => $pwd_label, 'size' => 25, 'maxlength' => 50)); $pwd->addValidator('StringLength', false, array(1, 50)); if ($this->_action != 'update') { $pwd->setRequired(true); } /* * Name */ $name = $this->createElement('text', 'name', array('label' => $this->translate->_('Name'), 'required' => false, 'size' => 40, 'maxlength' => 150)); $name->addValidator('StringLength', false, array(2, 150)); /* * Email */ $email = $this->createElement('text', 'email', array('label' => $this->translate->_('Email'), 'required' => false, 'size' => 30, 'maxlength' => 50)); $email_validator = new Zend_Validate_Regex('/^(.+)@([^@]+)$/'); $email_validator->setMessage($this->translate->_('Email incorrect.')); $email->addValidator('StringLength', false, array(3, 50))->addValidator($email_validator); /* * active */ $active = $this->createElement('checkbox', 'active', array('label' => $this->translate->_('Active'), 'checked' => 1)); /* * Role id */ Zend_Loader::loadClass('Wbroles'); $table = new Wbroles(); $rows = $table->fetchAll(null, 'id'); // create element $role_id = $this->createElement('select', 'role_id', array('label' => $this->translate->_('Role') . '*', 'class' => 'ui-select', 'size' => 10)); foreach ($rows as $v) { $role_id->addMultiOption($v['id'], $v['name']); } $role_id->setRequired(true); unset($table); /* * submit button */ $submit = new Zend_Form_Element_Submit('submit', array('decorators' => $this->elDecorators, 'id' => 'ok_' . __CLASS__, 'class' => 'prefer_btn', 'label' => $this->translate->_('Submit Form'))); /* * reset button */ $reset = new Zend_Form_Element_Reset('reset', array('decorators' => $this->elDecorators, 'id' => 'reset_' . __CLASS__, 'label' => $this->translate->_('Cancel'))); /* * add elements to form */ $this->addElements(array($login, $pwd, $name, $email, $active, $role_id, $action_id, $submit, $reset)); }