function displaySelectLevelBlock($aLevels, $bDynamic = false) { $iModuleId = $this->_oConfig->getId(); $iSelectedLevel = $iSelectedProvider = 0; $sCurrencyCode = strtoupper($this->_oConfig->getCurrencyCode()); $sCurrencySign = $this->_oConfig->getCurrencySign(); bx_import('BxDolPayments'); $oPayment = BxDolPayments::getInstance(); $aProviders = $oPayment->getProviders(0); if (empty($aProviders)) { return array(MsgBox(_t('_membership_err_no_payment_options'))); } //--- Prepare levels $aTmplVarsLevels = array(); foreach ($aLevels as $iIndex => $aLevel) { $bPaid = (int) $aLevel['price_amount'] > 0; $iPriceDays = (int) $aLevel['price_days']; $fPriceAmount = (double) $aLevel['price_amount']; $aTmplVarsLevels[] = array('level' => $this->parseHtmlByName('select_level.html', array('js_object' => $this->_oConfig->getJsObject('join'), 'id' => $aLevel['mem_id'], 'descriptor' => (int) $aLevel['mem_id'] == MEMBERSHIP_ID_STANDARD ? $this->_oConfig->getStandardDescriptor() : $oPayment->getCartItemDescriptor(0, $iModuleId, $aLevel['price_id'], 1), 'checked' => $iIndex == $iSelectedLevel ? 'checked="checked"' : '', 'title' => $aLevel['mem_name'], 'icon' => $this->_oConfig->getIconsUrl() . $aLevel['mem_icon'], 'bx_if:show_description' => array('condition' => strlen($aLevel['mem_description']) > 0, 'content' => array('description' => str_replace("\$", "$", $aLevel['mem_description']))), 'days' => $iPriceDays > 0 ? $iPriceDays . ' ' . _t('_membership_txt_days') : _t('_membership_txt_expires_never'), 'price' => $fPriceAmount, 'bx_if:show_price_paid' => array('condition' => $bPaid, 'content' => array('price' => $fPriceAmount, 'currency_code' => $sCurrencyCode)), 'bx_if:show_price_free' => array('condition' => !$bPaid, 'content' => array())))); } //--- Prepare providers $aTmplVarsProviders = array(); if (!empty($aProviders)) { foreach ($aProviders as $iIndex => $aProvider) { if ((int) $aProvider['for_visitor'] != 1) { continue; } $aTmplVarsProviders[] = array('name' => $aProvider['name'], 'caption' => $aProvider['caption_cart'], 'checked' => $iIndex == $iSelectedProvider ? 'checked="checked"' : ''); } } if (empty($aTmplVarsProviders)) { return array(MsgBox(_t('_membership_err_no_payment_options'))); } $bSelectedLevelPaid = (int) $aLevels[$iSelectedLevel]['price_amount'] > 0; $bSelectedProvider = count($aTmplVarsProviders) == 1; $sSelectedProvider = $bSelectedProvider ? $aTmplVarsProviders[0]['name'] : ''; //--- Prepare captcha $sCaptcha = ''; $bCaptcha = $this->_oConfig->isCaptchaOnPaidJoin(); if ($bCaptcha) { bx_import('BxDolCaptcha'); $oCaptcha = BxDolCaptcha::getObjectInstance(); $sCaptcha = $oCaptcha ? $oCaptcha->display($bDynamic) : _t('_sys_txt_captcha_not_available'); } $aTmplParams = array('js_object' => $this->_oConfig->getJsObject('join'), 'js_code' => $this->getJsCode('join', true), 'submit_url' => BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'join_submit', 'bx_repeat:levels' => $aTmplVarsLevels, 'bx_if:show_providers_selector' => array('condition' => !$bSelectedProvider, 'content' => array('bx_if:show_providers_selector_hidden' => array('condition' => !$bSelectedLevelPaid, 'content' => array()), 'bx_repeat:providers' => $aTmplVarsProviders)), 'bx_if:show_captcha' => array('condition' => $bCaptcha, 'content' => array('captcha' => $sCaptcha)), 'bx_if:show_selected_provider' => array('condition' => $bSelectedProvider, 'content' => array('name' => $sSelectedProvider)), 'txt_checkout' => _t($bSelectedLevelPaid ? '_membership_btn_pay' : '_membership_btn_select')); $sCssJs = ''; $sCssJs .= $this->addCss(array('levels.css', 'levels_tablet.css', 'levels_phone.css'), $bDynamic); $sCssJs .= $this->addJs('join.js', $bDynamic); $this->addJsTranslation(array('_membership_err_need_select_level', '_membership_err_need_select_provider')); return array(($bDynamic ? $sCssJs : '') . $this->parseHtmlByName('select_level_block.html', $aTmplParams), array(), array(), false); }
function genInputCaptcha(&$aInput) { $aAttrs = empty($aInput['attrs']) ? array() : $aInput['attrs']; // add default className to attributes $aAttrs['class'] = "form_input_{$aInput['type']}" . (isset($aAttrs['class']) ? ' ' . $aAttrs['class'] : ''); // for inputs with labels generate id if (isset($aInput['label'])) { $aAttrs['id'] = $this->getInputId($aInput); } $sAttrs = $this->convertArray2Attrs($aAttrs); bx_import('BxDolCaptcha'); $oCaptcha = BxDolCaptcha::getObjectInstance(); return "<div {$sAttrs}>" . ($oCaptcha ? $oCaptcha->display() : _t('_sys_txt_captcha_not_available')) . '<input type="hidden" name="' . $aInput['name'] . '" /></div>'; }
function checkCaptcha($s) { // init captcha object bx_import('BxDolCaptcha'); $oCaptcha = BxDolCaptcha::getObjectInstance(); if (!$oCaptcha) { return false; } // try to get "cached" value bx_import('BxDolSession'); $oSession = BxDolSession::getInstance(); $sSessKey = 'captcha-' . $oCaptcha->getUserResponse(); if ($iSessVal = $oSession->getValue($sSessKey)) { $oSession->setValue($sSessKey, --$iSessVal); return true; } // perform captcha check if (!$oCaptcha->check()) { return false; } // "cache" success result (need for repeated AJAX submittions, since origonal captcha can't perform duplicate checking) bx_import('BxDolSession'); $oSession = BxDolSession::getInstance(); $oSession->setValue($sSessKey, 3); return true; }
function genInputCaptcha(&$aInput) { $aAttrs = empty($aInput['attrs']) ? array() : $aInput['attrs']; // for inputs with labels generate id if (isset($aInput['label'])) { $aAttrs['id'] = $this->getInputId($aInput); } $sAttrs = bx_convert_array2attrs($aAttrs, "bx-form-input-{$aInput['type']}"); bx_import('BxDolCaptcha'); $oCaptcha = BxDolCaptcha::getObjectInstance(); return "<div {$sAttrs}>" . ($oCaptcha ? $oCaptcha->display($this->_bDynamicMode) : _t('_sys_txt_captcha_not_available')) . "</div>"; }
function genInputCaptcha(&$aInput) { $aAttrs = empty($aInput['attrs']) ? array() : $aInput['attrs']; // add default className to attributes $aAttrs['class'] = "form_input_{$aInput['type']}" . (isset($aAttrs['class']) ? ' ' . $aAttrs['class'] : ''); // for inputs with labels generate id if (isset($aInput['label'])) { $aAttrs['id'] = $this->getInputId($aInput); } $sAttrs = $this->convertArray2Attrs($aAttrs); bx_import('BxDolCaptcha'); $oCaptcha = BxDolCaptcha::getObjectInstance(); $sCaptcha = $oCaptcha ? $oCaptcha->display(isset($aInput['dynamic']) ? $aInput['dynamic'] : false) : _t('_sys_txt_captcha_not_available'); $sCaptcha .= $this->getInput('input', $this->convertArray2Attrs(array('type' => 'hidden', 'name' => $aInput['name']))); return $this->getInput('captcha', $sAttrs, $sCaptcha); }
function actionJoinSubmit() { if ($this->_oConfig->isCaptchaOnPaidJoin()) { bx_import('BxDolCaptcha'); $oCaptcha = BxDolCaptcha::getObjectInstance(); if (!$oCaptcha) { $this->_oTemplate->getPageCodeError('_sys_txt_captcha_not_available'); return; } if (!$oCaptcha->check()) { $this->_oTemplate->getPageCodeError('_Captcha check failed'); return; } } $sDescriptor = bx_get('descriptor'); if ($sDescriptor === false) { $this->_oTemplate->getPageCodeError('_membership_err_need_select_level'); return; } else { if ($sDescriptor == $this->_oConfig->getStandardDescriptor()) { header('Location: ' . BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'join_form'); exit; } } $sProvider = bx_get('provider'); if ($sProvider === false) { $this->_oTemplate->getPageCodeError('_membership_err_need_select_provider'); return; } $sRedirect = BX_DOL_URL_ROOT . 'join.php'; bx_import('BxDolPayments'); $aResult = BxDolPayments::getInstance()->initializeCheckout(0, $sProvider, $sDescriptor); if (is_array($aResult) && !empty($aResult['redirect'])) { $sRedirect = $aResult['redirect']; } header('Location: ' . $sRedirect); exit; }
public static function checkCaptcha($s) { $oCaptcha = BxDolCaptcha::getObjectInstance(); if (!$oCaptcha) { return true; } return $oCaptcha->check(); }