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)); }