public function _initSetupForm(Am_Form_Setup $form) { $form->addText('merchant', array('size' => 20, 'maxlength' => 16))->setlabel("Shop identification\n" . "(Merchant ID)")->addRule('required'); $form->addElement('textarea', 'hmackey', array('rows' => 4, 'style' => 'width:30%'))->setLabel("HMAC key")->addRule('required'); $form->addSelect('lang', array(), array('options' => array('da' => 'Danish', 'sv' => 'Swedish', 'nb' => 'Norwegian', 'en' => 'English')))->setLabel("The payment window language"); $form->addAdvCheckbox('test')->setLabel("Test Mode Enabled"); }
function _initSetupForm(Am_Form_Setup $form) { $form->setTitle(___('Single Login Session')); $form->addText('timeout', array('size' => 4))->setLabel(___('Session Timeout, min')); $form->setDefault('timeout', 5); $form->addSelect('action')->setId('form-action')->setLabel(___('Action on Simultaneous Login Attempt'))->loadOptions(array(self::ACTION_LOGIN_REJECT => ___('Show error and do not allow to login until session timeout'), self::ACTION_LOGOUT_OTHER => ___('Delete other session when user try to login from new one'), self::ACTION_NOTHING => ___('Nothing, allow simultaneous login for same user from different computers'))); $form->addTextarea('error', array('class' => 'el-wide'))->setId('form-error')->setLabel(___('Error Message')); $form->setDefault('error', 'There is already exits active login session for your account. Simultaneous login from different computers is not allowed.'); $error = self::ACTION_LOGIN_REJECT; $form->addScript()->setScript(<<<CUT \$('#form-action').change(function(){ \$('#form-error').closest('.row').toggle(\$(this).val() == '{$error}') }).change(); CUT ); $form->addElement('email_checkbox', 'notify_admin')->setLabel(___('Notify Admin on Simultaneous Login')); }
protected function _afterInitSetupForm(Am_Form_Setup $form) { // insert title, description fields $form->setTitle(ucfirst(toCamelCase($this->getId()))); $el = $form->addMagicSelect('reattempt', array('multiple' => 'multiple')); $options = array(); for ($i = 1; $i < 60; $i++) { $options[$i] = ___("on %d-th day", $i); } $el->loadOptions($options); $el->setLabel(___("Retry On Failure\n" . "if the recurring billing has failed,\n" . "aMember can repeat it after several days,\n" . "and extend customer subscription for that period\n" . "enter number of days to repeat billing attempt")); if ($this->canUseMaxmind()) { $form->addFieldset()->setLabel(___('MaxMind Credit Card Fraud Detection')); $form->addAdvCheckbox('use_maxmind')->setLabel(___('Use MaxMind Credit Card Fraud Detection')); $form->addText('maxmind_license_key')->setLabel(___("Maxmind License Key\n" . "%sObtain a Free or Premium license key%s", '<a href="http://www.maxmind.com/app/minfraud" target="_blank">', '</a>')); $form->addSelect('maxmind_requested_type')->setLabel(___("Requested Type\n" . "To be used if you have multiple plans in one account\n" . "and wish to select type of query you wish to make.\n" . "By default the service uses the highest level available"))->loadOptions(array("" => 'Default', "free" => 'Free', "city" => 'City (standard paid service)', "premium" => 'Premium (premium paid service)')); $form->addText('maxmind_risk_score')->setLabel(___("Risk Score\n" . "Overall %sRisk Score%s (decimal from 0 to 10)\n" . "For orders that return a fraud score of 2.5 and above,\n" . " it is recommended to hold for review,\n" . " or require the validation with the Telephone Verification service\n", '<a href="http://www.maxmind.com/app/web_services_score2" target="_blank">', '</a>')); $form->setDefault('maxmind_risk_score', '2.5'); /*$form->addAdvCheckbox('maxmind_use_telephone_verification')->setLabel( ___("Telephone Verification\n" . "Enable %sTelephone Verification%s service" , '<a href="http://www.maxmind.com/app/telephone_overview" target="_blank">', '</a>'));*/ $form->addAdvCheckbox('maxmind_use_number_identification')->setLabel(___("Number Identification\n" . "Enable %sTelephone Number Identification (TNI)%s service", '<a href="http://www.maxmind.com/app/phone_id" target="_blank">', '</a>')); $form->addMagicSelect('maxmind_tni_phone_types')->setLabel(___("Allowed Phone Types\n" . "The TNI service is able to categorize customer inputted US and Canadian\n" . "phone numbers into %seight different phone types%s\n" . "such as fixed land line, mobile, VoIP, and invalid phone numbers", '<a href="http://www.maxmind.com/app/phone_id_codes" target="_blank">', '</a>'))->loadOptions(array('0' => 'Undetermined (Medium Risk Level)', '1' => 'Fixed Line (Low Risk Level)', '2' => 'Mobile (Low-Medium Risk Level)', '3' => 'PrePaid Mobile (Medium-High Risk Level)', '4' => 'Toll-Free (High Risk Level)', '5' => 'Non-Fixed VoIP (High Risk Level)', '8' => 'Invalid Number (High Risk Level)', '9' => 'Restricted Number (High Risk Level)')); $form->addAdvCheckbox('maxmind_allow_country_not_matched')->setLabel(___("Allow payment if country not matched\n" . "Whether country of IP address matches billing address country\n" . "(mismatch = higher risk)")); $form->addAdvCheckbox('maxmind_allow_high_risk_country')->setLabel(___("Allow payment if high risk countries\n" . "Whether IP address or billing address country is in\n" . "Egypt, Ghana, Indonesia, Lebanon, Macedonia, Morocco, Nigeria,\n" . "Pakistan, Romania, Serbia and Montenegro, Ukraine, or Vietnam")); $form->addAdvCheckbox('maxmind_allow_anonymous_proxy')->setLabel(___("Allow payment if anonymous proxy\n" . "Whether IP address is %sAnonymous Proxy%s\n" . "(anonymous proxy = very high risk)", '<a href="http://www.maxmind.com/app/proxy#anon" target="_blank">', '</a>')); $form->addAdvCheckbox('maxmind_allow_free_mail')->setLabel(___("Allow payment if free e-mail\n" . "Whether e-mail is from free e-mail provider\n" . "(free e-mail = higher risk)")); $form->addElement('script')->setScript(<<<CUT function showHideMaxmind() { var el = \$("[id^=use_maxmind-]"); \$("[id^=maxmind_]").closest(".row").toggle(el.prop('checked')); if(el.prop('checked')) /*showHideNumberidentification();*/ showHidePhonetypes(); } /*function showHideNumberidentification() { var el = \$("[id^=maxmind_use_telephone_verification-]"); \$("[id^=maxmind_tni_phone_types-]").closest(".row").toggle(el.prop('checked')); \$("[id^=maxmind_use_number_identification-]").closest(".row").toggle(el.prop('checked')); if(el.prop('checked')) showHidePhonetypes(); }*/ function showHidePhonetypes() { \$("[id^=maxmind_tni_phone_types-]").closest(".row").toggle(\$("[id^=maxmind_use_number_identification-]").prop('checked')); } \$(function(){ \$("[id^=use_maxmind-]").click(function(){ showHideMaxmind(); }); /*\$("[id^=maxmind_use_telephone_verification-]").click(function(){ showHideNumberidentification(); });*/ \$("[id^=maxmind_use_number_identification-]").click(function(){ showHidePhonetypes(); }); showHideMaxmind(); }); CUT ); } if ($this->storesCcInfo() && !$this->_pciDssNotRequired) { $text = "<p><font color='red'>WARNING!</font> Every application processing credit card information, must be certified\n" . "as PA-DSS compliant, and every website processing credit cards must\n" . "be certified as PCI-DSS compliant.</p>"; $text .= "<p>aMember Pro is not yet certified as PA-DSS compliant. " . "This plugins is provided solely for TESTING purproses\n" . "Use it for anything else but testing at your own risk.</p>"; $form->addProlog(<<<CUT <div class="warning_box"> {$text} </div> CUT ); } $keyFile = defined('AM_KEYFILE') ? AM_KEYFILE : APPLICATION_PATH . '/configs/key.php'; if (!is_readable($keyFile)) { $random = $this->getDi()->app->generateRandomString(78); $text = "<p>To use credit card plugins, you need to create a key file that contains unique\n"; $text .= "encryption key for your website. It is necessary even if the plugin does not\n"; $text .= "store sensitive information.</p>"; $text .= "<p>In a text editor, create file with the following content (one-line, no spaces before opening <?php):\n"; $text .= "<br /><br /><pre style='background-color: #e0e0e0;'><?php return '{$random}';</pre>\n"; $text .= "<br />save the file as <b>key.php</b>, and upload to <i>amember/application/configs/</i> folder.\n"; $text .= "This warning will disappear once you do it correctly.</p>"; $text .= "<p>KEEP A BACKUP COPY OF THE key.php FILE (!)</p>"; $form->addProlog(<<<CUT <div class="warning_box"> {$text} </div> CUT ); } return parent::_afterInitSetupForm($form); }
protected function _initSetupForm(Am_Form_Setup $form) { $form->addElement(new Am_Form_Element_RegionalTaxes('rate')); }
/** * Initialize setup form * You have to override this function and add elements * to returned (from parent::initSetupForm) form. * @return Am_Form_Setup */ function onSetupForms(Am_Event_SetupForms $event) { $form = new Am_Form_Setup($this->getId()); $form->setTitle($this->getConfigPageId()); $plugin = $this->getId(); $form->addText("title", array('size' => 40))->setLabel(___("Payment System Title")); $form->setDefault("payment.{$plugin}.title", @$this->defaultTitle); $form->addText("description", array('size' => 40))->setLabel(___("Payment System Description")); $form->setDefault("payment.{$plugin}.description", @$this->defaultDescription); /* $form->addAdvCheckbox("disable_postback_log") ->setLabel(___("Disable PostBack messages Logging (not recommended)\n". "By default aMember logs all payment system postback messages\n". "you can disable it by changing this configuration value" )); */ if ($this->canResendPostback()) { $gr = $form->addElement(new Am_Form_Element_CheckboxedGroup('resend_postback')); $gr->setLabel(___("Resend Postback\nenter list of URLs to resend incoming postback\none URL per line")); $gr->addTextarea('resend_postback_urls', array('rows' => 3, 'cols' => 70)); } $event->addForm($form); $this->_initSetupForm($form); if ($this->canAutoCreate()) { $form->addAdvCheckbox('auto_create')->setLabel(___("Accept Direct Payments\n" . "handle payments made on payment system side\n" . "(without signup to aMember first)")); } $form->addFieldsPrefix("payment.{$plugin}."); if ($plugin_readme = $this->getReadme()) { $plugin_readme = str_replace(array('%root_url%', '%root_surl%', '%root_dir%'), array(ROOT_URL, ROOT_SURL, ROOT_DIR), $plugin_readme); $form->addEpilog('<div class="info"><pre>' . $plugin_readme . '</pre></div>'); } if (defined($const = get_class($this) . "::PLUGIN_STATUS") && (constant($const) == self::STATUS_BETA || constant($const) == self::STATUS_DEV)) { $beta = constant($const) == self::STATUS_DEV ? 'ALPHA' : 'BETA'; $form->addProlog("<div class='warning_box'>This plugin is currently in {$beta} testing stage, some functions may work unstable." . "Please test it carefully before use.</div>"); } return $form; }