예제 #1
0
 public function __construct($aObject, $oTemplate)
 {
     parent::__construct($aObject);
     if ($oTemplate) {
         $this->_oTemplate = $oTemplate;
     } else {
         $this->_oTemplate = BxDolTemplate::getInstance();
     }
     $this->_sKeyPublic = getParam('sys_recaptcha_key_public');
     $this->_sKeyPrivate = getParam('sys_recaptcha_key_private');
 }
예제 #2
0
 public function __construct($aObject, $oTemplate)
 {
     parent::__construct($aObject);
     if ($oTemplate) {
         $this->_oTemplate = $oTemplate;
     } else {
         $this->_oTemplate = $GLOBALS['oSysTemplate'];
     }
     $this->_sKeyPublic = getParam('sys_recaptcha_key_public');
     $this->_sKeyPrivate = getParam('sys_recaptcha_key_private');
 }
예제 #3
0
 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);
 }
 public function __construct($aObject, $oTemplate)
 {
     parent::__construct($aObject);
     if ($oTemplate) {
         $this->_oTemplate = $oTemplate;
     } else {
         $this->_oTemplate = $GLOBALS['oSysTemplate'];
     }
     $this->_sKeyPublic = getParam('sys_recaptcha_key_public');
     $this->_sKeyPrivate = getParam('sys_recaptcha_key_private');
     if (0 == strncmp('https', BX_DOL_URL_ROOT, 5)) {
         $this->_sProto = 'https';
     }
 }
예제 #5
0
 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>';
 }
예제 #6
0
 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;
 }
예제 #7
0
 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>";
 }
예제 #8
0
 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);
 }
예제 #9
0
 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;
 }
예제 #10
0
 public static function checkCaptcha($s)
 {
     $oCaptcha = BxDolCaptcha::getObjectInstance();
     if (!$oCaptcha) {
         return true;
     }
     return $oCaptcha->check();
 }