AddUser.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. require_once( __DIR__ . '/../validate/NotDemoValidate.php');
  3. class Application_Form_AddUser extends Zend_Form
  4. {
  5. public function init()
  6. {
  7. /*
  8. $this->addElementPrefixPath('Application_Validate',
  9. '../application/validate',
  10. 'validate');
  11. * */
  12. $notEmptyValidator = Application_Form_Helper_ValidationTypes::overrideNotEmptyValidator();
  13. $emailValidator = Application_Form_Helper_ValidationTypes::overrideEmailAddressValidator();
  14. $notDemoValidator = new Application_Validate_NotDemoValidate();
  15. $this->setAttrib('id', 'user_form');
  16. $hidden = new Zend_Form_Element_Hidden('user_id');
  17. $hidden->setDecorators(array('ViewHelper'));
  18. $this->addElement($hidden);
  19. $this->addElement('hash', 'csrf', array(
  20. 'salt' => 'unique'
  21. ));
  22. $login = new Zend_Form_Element_Text('login');
  23. $login->setLabel(_('Username:'));
  24. $login->setAttrib('class', 'input_text');
  25. $login->setRequired(true);
  26. $login->addValidator($notEmptyValidator);
  27. $login->addFilter('StringTrim');
  28. //$login->addValidator('UserNameValidate');
  29. $this->addElement($login);
  30. $password = new Zend_Form_Element_Password('password');
  31. $password->setLabel(_('Password:'));
  32. $password->setAttrib('class', 'input_text');
  33. $password->setRequired(true);
  34. $password->addFilter('StringTrim');
  35. $password->addValidator($notEmptyValidator);
  36. $this->addElement($password);
  37. $passwordVerify = new Zend_Form_Element_Password('passwordVerify');
  38. $passwordVerify->setLabel(_('Verify Password:'));
  39. $passwordVerify->setAttrib('class', 'input_text');
  40. $passwordVerify->setRequired(true);
  41. $passwordVerify->addFilter('StringTrim');
  42. $passwordVerify->addValidator($notEmptyValidator);
  43. $passwordVerify->addValidator($notDemoValidator);
  44. $this->addElement($passwordVerify);
  45. $firstName = new Zend_Form_Element_Text('first_name');
  46. $firstName->setLabel(_('Firstname:'));
  47. $firstName->setAttrib('class', 'input_text');
  48. $firstName->addFilter('StringTrim');
  49. $this->addElement($firstName);
  50. $lastName = new Zend_Form_Element_Text('last_name');
  51. $lastName->setLabel(_('Lastname:'));
  52. $lastName->setAttrib('class', 'input_text');
  53. $lastName->addFilter('StringTrim');
  54. $this->addElement($lastName);
  55. $email = new Zend_Form_Element_Text('email');
  56. $email->setLabel(_('Email:'));
  57. $email->setAttrib('class', 'input_text');
  58. $email->addFilter('StringTrim');
  59. $email->setRequired(true);
  60. $email->addValidator($notEmptyValidator);
  61. $email->addValidator($emailValidator);
  62. $this->addElement($email);
  63. $cellPhone = new Zend_Form_Element_Text('cell_phone');
  64. $cellPhone->setLabel(_('Mobile Phone:'));
  65. $cellPhone->setAttrib('class', 'input_text');
  66. $cellPhone->addFilter('StringTrim');
  67. $this->addElement($cellPhone);
  68. $skype = new Zend_Form_Element_Text('skype');
  69. $skype->setLabel(_('Skype:'));
  70. $skype->setAttrib('class', 'input_text');
  71. $skype->addFilter('StringTrim');
  72. $this->addElement($skype);
  73. $jabber = new Zend_Form_Element_Text('jabber');
  74. $jabber->setLabel(_('Jabber:'));
  75. $jabber->setAttrib('class', 'input_text');
  76. $jabber->addFilter('StringTrim');
  77. $jabber->addValidator($emailValidator);
  78. $this->addElement($jabber);
  79. $select = new Zend_Form_Element_Select('type');
  80. $select->setLabel(_('User Type:'));
  81. $select->setAttrib('class', 'input_select');
  82. $select->setAttrib('style', 'width: 40%');
  83. $select->setMultiOptions(array(
  84. "G" => _("Guest"),
  85. "H" => _("DJ"),
  86. "P" => _("Program Manager"),
  87. "A" => _("Admin")
  88. ));
  89. $select->setRequired(true);
  90. $this->addElement($select);
  91. $saveBtn = new Zend_Form_Element_Button('save_user');
  92. $saveBtn->setAttrib('class', 'btn btn-small right-floated');
  93. $saveBtn->setIgnore(true);
  94. $saveBtn->setLabel(_('Save'));
  95. $this->addElement($saveBtn);
  96. }
  97. public function validateLogin($data)
  98. {
  99. if (strlen($data['user_id']) == 0) {
  100. $count = CcSubjsQuery::create()->filterByDbLogin($data['login'])->count();
  101. if ($count != 0) {
  102. $this->getElement('login')->setErrors(array(_("Login name is not unique.")));
  103. return false;
  104. }
  105. }
  106. return true;
  107. }
  108. // We need to add the password identical validator here in case
  109. // Zend version is less than 1.10.5
  110. public function isValid($data) {
  111. $passwordIdenticalValidator = Application_Form_Helper_ValidationTypes::overridePasswordIdenticalValidator(
  112. $data['password']);
  113. $this->getElement('passwordVerify')->addValidator($passwordIdenticalValidator);
  114. return parent::isValid($data);
  115. }
  116. }