Beispiel #1
0
 public function __construct($options = null)
 {
     Zend_Dojo::enableForm($this);
     parent::__construct($options);
     $product_id = new Zend_Dojo_Form_Element_ComboBox('product_id');
     $product_id->addMultiOption('', 'Select...');
     $product_id->setAttrib('class', 'txt_put');
     $product_id->setRequired(true)->addValidators(array(array('NotEmpty')));
     $offerproductname = new Zend_Dojo_Form_Element_ValidationTextBox('offerproductname');
     $offerproductname->addValidator(new Zend_Validate_Db_NoRecordExists('ourbank_productsofferdetails', 'offerproductname'));
     $offerproductname->setAttrib('class', 'txt_put');
     $offerproductname->setRequired(true)->addValidators(array(array('NotEmpty')));
     $offerproductshortname = new Zend_Dojo_Form_Element_ValidationTextBox('offerproductshortname');
     $offerproductshortname->addValidator(new Zend_Validate_Db_NoRecordExists('ourbank_productsofferdetails', 'offerproductshortname'));
     $offerproductshortname->setAttrib('class', 'txt_put');
     $offerproductshortname->setRequired(true)->addValidators(array(array('NotEmpty')));
     $offerproduct_description = new Zend_Dojo_Form_Element_SimpleTextarea('offerproduct_description', array('rows' => 3, 'cols' => 20));
     $offerproduct_description->setAttrib('class', '');
     $offerproduct_description->setRequired(true)->addValidators(array(array('NotEmpty')));
     //         $begindate = new Zend_Dojo_Form_Element_DateTextBox('begindate');
     //         $begindate->setLabel('Birthday');
     $begindate = new ZendX_JQuery_Form_Element_DatePicker('begindate', array('label' => 'Date:'));
     $begindate->setJQueryParam('dateFormat', 'yy-mm-dd');
     $begindate->setAttrib('class', 'txt_put');
     $begindate->setRequired(true)->addValidators(array(array('Date', true, array('messages' => array('dateNotYYYY-MM-DD' => 'Please enter in this format(YYYY-MM-DD)', 'dateInvalid' => "'%value%' is not a valid date Please enter in this format(YYYY-MM-DD)"))), array('Between', false, array($beginDate, $matureDate, 'messages' => array('notBetween' => 'date should be between ' . $beginDate . ' to (Closed date) ' . $matureDate)))));
     $minmumloanamount = new Zend_Dojo_Form_Element_NumberSpinner('minmumloanamount', array('value' => '7', 'label' => 'NumberSpinner', 'smallDelta' => 5, 'largeDelta' => 25, 'defaultTimeout' => 500, 'timeoutChangeRate' => 100, 'min' => 9, 'max' => 1550, 'places' => 0, 'maxlength' => 20));
     $minmumloanamount->setAttrib('class', 'txt_put');
     $minmumloanamount->setRequired(true)->addValidators(array(array('NotEmpty')));
     $closedate = new Zend_Dojo_Form_Element_TextBox('closedate');
     $closedate->setAttrib('class', 'txt_put');
     $closedate->setRequired(true)->addValidator(new Zend_Validate_Date('YYYY-MM-DD'), true)->addValidator(new Zend_Validate_GreaterThan($begindate));
     $applicableto = new Zend_Dojo_Form_Element_ComboBox('applicableto');
     $applicableto->addMultiOption('', 'Select...');
     $applicableto->setAttrib('class', 'txt_put');
     $applicableto->setRequired(true)->addValidators(array(array('NotEmpty')));
     $maximunloanamount = new Zend_Dojo_Form_Element_NumberTextBox('maximunloanamount');
     $maximunloanamount->setAttrib('class', 'txt_put');
     $maximunloanamount->setRequired(true);
     $validator = new Zend_Validate_Digits();
     $maximunloanamount->addValidator($validator, true);
     $minimumfrequency = new Zend_Dojo_Form_Element_NumberTextBox('minimumfrequency');
     $minimumfrequency->setAttrib('class', 'txt_put');
     $minimumfrequency->setRequired(true)->addValidators(array(array('NotEmpty')));
     $maximumfrequency = new Zend_Dojo_Form_Element_NumberTextBox('maximumfrequency');
     $maximumfrequency->setAttrib('class', 'txt_put');
     $maximumfrequency->setRequired(true)->addValidators(array(array('NotEmpty')));
     $graceperiodnumber = new Zend_Dojo_Form_Element_NumberTextBox('graceperiodnumber');
     $graceperiodnumber->setAttrib('class', 'txt_put');
     $graceperiodnumber->setRequired(true)->addValidators(array(array('NotEmpty')));
     $submit = new Zend_Dojo_Form_Element_SubmitButton('Submit');
     $this->addElements(array($offerproductname, $offerproductshortname, $offerproduct_description, $begindate, $closedate, $applicableto, $minmumloanamount, $maximunloanamount, $minimumfrequency, $maximumfrequency, $graceperiodnumber, $product_id, $submit));
 }
 public function init()
 {
     //логин пользователя
     $txtLog = new Zend_Dojo_Form_Element_ValidationTextBox(array('name' => 'username', 'label' => 'Имя пользователя (логин) (*)', 'required' => true, 'trim' => true, 'regExp' => AuthModel::LOGIN_PARTIAL_REGEX, 'invalidMessage' => 'Допускаются символы латинского алфавита, знак подчёркивания и минус. Длина от 3 до 32х символов'));
     //правильный валидатор имени пользователя в соответсвии с требованиями.
     $txtLog->addValidator('regex', true, array(AuthModel::LOGIN_REGEX));
     $txtPwd = new Zend_Dojo_Form_Element_PasswordTextBox(array('name' => 'password', 'label' => 'Пароль (проверьте текущую раскладку клавиатуры и состояние клавиши CapsLock) (*)', 'required' => true, 'regExp' => AuthModel::PWD_PARTIAL_REGEX, 'invalidMessage' => 'Пароль должен быть не менее ' . AuthModel::PWD_MIN_LEN . ' знаков и не более ' . AuthModel::PWD_MAX_LEN . ' знаков длиной'));
     $txtPwd->addFilter('StringTrim');
     $txtPwd2 = new Zend_Dojo_Form_Element_PasswordTextBox(array('name' => 'password2', 'label' => 'Повторите пароль (*)', 'required' => true, 'regExp' => AuthModel::PWD_PARTIAL_REGEX, 'invalidMessage' => 'Повторно введённый пароль не совпадает с исходным!'));
     $txtPwd2->addFilter('StringTrim');
     $txtEmail = new Zend_Dojo_Form_Element_ValidationTextBox(array('name' => 'email', 'label' => 'Электронная почта (*). Используется только внутри сайта для получения уведомлений о новых комментариях, смены пароля и прочих служебных действий. Третьим лицам не передаётся.', 'required' => true, 'trim' => true, 'regExp' => AuthModel::EMAIL_PARTIAL_REGEX, 'invalidMessage' => 'Вероятно, введённая строка не явлется адресом почты. Укажите правильный адрес'));
     $txtEmail->addFilter('StringToLower');
     $txtEmail->addValidator('StringLength', true, array(0, AuthModel::EMAIL_MAX_LEN))->addValidator('EmailAddress', true);
     $bShowEmail = new Zend_Dojo_Form_Element_CheckBox(array('name' => 'bshowemail', 'label' => 'Показывать другим пользователям Ваш email?', 'checkedValue' => '1', 'uncheckedValue' => '0', 'checked' => false));
     $bShowEmail->addValidator('regex', true, array('/^0|1$/'));
     $txtName = new Zend_Dojo_Form_Element_ValidationTextBox(array('name' => 'name', 'label' => 'Ваше имя', 'trim' => true, 'regExp' => '^.{0,' . AuthModel::NAME_MAX_LEN . '}$', 'invalidMessage' => 'Длина поля ограничена ' . AuthModel::NAME_MAX_LEN . ' символами'));
     $txtName->addValidators(array(array(new Zend_Validate_StringLength(0, AuthModel::NAME_MAX_LEN), true)));
     //страна
     $txtCountry = new Zend_Dojo_Form_Element_ValidationTextBox(array('name' => 'country', 'label' => 'Страна', 'trim' => true, 'regExp' => '^.{0,' . AuthModel::VAR_FIELD_MAX_LEN . '}$', 'invalidMessage' => 'Длина поля ограничена ' . AuthModel::VAR_FIELD_MAX_LEN . ' символами'));
     $varFieldLengthVld = array(new Zend_Validate_StringLength(0, AuthModel::VAR_FIELD_MAX_LEN), true);
     $txtCountry->addValidators(array($varFieldLengthVld));
     $txtCity = new Zend_Dojo_Form_Element_ValidationTextBox(array('name' => 'city', 'label' => 'Город', 'trim' => true, 'regExp' => '^.{0,' . AuthModel::VAR_FIELD_MAX_LEN . '}$', 'invalidMessage' => 'Длина поля ограничена ' . AuthModel::VAR_FIELD_MAX_LEN . ' символами'));
     $txtCity->addValidators(array($varFieldLengthVld));
     $birthday = new Zend_Dojo_Form_Element_DateTextBox(array('name' => 'birthday', 'label' => 'Ваш день рождения', 'invalidMessage' => 'Указана неверная дата', 'formatLength' => 'long'));
     $birthday->addValidator('Date', true);
     $cIcq = new Zend_Dojo_Form_Element_ValidationTextBox(array('name' => 'cicq', 'label' => 'Номер ICQ', 'trim' => true, 'regExp' => '^\\d{0,' . AuthModel::ICQNUM_MAX_CHARS . '}$', 'invalidMessage' => 'Номер ICQ должен являться числом'));
     $cIcq->addValidators(array(array('StringLength', true, array(0, AuthModel::ICQNUM_MAX_CHARS)), array('Digits', true)));
     $cSkype = new Zend_Dojo_Form_Element_TextBox(array('name' => 'cskype', 'label' => 'Skype', 'trim' => true));
     $cSkype->addValidators(array($varFieldLengthVld));
     $captcha = new Zend_Form_Element_Captcha('turingtest', array('label' => "Captcha", 'captcha' => 'ReCaptcha', 'captchaOptions' => array('privKey' => '6Lf9xQMAAAAAAGt9yhFNmsuemMpAzefPc0qDrxmo', 'pubKey' => '6Lf9xQMAAAAAAN9DCeBc_x8ZAK7hKtQrozTF6KAa')));
     //делаем язык. через жопу
     $captcha->getCaptcha()->getService()->setOption('lang', 'ru');
     $btnSubmit = new Zend_Dojo_Form_Element_SubmitButton(array('name' => 'register', 'label' => 'Register!'));
     //добавляем onSubmit, потому что требуется там ручками обрабатывать значение чекбокса - оно почему-то не меняется.
     //задаём проверочную функцию
     $this->setAttrib('onsubmit', "dojo.byId('bshowemail').value = dijit.byId('bshowemail').attr('checked') ? '1' : '0'; return true;");
     $this->setAttrib('id', 'regForm');
     $this->addElements(array($txtLog, $txtPwd, $txtPwd2, $txtEmail, $bShowEmail, $txtName, $txtCountry, $txtCity, $birthday, $cIcq, $cSkype, $captcha, $btnSubmit));
 }