public function loginAction() { $form = new Z_Admin_Form(); $form->setElementDecorators(array('ViewHelper')); $form->addElement('text', 'login', array('required' => true, 'class' => 'ui-state-active ui-corner-bottom z-login-input')); $form->addElement('Password', 'password', array('required' => true, 'class' => 'ui-state-active ui-corner-bottom z-login-input')); $form->addElement('Checkbox', 'remember', array()); $form->addElement('Submit', 'submit', array('label' => 'Войти', 'class' => 'ui-state-default ui-corner-bl submit', 'onMouseOver' => '$(this).addClass("ui-state-hover ui-state-active")', 'onMouseOut' => '$(this).removeClass("ui-state-hover ui-state-active")')); if ($_POST && !isset($_POST['logout'])) { if ($form->isValid($_POST)) { $data = $form->getValues(); if (Z_Auth::getInstance()->login($data['login'], $data['password'], $data['remember'] ? true : false)) { jQuery::evalScript('z_menu_show();'); $this->ajaxGo('/' . $this->getRequest()->getModuleName() . '/'); } else { Z_FlashMessenger::addMessage('Логин или пароль не верны'); } } else { Z_FlashMessenger::addMessage('Введите логин и пароль'); } } if (Z_Auth::getInstance()->getUser()->getLogin() != 'guest') { $this->_forward('logout'); return; } $this->view->form = $form; }
protected function getFormInstance() { if ($this->z_form === NULL) { $this->z_form = new Z_Admin_Form(); //добавляем элементы формы на основании даннх из БД $modelForms = new Z_Model_Resourceforms(); $modelFormsParams = new Z_Model_Resourceformsparams(); $elements = $modelForms->fetchAll(array('resourceid=?' => $this->z_resourceInfo->id), 'orderid asc'); $isRoot = Z_Auth::getInstance()->getUser()->getRole() == 'root'; foreach ($elements as $element) { if ($element->type == 'MultiImage') { $element->type = 'File'; } if ($element->show_check) { // try{ if (!eval($element->show_check)) { continue; } // } // catch (Exception $e){ // continue; // } } $elementClass = 'Z_Admin_Form_Element_' . ucfirst($element->type); if ($element->only_for_root && $isRoot || !$element->only_for_root) { $elementOptions = array('label' => $element->label, 'description' => $element->description, 'required' => $element->required, 'value' => $element->value); $params = $modelFormsParams->fetchAll(array('formid=?' => $element->id)); foreach ($params as $param) { $elementOptions[$param->title] = $param->is_eval ? eval($param->value) : $param->value; } $this->z_form->addElement(new $elementClass($element->field, $elementOptions)); } } //пользовательское доопределение формы $this->getForm($this->z_form); //разбиваем элементы на группы $groupArray = array(); foreach ($this->z_form->getElements() as $el) { if ($group = $el->getAttrib('displayGroup')) { $groupId = Z_Transliterator::translateCyr($group); if (!isset($groupArray[$group])) { $groupArray[$group] = array(); } $groupArray[$group][] = $el->getName(); } } foreach ($groupArray as $groupKey => $groupEl) { $this->z_form->addDisplayGroup($groupEl, Z_Transliterator::translateCyr($groupKey), array('legend' => $groupKey)); } $this->addSubmitButtonsToForm($this->z_form); $this->z_form->getElement('submit')->removeDecorator('Label'); if (!$this->z_form->getAction()) { $this->z_form->setAction($this->view->url(array('id' => $this->_getParam('id')))); } } return $this->z_form; }
protected function getForm(Z_Admin_Form $form) { if ($this->_getParam('action') == 'edit') { $currentParam = $this->z_model->find($this->_getParam('id'))->current(); $type = $currentParam->type; if ($type == 'int') { $form->addElement(new Z_Admin_Form_Element_Text('value', array('label' => $currentParam->title, 'validators' => array('digits')))); } elseif ($type == 'string') { $form->addElement(new Z_Admin_Form_Element_Text('value', array('label' => $currentParam->title))); } elseif ($type == 'password') { $form->addElement(new Z_Admin_Form_Element_Password('value', array('label' => $currentParam->title, 'required' => true))); } elseif ($type == 'bool') { $form->addElement(new Z_Admin_Form_Element_Select('value', array('label' => $currentParam->title, 'MultiOptions' => array($this->t->_('Нет'), $this->t->_('Да'))))); } elseif ($type == 'text') { $form->addElement(new Z_Admin_Form_Element_Textarea('value', array('label' => $currentParam->title))); } elseif ($type == 'file') { $form->addElement(new Z_Admin_Form_Element_File('value', array('label' => $currentParam->title, 'validators' => array(array('Size', false, 1024 * 1024 * 5))))); } elseif ($type == 'image') { $form->addElement(new Z_Admin_Form_Element_File('value', array('label' => $currentParam->title, 'validators' => array(array('Size', false, 1024 * 1024 * 5), array('IsImage'))))); } elseif ($type == 'html') { $form->addElement(new Z_Admin_Form_Element_Mce('value', array('label' => $currentParam->title, 'toolbar' => 'default', 'filemanager' => true))); } } }