예제 #1
0
 public function init()
 {
     parent::init();
     if (is_null($this->getAttrib('size'))) {
         $this->setAttrib('size', 6);
     }
     $validator = new Zend_Validate_Int();
     $validator->setMessage('validation_error_int');
     $this->addValidator($validator);
     $options = array();
     $min = $this->getAttrib('min');
     if (is_null($min)) {
         $min = 0;
     } else {
         $this->setAttrib('min', null);
         // remove from rendered attributes
     }
     $options['min'] = $min;
     $max = $this->getAttrib('max');
     if (is_null($max)) {
         $validator = new Zend_Validate_GreaterThan(array('min' => $min - 1));
         // inclusive not supported in ZF1
         $validator->setMessage('validation_error_number_tooSmall');
     } else {
         $this->setAttrib('max', null);
         // remove from rendered attributes
         $options['max'] = $max;
         $validator = new Zend_Validate_Between(array('min' => $min, 'max' => $max));
         $validator->setMessage('validation_error_number_notBetween');
     }
     $this->addValidator($validator);
 }
예제 #2
0
 public function init()
 {
     parent::init();
     if (is_null($this->getAttrib('size'))) {
         $this->setAttrib('size', 6);
     }
     $validator = new Zend_Validate_Int();
     $validator->setMessage('validation_error_int');
     $this->addValidator($validator);
     $validator = new Zend_Validate_GreaterThan(-1);
     $validator->setMessage('validation_error_negative_number');
     $this->addValidator($validator);
 }
예제 #3
0
 public function init()
 {
     parent::init();
     $this->setRequired(true);
     $this->setDisableTranslator(true);
     // publishing institutions are not translated
     $validator = new Zend_Validate_Int();
     $validator->setMessage('validation_error_int');
     $this->addValidator($validator);
     $options = Opus_DnbInstitute::getPublishers();
     foreach ($options as $option) {
         $this->addMultiOption($option->getId(), $option->getDisplayName());
     }
 }
예제 #4
0
파일: Series.php 프로젝트: alexukua/opus4
 public function init()
 {
     parent::init();
     $this->setRequired(true);
     $this->setDisableTranslator(true);
     // Schriftenreihen werden nicht übersetzt
     $validator = new Zend_Validate_Int();
     $validator->setMessage('validation_error_int');
     $this->addValidator($validator);
     $options = Opus_Series::getAll();
     foreach ($options as $option) {
         $this->addMultiOption($option->getId(), $option->getTitle());
     }
 }
예제 #5
0
 public function init()
 {
     parent::init();
     $this->setLabel($this->getName());
     // TODO use prefix for translation
     $validators = array();
     $validator = new Zend_Validate_Int();
     $validator->setMessage('validation_error_year_invalid_format');
     $validators[] = $validator;
     $validator = new Zend_Validate_GreaterThan(-1);
     $validator->setMessages(array(Zend_Validate_GreaterThan::NOT_GREATER => 'validation_error_year_invalid_negative'));
     $validators[] = $validator;
     $validator = new Zend_Validate_LessThan(10000);
     $validator->setMessages(array(Zend_Validate_LessThan::NOT_LESS => 'validation_error_year_too_large'));
     $validators[] = $validator;
     $this->setAttrib('placeholder', $this->getTranslator()->translate('year_format'));
     $this->setAttrib('size', 6);
     $this->setAttrib('maxlength', 4);
     $this->setValidators($validators, true);
 }
예제 #6
0
	public function formValidator($form,$formType)
	{
		$numberValidator = new Zend_Validate_Int();
		$numberValidator->setMessage(General_Models_Text::$text_notInt);
		$form->getElement('mileEarly')->addValidator($numberValidator);
		$form->getElement('mileEnd')->addValidator($numberValidator);
		
		$emptyValidator = new Zend_Validate_NotEmpty();
		$emptyValidator->setMessage(General_Models_Text::$text_notEmpty);
		$form->getElement('mileEarly')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('mileEnd')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		return $form;
	}
예제 #7
0
 /**
  * Faz o parse de um elemento <int> para Zend_Form.
  * @param SimpleXMLElement $element
  */
 protected function parseInt($element)
 {
     $form_element = new Zend_Form_Element_Text((string) $element->id);
     $validate_ìnt = new Zend_Validate_Int();
     $validate_ìnt->setMessage("Somente números inteiros");
     $form_element->addValidator($validate_ìnt);
     $form_element->setLabel((string) $element->label);
     $form_element->setAttrib('size', $element->size);
     if (isset($element->unit)) {
         $form_element->setDescription($element->unit);
     }
     if (isset($element->value)) {
         $form_element->setValue($element->value);
     } else {
         if (isset($element->default)) {
             $form_element->setValue($element->default);
         }
     }
     return $form_element;
 }
예제 #8
0
	public function formValidator($form,$formType)
	{
		$numberValidator = new Zend_Validate_Float();
		$numberValidator->setMessage(General_Models_Text::$text_notInt);
		$form->getElement('amount')->addValidator($numberValidator);
		
		$intValidator = new Zend_Validate_Int();
		$intValidator->setMessage(General_Models_Text::$text_notInt);
		$form->getElement('level')->addValidator($intValidator);
		$form->getElement('period')->addValidator($intValidator);
		$form->getElement('constrArea')->addValidator($intValidator);
		
		$emptyValidator = new Zend_Validate_NotEmpty();
		$emptyValidator->setMessage(General_Models_Text::$text_notEmpty);
		$form->getElement('name')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('contactName')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('license')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('startDate')->setAllowEmpty(false)
								->addValidator($emptyValidator);

		$dateValidator = new Zend_Validate_Date();
		$dateValidator->setMessage(General_Models_Text::$text_notDate);
		$form->getElement('startDate')->addValidator($dateValidator);
		
		return $form;
	}
예제 #9
0
 /**
  * returns an validator for settings params or error array
  *
  * @return Zend_Filter_Input|array on success data on error message array
  * @param array $data current data for validation
  */
 public function validate($data)
 {
     // define filter
     $filterTrim = new Zend_Filter_StringTrim();
     $filter = array('deleteItems' => $filterTrim, 'imagesPosition' => $filterTrim, 'imagesHeight' => $filterTrim, 'language' => $filterTrim, 'refresh' => $filterTrim, 'lastrefresh' => $filterTrim, 'view' => $filterTrim, 'offset' => $filterTrim, 'itemsperpage' => $filterTrim, 'selected' => $filterTrim, 'dateFilter' => $filterTrim, 'dateStart' => $filterTrim, 'dateEnd' => $filterTrim, 'search' => $filterTrim, 'unread' => $filterTrim, 'starred' => $filterTrim, 'currentPriorityStart' => $filterTrim, 'currentPriorityEnd' => $filterTrim, 'saveOpenCategories' => $filterTrim, 'openCategories' => $filterTrim, 'firstUnread' => $filterTrim, 'newWindow' => $filterTrim, 'public' => $filterTrim, 'anonymizer' => $filterTrim, 'sort' => $filterTrim, 'openitems' => $filterTrim, 'iconcache' => $filterTrim);
     // define validators
     $validatorType = new Zend_Validate_InArray(array("both", "multimedia", "messages"));
     $validatorType->setMessage(Zend_Registry::get('language')->translate('Only both, multimedia, message allowed'), Zend_Validate_InArray::NOT_IN_ARRAY);
     $validatorNotEmpty = new Zend_Validate_NotEmpty();
     $validatorNotEmpty->setMessage(Zend_Registry::get('language')->translate("Value is required and can't be empty"), Zend_Validate_NotEmpty::IS_EMPTY);
     $validatorNum = new Zend_Validate_Int(Zend_Registry::get('session')->language);
     $validatorNum->setLocale(Zend_Registry::get('session')->language);
     $validatorNum->setMessage(Zend_Registry::get('language')->translate('Only digits allowed'), Zend_Validate_Int::NOT_INT);
     $validatorInArray = new Zend_Validate_InArray(array("top", "bottom"));
     $validatorInArray->setMessage(Zend_Registry::get('language')->translate('Only top or bottom allowed'), Zend_Validate_InArray::NOT_IN_ARRAY);
     $validatorLanguage = new Zend_Validate_InArray(Zend_Registry::get('language')->getList());
     $validatorLanguage->setMessage(Zend_Registry::get('language')->translate('Language is not available'), Zend_Validate_InArray::NOT_IN_ARRAY);
     $validatorDate = new Zend_Validate_Date();
     $validatorDate->setMessage(Zend_Registry::get('language')->translate('No valid date given'), Zend_Validate_Date::INVALID);
     $validatorDate->setMessage(Zend_Registry::get('language')->translate('No valid date given'), Zend_Validate_Date::FALSEFORMAT);
     $validatorBiggerThanZero = new Zend_Validate_GreaterThan(0);
     $validatorBiggerThanZero->setMessage(Zend_Registry::get('language')->translate('Value must be bigger than 0'), Zend_Validate_GreaterThan::NOT_GREATER);
     $validatorBetweenDays = new Zend_Validate_Between(0, 2000);
     $validatorBetweenDays->setMessage(Zend_Registry::get('language')->translate('Please choose a value between 0 and 2000 days'), Zend_Validate_Between::NOT_BETWEEN);
     $validatorBetweenItemsperpage = new Zend_Validate_Between(0, 200);
     $validatorBetweenItemsperpage->setMessage(Zend_Registry::get('language')->translate('Please choose a value between 0 and 200 items per page'), Zend_Validate_Between::NOT_BETWEEN);
     $validatorSort = new Zend_Validate_InArray(array("date", "dateasc", "priority", "priorityasc"));
     $validatorSort->setMessage(Zend_Registry::get('language')->translate('Only date or rating allowed'), Zend_Validate_InArray::NOT_IN_ARRAY);
     $validators = array('deleteItems' => array($validatorNum, $validatorBetweenDays, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'imagesPosition' => array($validatorInArray, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'language' => array($validatorLanguage, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'refresh' => array($validatorNum, $validatorBiggerThanZero, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'lastrefresh' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'view' => array($validatorType, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'offset' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'itemsperpage' => array($validatorNum, $validatorBetweenItemsperpage, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'selected' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'dateFilter' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'search' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'unread' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'starred' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'currentPriorityStart' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'currentPriorityEnd' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'saveOpenCategories' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'openCategories' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'firstUnread' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'newWindow' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'public' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'anonymizer' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'sort' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL, $validatorSort), 'openitems' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'iconcache' => array(Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL));
     // optional check date
     if (isset($data['dateFilter']) && $data['dateFilter'] == 1) {
         $validators['dateStart'] = $validatorDate;
         $validators['dateEnd'] = $validatorDate;
     } else {
         $validators['dateStart'] = array(Zend_Filter_Input::ALLOW_EMPTY => true);
         $validators['dateEnd'] = array(Zend_Filter_Input::ALLOW_EMPTY => true);
         $data['dateStart'] = '';
         $data['dateEnd'] = '';
     }
     // create validation main object
     $validator = new Zend_Filter_Input($filter, $validators, $data, array(Zend_Filter_Input::NOT_EMPTY_MESSAGE => Zend_Registry::get('language')->translate("Value is required and can't be empty"), Zend_Filter_Input::BREAK_CHAIN => false));
     // return filter input object
     return parent::validate($validator);
 }
예제 #10
0
	public function formValidator($form,$formType)
	{	
		$emptyValidator = new Zend_Validate_NotEmpty();
		$emptyValidator->setMessage(General_Models_Text::$text_notEmpty);
		$form->getElement('logDate')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('part')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('operator')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('foreman')->setAllowEmpty(false)
								->addValidator($emptyValidator);

		$dateValidator = new Zend_Validate_Date();
		$dateValidator->setMessage(General_Models_Text::$text_notDate);
		$form->getElement('logDate')->addValidator($dateValidator);
		
		$intValidator = new Zend_Validate_Int();
		$intValidator->setMessage(General_Models_Text::$text_notInt);
		$form->getElement('number')->addValidator($intValidator);
		$form->getElement('tempHi')->addValidator($intValidator);
		$form->getElement('tempLo')->addValidator($intValidator);
		
		return $form;
	}
예제 #11
0
파일: Form.php 프로젝트: rizkioa/etak6
 protected function _createIntValidator($errorMessage)
 {
     $intValidator = new Zend_Validate_Int();
     $intValidator->setMessage($errorMessage, Zend_Validate_Int::NOT_INT);
     return $intValidator;
 }
예제 #12
0
 /**
  * validates feed input
  *
  * @return Zend_Filter_Input|array validator or error message array
  * @param array $data for validating
  * @param int $validateid (optional) indicates whether id has to be validated
  */
 protected function validate($data, $validateId = false)
 {
     // define filter
     $filterTrim = new Zend_Filter_StringTrim();
     $filter = array('name' => $filterTrim, 'url' => $filterTrim, 'category' => $filterTrim, 'priority' => $filterTrim, 'favicon' => $filterTrim, 'filter' => $filterTrim, 'source' => $filterTrim);
     if (!isset($data['source'])) {
         $data['source'] = '';
     }
     // define validators
     $validatorNotEmpty = new Zend_Validate_NotEmpty();
     $validatorNotEmpty->setMessage(Zend_Registry::get('language')->translate("Value is required and can't be empty"), Zend_Validate_NotEmpty::IS_EMPTY);
     $validatorCategoryId = new application_validate_categoryid();
     $validatorCategoryId->setMessage(Zend_Registry::get('language')->translate("category doesn't exists"), application_validate_categoryid::NOT_EXISTS);
     $validatorSource = new application_validate_source();
     $validatorSource->setMessage(Zend_Registry::get('language')->translate("source doesn't exists"), application_validate_source::NOT_EXISTS);
     $validatorNum = new Zend_Validate_Int(Zend_Registry::get('session')->language);
     $validatorNum->setLocale(Zend_Registry::get('session')->language);
     $validatorNum->setMessage(Zend_Registry::get('language')->translate('Only digits allowed'), Zend_Validate_Int::NOT_INT);
     $validatorNum->setMessage(Zend_Registry::get('language')->translate('Only digits allowed'), Zend_Validate_Int::INVALID);
     $validatorDuplicateFeed = new application_validate_duplicatefeed($data['source'], $validateId ? $data['id'] : false);
     $validatorDuplicateFeed->setMessage(Zend_Registry::get('language')->translate("feed already exists"), application_validate_duplicatefeed::ALREADY_EXISTS);
     $validators = array('name' => array($validatorNotEmpty, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_REQUIRED), 'url' => array($validatorDuplicateFeed, Zend_Filter_Input::ALLOW_EMPTY => true, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'category' => array($validatorNum, $validatorCategoryId, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL), 'priority' => array($validatorNum, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_REQUIRED), 'favicon' => array(Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL, Zend_Filter_Input::ALLOW_EMPTY => true), 'filter' => array(Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_OPTIONAL, Zend_Filter_Input::ALLOW_EMPTY => true), 'source' => array($validatorNotEmpty, $validatorSource, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_REQUIRED));
     // read from source whether url is optional or not
     if ($validatorSource->isValid($data['source'])) {
         $plugin = Zend_Controller_Action_HelperBroker::getStaticHelper('pluginloader')->getPlugin($data['source']);
         if (!$plugin->sourceOptional && $plugin->source !== false) {
             $validators['url'] = array($validatorNotEmpty, $validatorDuplicateFeed, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_REQUIRED);
         }
     }
     // insert filter and validate rules for id
     if ($validateId !== false) {
         $validatorFeedId = new application_validate_feedid();
         $validatorFeedId->setMessage(Zend_Registry::get('language')->translate("feed doesn't exists"), application_validate_feedid::NOT_EXISTS);
         $filter['id'] = $filterTrim;
         $validators['id'] = array($validatorNum, $validatorFeedId, Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_REQUIRED);
     }
     // create validation main object
     $validator = new Zend_Filter_Input($filter, $validators, $data, array(Zend_Filter_Input::NOT_EMPTY_MESSAGE => Zend_Registry::get('language')->translate("Value is required and can't be empty"), Zend_Filter_Input::BREAK_CHAIN => false));
     // return filter input object
     return parent::validate($validator);
 }
예제 #13
0
 private function _validateInteger()
 {
     $validators = array();
     $validator = new Zend_Validate_Int();
     $validator->setMessage($this->translate('publish_validation_error_int'), Zend_Validate_Int::NOT_INT);
     $validators[] = $validator;
     return $validators;
 }
예제 #14
0
	public function formValidator($form,$formType)
	{	
		$emptyValidator = new Zend_Validate_NotEmpty();
		$emptyValidator->setMessage(General_Models_Text::$text_notEmpty);
		$form->getElement('sealDate')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('returnDate')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('name')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('sealUser')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('contactName')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('sealFile')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('reason')->setAllowEmpty(false)
								->addValidator($emptyValidator);
		$form->getElement('copy')->setAllowEmpty(false)
								->addValidator($emptyValidator);

		$intValidator = new Zend_Validate_Int();
		$intValidator->setMessage(General_Models_Text::$text_notInt);
		$form->getElement('copy')->addValidator($intValidator);

		$dateValidator = new Zend_Validate_Date();
		$dateValidator->setMessage(General_Models_Text::$text_notDate);
		$form->getElement('sealDate')->addValidator($dateValidator);
		$form->getElement('returnDate')->addValidator($dateValidator);
		
		return $form;
	}
예제 #15
0
 /**
  * @author Ngo Anh Long <*****@*****.**>
  * If we use Twitter_Bootstrap3_Form_Horizontal to create a element follow format such as:
  * $studentId = $this->createElement('text', 'studentId');
  * Then: Type of element you must make it in lower case 'text'
  * Because: If you make the type of element in uper case 'Text', bootstrap3 is not active for U
  * Beside that: To create a element must follow the format: 
  * $studentId = $this->createElement('text', 'studentId');
  * If you have a recommendation for me, please recomment for me
  */
 public function init()
 {
     // Add some Attributes for this form
     // Name of form is: createProfile and method is POST to itsefl
     $this->addAttribs(['name' => 'createProfile']);
     $this->setMethod("POST");
     //Student Id
     //Not empty
     // Just contains number
     // Max length: 25
     // Min length: 6
     $studentId = $this->createElement('text', 'studentId');
     $studentId->setLabel('Mã sinh viên: ');
     $studentId->setRequired();
     $studentId->addValidator('NotEmpty', true, ['messages' => ['isEmpty' => 'Mã sinh viên yêu cầu không để trống']]);
     $studentId->addValidator('digits', true, ['messages' => ['notDigits' => 'Mã sinh viên yêu cầu chỉ được là số']]);
     $studentIdLengthValidate = new Zend_Validate_StringLength();
     $studentIdLengthValidate->setMax(25);
     $studentIdLengthValidate->setMin(6);
     $studentIdLengthValidate->setMessage('Mã sinh viên tối thiểu là 6 kí tự', Zend_Validate_StringLength::TOO_SHORT);
     $studentIdLengthValidate->setMessage('Mã sinh viên có độ dài tối đa là 25 kí tự', Zend_Validate_StringLength::TOO_LONG);
     $studentId->addValidator($studentIdLengthValidate);
     // studentName :
     // Not empty
     // Just contains: Alphabet and allow white space in it
     // Max length: 50
     // Min length: 6
     $studentName = $this->createElement('text', 'studentName');
     $studentName->setLabel("Your studentName");
     $studentName->setRequired();
     $studentName->addValidator('NotEmpty', true, ['messages' => ['isEmpty' => 'Tên sinh viên yêu cầu không để trống']]);
     $studentName->addValidator('Alpha', true, ['allowWhiteSpace' => true, 'messages' => ['notAlpha' => 'Tên sinh viên chỉ là chữ']]);
     $stringLengthValidate = new Zend_Validate_StringLength();
     $stringLengthValidate->setMax(50);
     $stringLengthValidate->setMin(6);
     $stringLengthValidate->setMessage('Tên sinh viên tối thiểu là 6 kí tự', Zend_Validate_StringLength::TOO_SHORT);
     $stringLengthValidate->setMessage('Tên sinh viên có độ dài tối đa là 50 kí tự', Zend_Validate_StringLength::TOO_LONG);
     $studentName->addValidator($stringLengthValidate);
     // dateOf birth:
     // 1. Not Empty
     // 2. Must follow this format: dd/mm/YYYY
     $dateOfBirth = $this->createElement('text', 'dateOfBirth');
     $dateOfBirth->setLabel("Date of birth: ");
     $dateOfBirth->setAttrib('placeholder', 'dd/mm/YYYY');
     $dateOfBirth->setRequired();
     $dateOfBirth->addValidator('NotEmpty', true, ['messages' => ['isEmpty' => 'Ngày sinh yêu cầu không được để trống']]);
     $dateValidator = new Zend_Validate_Date();
     $dateValidator->setFormat('dd-MM-yyyy');
     $dateValidator->setMessage("Ngày sinh của bạn phải theo định dạng: dd/mm/yyyy", Zend_Validate_Date::FALSEFORMAT);
     $dateValidator->setMessage("Ngày sinh của bạn phải theo định dạng: dd/mm/yyyy", Zend_Validate_Date::INVALID_DATE);
     $dateValidator->setMessage("Ngày sinh của bạn phải theo định dạng: dd/mm/yyyy", Zend_Validate_Date::INVALID);
     $dateOfBirth->addValidator($dateValidator);
     // Gender is a Select Box
     // Default value is 1 - male
     // And 0 - Female
     // Gender don't need validate because it has default value
     $gender = $this->createElement('select', "gender");
     $gender->setValue("1");
     $gender->setLabel("Gender");
     $gender->setMultiOptions(['1' => 'Male', '0' => 'Female']);
     //        $gender->setRequired();
     //        $gender->addValidator('NotEmpty', true, [
     //            'messages' => [
     //                'isEmpty' => 'Giới tính yêu cầu không được để trống'
     //            ]
     //        ]);
     // Phone number
     // Must:
     // 1. Not empty
     // 2. Is Integer, dont allow white space
     // After this validator, when get phone number, add number 0 to head of phone number
     // Max length: 12
     // Min length: 11
     // Note: this rule follows number of Vietnamese phone number
     $phone = $this->createElement('text', 'phone');
     $phone->setLabel("Your phone: ");
     $phone->setRequired();
     $phone->addValidator('NotEmpty', true, ['messages' => ['isEmpty' => 'Số điện thoại yêu cầu không để trống']]);
     $phoneDigitValidator = new Zend_Validate_Int();
     $phoneDigitValidator->setMessage('Số điện thoại chỉ bao gồm các chữ số nguyên', Zend_Validate_Int::NOT_INT);
     $phoneLengthValidator = new Zend_Validate_StringLength();
     $phoneLengthValidator->setMax(12);
     $phoneLengthValidator->setMin(11);
     $phoneLengthValidator->setMessage('Số điện thoại tối thiểu 11 chữ số', Zend_Validate_StringLength::TOO_SHORT);
     $phoneLengthValidator->setMessage("Số điện thoại chỉ tối đa 12 chữ số", Zend_Validate_StringLength::TOO_LONG);
     $phone->addValidator($phoneDigitValidator);
     $phone->addValidator($phoneLengthValidator);
     // Address
     // Contains: 40 columns and 10 rows
     // Address can empty is Ok
     $address = $this->createElement('textarea', 'address');
     $address->setLabel("Address: ");
     $address->setAttrib('cols', '40');
     $address->setAttrib('rows', '10');
     // Submit button
     $submit = $this->createElement('submit', 'submit');
     // Add element to this form
     $this->addElements([$studentId, $studentName, $dateOfBirth, $gender, $phone, $address, $submit]);
 }