示例#1
0
 public function init()
 {
     Am_Form::init();
     if ($this->formType == self::PAYFORM) {
         $fn = 'customer__';
     } else {
         $fn = '';
     }
     $name = $this->addGroup()->setLabel(___("Cardholder Name\n" . 'cardholder first and last name, exactly as on the card'));
     $name->addRule('required', ___('Please enter credit card holder name'));
     $name->addText($fn . 'credit_card__cardholder_name', array('size' => 30))->addRule('required', ___('Please enter cardholder name exactly as on card'))->addRule('regex', ___('Please enter credit card holder name'), '|^[a-zA-Z_\' -]+$|');
     $this->addText($fn . 'credit_card__number', array('autocomplete' => 'off', 'size' => 22, 'maxlength' => 22))->setLabel(___('Credit Card Number'), ___('for example: 1111222233334444'))->addRule('required', ___('Please enter Credit Card Number'))->addRule('regex', ___('Invalid Credit Card Number'), '/^[0-9 -]+$/')->addRule('callback2', 'Invalid CC#', array($this->plugin, 'validateCreditCardNumber'));
     $gr = $this->addGroup()->setLabel(___("Card Expire\n" . 'Select card expiration date - month and year'));
     $gr->addSelect($fn . 'credit_card__expiration_month')->loadOptions($this->getMonthOptions());
     $gr->addSelect($fn . 'credit_card__expiration_year')->loadOptions($this->getYearOptions());
     $this->addPassword($fn . 'credit_card__cvv', array('autocomplete' => 'off', 'size' => 4, 'maxlength' => 4))->setLabel(___("Credit Card Code\n" . 'The "Card Code" is a three- or four-digit security code that ' . 'is printed on the back of credit cards in the card\'s ' . 'signature panel (or on the front for American Express cards).'))->addRule('required', ___('Please enter Credit Card Code'))->addRule('regex', ___('Please enter Credit Card Code'), '/^\\s*\\d{3,4}\\s*$/');
     $fieldSet = $this->addFieldset(___('Address Info'))->setLabel(___("Address Info\n" . '(must match your credit card statement delivery address)'));
     $bname = $fieldSet->addGroup()->setLabel(___("Billing Name\n" . 'Billing Address First and Last name'));
     $bname->addRule('required', ___('Please enter billing name'));
     $bname->addText($fn . 'credit_card__billing_address__first_name', array('size' => 15))->addRule('required', ___('Please enter first name'))->addRule('regex', ___('Please enter first name'), '|^[a-zA-Z_\' -]+$|');
     $bname->addText($fn . 'credit_card__billing_address__last_name', array('size' => 15))->addRule('required', ___('Please enter last name'))->addRule('regex', ___('Please enter last name'), '|^[a-zA-Z_\' -]+$|');
     $fieldSet->addText($fn . 'credit_card__billing_address__street_address')->setLabel(___('Street Address'))->addRule('required', ___('Please enter Street Address'));
     $fieldSet->addText($fn . 'credit_card__billing_address__extended_address')->setLabel(___('Street Address (Second Line)'));
     $fieldSet->addText($fn . 'credit_card__billing_address__locality')->setLabel(___('City'));
     $fieldSet->addText($fn . 'credit_card__billing_address__postal_code')->setLabel(___('Zipcode'))->addRule('required', ___('Please enter ZIP code'));
     $country = $fieldSet->addSelect($fn . 'credit_card__billing_address__country_name')->setLabel(___('Country'))->setId('f_cc_country')->loadOptions(Am_Di::getInstance()->countryTable->getOptions(true));
     $country->addRule('required', ___('Please enter Country'));
     $group = $fieldSet->addGroup()->setLabel(___('State'));
     $group->addRule('required', ___('Please enter State'));
     $stateSelect = $group->addSelect($fn . 'credit_card__billing_address__region')->setId('f_cc_state')->loadOptions($stateOptions = Am_Di::getInstance()->stateTable->getOptions(@$_REQUEST['cc_country'], true));
     $stateText = $group->addText($fn . 'credit_card__billing_address__region')->setId('t_cc_state');
     $disableObj = $stateOptions ? $stateText : $stateSelect;
     $disableObj->setAttribute('disabled', 'disabled')->setAttribute('style', 'display: none');
     // if free trial set _TPL_CC_INFO_SUBMIT_BUT2
     $buttons = $this->addGroup();
     $buttons->addSubmit('_cc_', array('value' => '    ' . $this->payButtons[$this->formType] . '    '));
     $this->plugin->onFormInit($this);
 }
示例#2
0
    public function init()
    {
        parent::init();
        $name = $this->addGroup()->setLabel(array(___('Cardholder Name'), sprintf(___('cardholder first and last name, exactly as%son the card'), '<br/>')));
        $name->addRule('required', ___('Please enter credit card holder name'));
        $name_f = $name->addText('cc_name_f', array('size' => 15));
        $name_f->addRule('required', ___('Please enter credit card holder first name'))->addRule('regex', ___('Please enter credit card holder first name'), '|^[a-zA-Z_\' -]+$|');
        $name_l = $name->addText('cc_name_l', array('size' => 15));
        $name_l->addRule('required', ___('Please enter credit card holder last name'))->addRule('regex', ___('Please enter credit card holder last name'), '|^[a-zA-Z_\' -]+$|');
        $options = $this->plugin->getFormOptions();
        if (in_array(Am_Paysystem_CreditCard::CC_COMPANY, $options)) {
            $company = $this->addText('cc_company')->setLabel(array(___('Company Name'), sprintf(___('the company name associated with the%sbilling address for the transaction'), '<br/>')));
        }
        if (in_array(Am_Paysystem_CreditCard::CC_TYPE_OPTIONS, $options)) {
            $type = $this->addSelect('cc_type')->setLabel(array(___('Credit Card Type'), ___('please select one')))->loadOptions(array_merge(array('' => '-- ' . ___('Please choose') . ' --'), $this->plugin->getCreditCardTypeOptions()));
            $type->addRule('required', ___('Please choose a Credit Card Type'));
        }
        if ($this->formType == self::ADMIN_UPDATE) {
            $group = $this->addGroup()->setLabel(___('Credit Card Number'), ___('for example: 1111-2222-3333-4444'));
            $group->addStatic('cc');
            $cc = $group->addText('cc_number', array('autocomplete' => 'off', 'size' => 22, 'maxlength' => 22, 'style' => 'display:none'));
            $cc->addRule('regex', ___('Invalid Credit Card Number'), '/^[0-9 -]+$/')->addRule('callback2', 'Invalid CC#', array($this->plugin, 'validateCreditCardNumber'));
            $group->addScript("")->setScript(<<<CUT
\$(function(){
    \$("input#cc_number-0").closest(".element").click(function(){
        var input = \$("input#cc_number-0").detach();
        \$(this).empty().append(input.show());
    });
});
CUT
);
        } else {
            $cc = $this->addText('cc_number', array('autocomplete' => 'off', 'size' => 22, 'maxlength' => 22))->setLabel(___('Credit Card Number'), ___('for example: 1111-2222-3333-4444'));
            $cc->addRule('required', ___('Please enter Credit Card Number'))->addRule('regex', ___('Invalid Credit Card Number'), '/^[0-9 -]+$/')->addRule('callback2', 'Invalid CC#', array($this->plugin, 'validateCreditCardNumber'));
        }
        $expire = $this->addElement(new Am_Form_Element_CreditCardExpire('cc_expire'))->setLabel(array(___('Card Expire'), ___('Select card expiration date - month and year')));
        if (in_array(Am_Paysystem_CreditCard::CC_CODE, $options)) {
            $code = $this->addPassword('cc_code', array('autocomplete' => 'off', 'size' => 4, 'maxlength' => 4))->setLabel(___('Credit Card Code'), sprintf(___('The "Card Code" is a three- or four-digit security code%sthat is printed on the back of credit cards in the card\'s%ssignature panel (or on the front for American Express cards).'), '<br>', '<br>'));
            $code->addRule('required', ___('Please enter Credit Card Code'))->addRule('regex', ___('Please enter Credit Card Code'), '/^\\s*\\d{3,4}\\s*$/');
        }
        if (in_array(Am_Paysystem_CreditCard::CC_MAESTRO_SOLO_SWITCH, $options)) {
            $issue = $this->addText('cc_issuenum', array('autocomplete' => 'off', 'size' => 20, 'maxlength' => 22))->setLabel(___('Card Issue #'), ___('is required for Maestro/Solo/Switch credit cards only'))->addRule('regex', ___('Invalid Issue Number'), '/^\\d+$/');
            $this->addElement(new Am_Form_Element_CreditCardExpire('cc_startdate', null, array('dont_require' => true, 'years' => -10)))->setLabel(array(___('Card Start Date'), ___('is required for Maestro/Solo/Switch credit cards only')));
        }
        if (in_array(Am_Paysystem_CreditCard::CC_INPUT_BIN, $options)) {
            $fieldSet = $this->addFieldset()->setLabel(___('Bank Identification'));
            $fieldSet->addText('_cc_bin_name', array())->setLabel(array(___('Bank Name'), ___('name of the bank which issued the credit card')));
            $fieldSet->addText('_cc_bin_phone', array())->setLabel(array(___('Bank Phone'), ___('customer service phone number listed on back of your credit card')));
        }
        $fieldSet = $this->addFieldset(___('Address Info'))->setLabel(array(___('Address Info'), ___('(must match your credit card statement delivery address)')));
        $street = $fieldSet->addText('cc_street')->setLabel(___('Street Address'))->addRule('required', ___('Please enter Street Address'));
        if (in_array(Am_Paysystem_CreditCard::CC_HOUSENUMBER, $options)) {
            $house = $fieldSet->addText('cc_housenumber', array('size' => 15))->setLabel(___('Housenumber'))->addRule('required', ___('Please enter housenumber'));
        }
        $city = $fieldSet->addText('cc_city')->setLabel(___('City'))->addRule('required', ___('Please enter City'));
        if (in_array(Am_Paysystem_CreditCard::CC_PROVINCE_OUTSIDE_OF_US, $options)) {
            $province = $fieldSet->addText('cc_province', array('size' => 15))->setLabel(array(___('Billing International Province'), ___('for international provinces outside of US & Canada include the province name here')))->addRule('required', ___('Please choose state'));
        }
        $zip = $fieldSet->addText('cc_zip')->setLabel(___('ZIP'))->addRule('required', ___('Please enter ZIP code'));
        $country = $fieldSet->addSelect('cc_country')->setLabel(___('Country'))->setId('f_cc_country')->loadOptions(Am_Di::getInstance()->countryTable->getOptions(true));
        $country->addRule('required', ___('Please enter Country'));
        $group = $fieldSet->addGroup()->setLabel(___('State'));
        $group->addRule('required', ___('Please enter State'));
        /** @todo load correct states */
        $stateSelect = $group->addSelect('cc_state')->setId('f_cc_state')->loadOptions($stateOptions = Am_Di::getInstance()->stateTable->getOptions(@$_REQUEST['cc_country'], true));
        $stateText = $group->addText('cc_state')->setId('t_cc_state');
        $disableObj = $stateOptions ? $stateText : $stateSelect;
        $disableObj->setAttribute('disabled', 'disabled')->setAttribute('style', 'display: none');
        if (in_array(Am_Paysystem_CreditCard::CC_PHONE, $options)) {
            $phone = $fieldSet->addText('cc_phone', array('size' => 14))->setLabel(___('Phone'))->addRule('required', ___('Please enter phone number'))->addRule('regex', ___('Please enter phone number'), '|^[\\d() +-]+$|');
        }
        // if free trial set _TPL_CC_INFO_SUBMIT_BUT2
        $buttons = $this->addGroup();
        $buttons->addSubmit('_cc_', array('value' => '    ' . $this->payButtons[$this->formType] . '    '));
        if ($this->formType == self::USER_UPDATE) {
            $buttons->addInputButton('_cc_', array('value' => '    ' . ___("Back") . '    ', 'onclick' => 'goBackToMember()'));
            $this->addScript("")->setScript("function goBackToMember(){ window.location = window.rootUrl + '/member'; }");
        }
        $this->plugin->onFormInit($this);
    }
示例#3
0
    public function init()
    {
        parent::init();
        $name = $this->addGroup()->setLabel(___("Cardholder Name\n" . 'cardholder first and last name, exactly as on the card'));
        $name->addRule('required', ___('Please enter debit card holder name'));
        $name_f = $name->addText('cc_name_f', array('size' => 15));
        $name_f->addRule('required', ___('Please enter debit card holder first name'))->addRule('regex', ___('Please enter debit card holder first name'), '|^[a-zA-Z_\' -]+$|');
        $name_l = $name->addText('cc_name_l', array('size' => 15));
        $name_l->addRule('required', ___('Please enter debit card holder last name'))->addRule('regex', ___('Please enter debit card holder last name'), '|^[a-zA-Z_\' -]+$|');
        $options = $this->plugin->getFormOptions();
        $company = $this->addText('cc_company')->setLabel(___('Bank Code'));
        if ($this->formType == self::ADMIN_UPDATE) {
            $group = $this->addGroup()->setLabel(___('Debit Card Number'), ___('for example: 1111-2222-3333-4444'));
            $group->addStatic('cc');
            $cc = $group->addText('cc_number', array('autocomplete' => 'off', 'size' => 22, 'maxlength' => 22, 'style' => 'display:none'));
            $cc->addRule('regex', ___('Invalid Debit Card Number'), '/^[0-9 -]+$/');
            $group->addScript("")->setScript(<<<CUT
\$(function(){
    \$("input#cc_number-0").closest(".element").click(function(){
        var input = \$("input#cc_number-0").detach();
        \$(this).empty().append(input.show());
    });
});
CUT
);
        } else {
            $cc = $this->addText('cc_number', array('autocomplete' => 'off', 'size' => 22, 'maxlength' => 22))->setLabel(___('Debit Card Number'), ___('for example: 1111-2222-3333-4444'));
            $cc->addRule('required', ___('Please enter Debit Card Number'))->addRule('regex', ___('Invalid Debit Card Number'), '/^[0-9 -]+$/');
        }
        $fieldSet = $this->addFieldset(___('Address Info'))->setLabel(___("Address Info\n" . '(must match your debit card statement delivery address)'));
        $street = $fieldSet->addText('cc_street')->setLabel(___('Street Address'))->addRule('required', ___('Please enter Street Address'));
        $city = $fieldSet->addText('cc_city')->setLabel(___('City'))->addRule('required', ___('Please enter City'));
        $zip = $fieldSet->addText('cc_zip')->setLabel(___('ZIP'))->addRule('required', ___('Please enter ZIP code'));
        $country = $fieldSet->addSelect('cc_country')->setLabel(___('Country'))->setId('f_cc_country')->loadOptions(Am_Di::getInstance()->countryTable->getOptions(true));
        $country->addRule('required', ___('Please enter Country'));
        $group = $fieldSet->addGroup()->setLabel(___('State'));
        $group->addRule('required', ___('Please enter State'));
        /** @todo load correct states */
        $stateSelect = $group->addSelect('cc_state')->setId('f_cc_state')->loadOptions($stateOptions = Am_Di::getInstance()->stateTable->getOptions(@$_REQUEST['cc_country'], true));
        $stateText = $group->addText('cc_state')->setId('t_cc_state');
        $disableObj = $stateOptions ? $stateText : $stateSelect;
        $disableObj->setAttribute('disabled', 'disabled')->setAttribute('style', 'display: none');
        // if free trial set _TPL_CC_INFO_SUBMIT_BUT2
        $buttons = $this->addGroup();
        $buttons->addSubmit('_cc_', array('value' => '    ' . $this->payButtons[$this->formType] . '    '));
        if ($this->formType == self::USER_UPDATE) {
            $buttons->addInputButton('_cc_', array('value' => '    ' . ___("Back") . '    ', 'onclick' => 'goBackToMember()'));
            $this->addScript("")->setScript("function goBackToMember(){ window.location = window.rootUrl + '/member'; }");
        }
        //$this->plugin->onFormInit($this);
    }
示例#4
0
    public function init()
    {
        parent::init();
        $this->setAction($this->plugin->getConfig('testing') ? Am_Paysystem_AuthorizeDpm::SANDBOX_URL : Am_Paysystem_AuthorizeDpm::LIVE_URL);
        $name = $this->addGroup()->setLabel(___("Cardholder Name\n" . 'cardholder first and last name, exactly as on the card'));
        $name->setSeparator(' ');
        $name->addRule('required', ___('Please enter credit card holder name'));
        $name_f = $name->addText('x_first_name', array('size' => 15));
        $name_f->addRule('required', ___('Please enter credit card holder first name'))->addRule('regex', ___('Please enter credit card holder first name'), '/^[^=:<>{}()"]+$/D');
        $name_l = $name->addText('x_last_name', array('size' => 15));
        $name_l->addRule('required', ___('Please enter credit card holder last name'))->addRule('regex', ___('Please enter credit card holder last name'), '/^[^=:<>{}()"]+$/D');
        $cc = $this->addText('x_card_num', array('autocomplete' => 'off', 'size' => 22, 'maxlength' => 22))->setLabel(___("Credit Card Number\n" . 'for example: 1111-2222-3333-4444'));
        $cc->addRule('required', ___('Please enter Credit Card Number'))->addRule('regex', ___('Invalid Credit Card Number'), '/^[0-9 -]+$/');
        $expire = $this->addElement(new Am_Form_Element_CreditCardExpire('cc_expire'))->setLabel(___("Card Expire\n" . 'Select card expiration date - month and year'))->addRule('required');
        $this->addHidden('x_exp_date');
        $this->addScript()->setScript(<<<CUT
\$(function(){
    \$('select[name^=cc_expire]').change(function(){
        console.log('here');
        \$('input[name=x_exp_date]').val(\$('#m-0').val() + '/' + \$('#y-0').val().slice(2));
    })
})
CUT
);
        $code = $this->addPassword('x_card_code', array('autocomplete' => 'off', 'size' => 4, 'maxlength' => 4))->setLabel(___("Credit Card Code\n" . 'The "Card Code" is a three- or four-digit security code ' . 'that is printed on the back of credit cards in the card\'s ' . 'signature panel (or on the front for American Express cards)'));
        $code->addRule('required', ___('Please enter Credit Card Code'))->addRule('regex', ___('Please enter Credit Card Code'), '/^\\s*\\d{3,4}\\s*$/');
        $fieldSet = $this->addFieldset(___('Address Info'))->setLabel(___("Address Info\n" . '(must match your credit card statement delivery address)'));
        $street = $fieldSet->addText('x_address')->setLabel(___('Street Address'))->addRule('required', ___('Please enter Street Address'));
        $city = $fieldSet->addText('x_city')->setLabel(___('City'))->addRule('required', ___('Please enter City'));
        $zip = $fieldSet->addText('x_zip')->setLabel(___('ZIP'))->addRule('required', ___('Please enter ZIP code'));
        $country = $fieldSet->addSelect('x_country')->setLabel(___('Country'))->setId('f_cc_country')->loadOptions(Am_Di::getInstance()->countryTable->getOptions(true));
        $country->addRule('required', ___('Please enter Country'));
        $group = $fieldSet->addGroup()->setLabel(___('State'));
        $group->addRule('required', ___('Please enter State'));
        $stateSelect = $group->addSelect('x_state')->setId('f_cc_state')->loadOptions($stateOptions = Am_Di::getInstance()->stateTable->getOptions(@$_REQUEST['x_country'], true));
        $stateText = $group->addText('x_state')->setId('t_cc_state');
        $disableObj = $stateOptions ? $stateText : $stateSelect;
        $disableObj->setAttribute('disabled', 'disabled')->setAttribute('style', 'display: none');
        $buttons = $this->addGroup();
        $buttons->addSubmit('_cc_', array('value' => ___('Subscribe And Pay')));
        $this->plugin->onInitForm($this);
    }
示例#5
0
    public function init()
    {
        parent::init();
        $name = $this->addGroup()->setLabel(___("Your Name\n" . 'your first and last name'));
        $name->setSeparator(' ');
        $name->addRule('required', ___('Please enter your name'));
        $name->addText('echeck_name_f', array('size' => 15))->addRule('required', ___('Please enter first name'))->addRule('regex', ___('Please enter first name'), '|^[a-zA-Z_\' -]+$|');
        $name->addText('echeck_name_l', array('size' => 15))->addRule('required', ___('Please enter your last name'))->addRule('regex', ___('Please enter your last name'), '|^[a-zA-Z_\' -]+$|');
        if ($this->formType == self::ADMIN_UPDATE) {
            $group = $this->addGroup()->setLabel(___("Bank Account Number\n" . 'Up to 20 digits'));
            $group->addStatic()->setContent('<div>');
            $group->addStatic('echeck');
            $group->addText('echeck_ban', array('autocomplete' => 'off', 'maxlength' => 20, 'style' => 'display:none'))->addRule('regex', ___('Invalid Bank Account Number'), '/^[a-zA-Z0-9]{1,20}$/');
            $group->addScript("")->setScript(<<<CUT
\$(function(){
    \$("input#echeck_ban-0").closest(".element").click(function(){
        var input = \$("input#echeck_ban-0").detach();
        \$(this).empty().append(input.show());
        input.focus();
        \$(this).unbind('click');
    });
});
CUT
);
            $group->addStatic()->setContent('</div>');
        } else {
            $this->addText('echeck_ban', array('autocomplete' => 'off', 'maxlength' => 20))->setLabel(___("Your Bank Account Number\n" . 'Up to 20 digits'))->addRule('required', ___('Please enter Account Number'))->addRule('regex', ___('Invalid Account Number'), '/^[a-zA-Z0-9]{1,20}$/');
        }
        $this->addText('echeck_aba', array('autocomplete' => 'off', 'maxlength' => 9))->setLabel(___("ABA Routing Number\n" . '9 digits'))->addRule('required', ___('Please enter Routing Number'))->addRule('regex', ___('Invalid Routing Number'), '/^[a-zA-Z0-9]{1,9}$/');
        $options = $this->plugin->getFormOptions();
        if (in_array(Am_Paysystem_Echeck::ECHECK_COMPANY, $options)) {
            $this->addText(Am_Paysystem_Echeck::ECHECK_COMPANY)->setLabel(___("Company Name\n" . 'the company name associated with the billing address for ' . 'the transaction'));
        }
        if (in_array(Am_Paysystem_Echeck::ECHECK_TYPE_OPTIONS, $options)) {
            $type = $this->addSelect(Am_Paysystem_Echeck::ECHECK_TYPE_OPTIONS)->setLabel(___("Bank Account Type\n" . 'please select one'))->loadOptions(array_merge(array('' => '-- ' . ___('Please choose') . ' --'), $this->plugin->getEcheckTypeOptions()));
            $type->addRule('required', ___('Please choose a Bank Account Type'));
        }
        if (in_array(Am_Paysystem_Echeck::ECHECK_BANK_NAME, $options)) {
            $this->addText(Am_Paysystem_Echeck::ECHECK_BANK_NAME, array('autocomplete' => 'off', 'maxlength' => 50))->setLabel(___('Bank Name'))->addRule('required', ___('Please enter Bank Name'));
        }
        if (in_array(Am_Paysystem_Echeck::ECHECK_ACCOUNT_NAME, $options)) {
            $this->addText(Am_Paysystem_Echeck::ECHECK_ACCOUNT_NAME, array('autocomplete' => 'off', 'maxlength' => 50))->setLabel(___("Bank Account Name\n" . 'name associated with the bank account'))->addRule('required', ___('Please enter Bank Account Name'));
        }
        if (in_array(Am_Paysystem_Echeck::ECHECK_ADDRESS, $options)) {
            $fieldSet = $this->addFieldset(___('Address Info'))->setLabel(___("Address Info\n" . '(must match your credit card statement delivery address)'));
            if (in_array(Am_Paysystem_Echeck::ECHECK_STREET, $options)) {
                $street = $fieldSet->addText('echeck_street')->setLabel(___('Street Address'))->addRule('required', ___('Please enter Street Address'));
            }
            if (in_array(Am_Paysystem_Echeck::ECHECK_STREET2, $options)) {
                $street2 = $fieldSet->addText('echeck_street2')->setLabel(___('Street Address (Second Line)'))->addRule('required', ___('Please enter Street Address'));
            }
            if (in_array(Am_Paysystem_Echeck::ECHECK_CITY, $options)) {
                $city = $fieldSet->addText('echeck_city')->setLabel(___('City'))->addRule('required', ___('Please enter City'));
            }
            if (in_array(Am_Paysystem_Echeck::ECHECK_ZIP, $options)) {
                $zip = $fieldSet->addText('echeck_zip')->setLabel(___('ZIP'))->addRule('required', ___('Please enter ZIP code'));
            }
            if (in_array(Am_Paysystem_Echeck::ECHECK_COUNTRY, $options)) {
                $country = $fieldSet->addSelect('echeck_country')->setLabel(___('Country'))->setId('f_cc_country')->loadOptions(Am_Di::getInstance()->countryTable->getOptions(true));
                $country->addRule('required', ___('Please enter Country'));
            }
            if (in_array(Am_Paysystem_Echeck::ECHECK_STATE, $options)) {
                $group = $fieldSet->addGroup()->setLabel(___('State'));
                $group->addRule('required', ___('Please enter State'));
                /** @todo load correct states */
                $stateSelect = $group->addSelect('echeck_state')->setId('f_cc_state')->loadOptions($stateOptions = Am_Di::getInstance()->stateTable->getOptions(@$_REQUEST['echeck_country'], true));
                $stateText = $group->addText('echeck_state')->setId('t_cc_state');
                $disableObj = $stateOptions ? $stateText : $stateSelect;
                $disableObj->setAttribute('disabled', 'disabled')->setAttribute('style', 'display: none');
            }
            if (in_array(Am_Paysystem_Echeck::ECHECK_PHONE, $options)) {
                $phone = $fieldSet->addText('echeck_phone', array('size' => 14))->setLabel(___('Phone'))->addRule('required', ___('Please enter phone number'))->addRule('regex', ___('Please enter phone number'), '|^[\\d() +-]+$|');
            }
        }
        $buttons = $this->addGroup();
        $buttons->addSubmit('_echeck_', array('value' => '    ' . $this->payButtons[$this->formType] . '    '));
        if ($this->formType == self::USER_UPDATE) {
            $buttons->addInputButton('_echeck_', array('value' => '    ' . ___("Back") . '    ', 'onclick' => 'goBackToMember()'));
            $this->addScript("")->setScript("function goBackToMember(){ window.location = window.rootUrl + '/member'; }");
        }
        $this->plugin->onFormInit($this);
    }
示例#6
0
    public function init()
    {
        parent::init();
        $subusers_fields = Am_Di::getInstance()->config->get('subusers_fields', array());
        if (in_array('login', $subusers_fields)) {
            $loginGroup = $this->addGroup('', array('id' => 'login'))->setLabel(___('Username'));
            $login = $loginGroup->addElement('text', 'login', array('size' => 20));
            $login->addRule('required');
            $loginGroup->addRule('callback2', '-error-', array($this, 'checkUniqLogin'));
        }
        if (in_array('pass', $subusers_fields)) {
            $gr = $this->addGroup()->setLabel(___('Password'));
            $pass = $gr->addPassword('_pass', array('size' => 20));
            if (!$this->record || !$this->record->isLoaded()) {
                $pass->addRule('required');
            }
            $label_generate = ___('generate');
            $this->addScript()->setScript(<<<CUT
\$(document).ready(function(){
    var pass0 = \$("input#_pass-0").after("&nbsp;<a href='javascript:' id='generate-pass'>{$label_generate}</a>");
    \$("a#generate-pass").click(function(){
        if (pass0.attr("type")!="text")
        {
            pass0.replaceWith("<input type='text' name='"+pass0.attr("name")
                    +"' id='"+pass0.attr("id")
                    +"' size='"+pass0.attr("size")
                    +"' />");
            pass0 = \$("input#_pass-0");
        }
        var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz";
        var pass = "";
        var len = 9;
        for(i=0;i<len;i++)
        {
            x = Math.floor(Math.random() * 62);
            pass += chars.charAt(x);
        }
        pass0.val(pass);
    });
});            
CUT
);
        }
        $nameField = $this->addGroup('', array('id' => 'name'), array('label' => ___('Name')));
        $nameField->addElement('text', 'name_f', array('size' => 20));
        $nameField->addElement('text', 'name_l', array('size' => 20));
        $nameField->addRule('required');
        $gr = $this->addGroup()->setLabel(___('E-Mail Address'));
        $em = $gr->addElement('text', 'email', array('size' => 40));
        if (Am_Di::getInstance()->config->get('subusers_cannot_change_email') && $this->record->isLoaded()) {
            $em->toggleFrozen(true);
        } else {
            $em->addRule('required');
            $gr->addRule('callback2', '-error-', array($this, 'checkUniqEmail'));
        }
        if ($this->record->pk()) {
            $options = Am_Di::getInstance()->subusersSubscriptionTable->getProductOptionsForUser($this->reseller, $this->record->pk());
            reset($options);
            if (count($options) == 1) {
                $sel = $this->addHidden('_groups[0]')->setValue(key($options))->toggleFrozen(true);
            } else {
                $sel = $this->addMagicSelect('_groups')->setLabel(___('Groups'))->loadOptions($options);
            }
        } else {
            $options = Am_Di::getInstance()->subusersSubscriptionTable->getProductOptions($this->reseller, true);
            reset($options);
            if (count($options) == 1) {
                $sel = $this->addHidden('_groups[0]')->setValue(key($options))->toggleFrozen(true);
            } else {
                $sel = $this->addMagicSelect('_groups')->setLabel(___('Groups'))->loadOptions($options);
            }
        }
    }