| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- <?php defined('BX_DOL') or die('hack attempt');
- /**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup Payment Payment
- * @ingroup TridentModules
- *
- * @{
- */
- class BxPaymentTemplate extends BxBaseModPaymentTemplate
- {
- protected $_sLangsPrefix;
- function __construct(&$oConfig, &$oDb)
- {
- $this->MODULE = 'bx_payment';
- parent::__construct($oConfig, $oDb);
- $this->_sLangsPrefix = $this->_oConfig->getPrefix('langs');
- }
- public function addJsCssOrders()
- {
- $this->addJs(array(
- 'jquery-ui/jquery.ui.widget.min.js',
- 'jquery-ui/jquery.ui.menu.min.js',
- 'jquery-ui/jquery.ui.autocomplete.min.js',
- 'jquery.form.min.js',
- 'jquery.anim.js',
- 'jquery.webForms.js',
- 'orders.js'
- ));
- $this->addCss(array('orders.css'));
- }
- public function addJsCssCart($sType = '', $iVendorId = 0)
- {
- $this->addJsTranslation(array('_bx_payment_err_nothing_selected'));
- $this->addJs(array('jquery.anim.js', 'main.js', 'cart.js'));
- $this->addCss(array('orders.css', 'cart.css'));
- $oModule = $this->_getModule();
- if(!empty($iVendorId)) {
- $sMethod = 'getVendorInfoProviders' . bx_gen_method_name($sType);
- $aProviders = $this->_oDb->$sMethod($iVendorId);
- foreach($aProviders as $sProvider => $aProvider)
- $oModule->getObjectProvider($sProvider, $iVendorId)->addJsCss();
- }
- }
- public function displayCartJs($sType = '', $iVendorId = 0)
- {
- $this->addJsCssCart($sType, $iVendorId);
- return $this->displayJsCode('cart');
- }
- public function displayAddToCartJs($iVendorId, $iModuleId, $iItemId, $iItemCount, $bNeedRedirect = false)
- {
- $sJsCode = $this->displayCartJs(BX_PAYMENT_TYPE_SINGLE, $iVendorId);
- $sJsMethod = $this->parseHtmlByName('add_to_cart_js.html', array(
- 'js_object' => $this->_oConfig->getJsObject('cart'),
- 'vendor_id' => $iVendorId,
- 'module_id' => $iModuleId,
- 'item_id' => $iItemId,
- 'item_count' => $iItemCount,
- 'need_redirect' => (int)$bNeedRedirect
- ));
- return array($sJsCode, $sJsMethod);
- }
- public function displayAddToCartLink($iVendorId, $iModuleId, $iItemId, $iItemCount, $bNeedRedirect = false)
- {
- $this->addJsCssCart(BX_PAYMENT_TYPE_SINGLE, $iVendorId);
- return $this->parseHtmlByName('add_to_cart.html', array(
- 'js_object' => $this->_oConfig->getJsObject('cart'),
- 'js_content' => $this->displayJsCode('cart'),
- 'txt_add_to_cart' => _t($this->_sLangsPrefix . 'txt_add_to_cart'),
- 'vendor_id' => $iVendorId,
- 'module_id' => $iModuleId,
- 'item_id' => $iItemId,
- 'item_count' => $iItemCount,
- 'need_redirect' => (int)$bNeedRedirect
- ));
- }
- public function displaySubscribeJs($iVendorId, $sVendorProvider, $iModuleId, $iItemId, $iItemCount = 1)
- {
- $sJsCode = $this->displayCartJs(BX_PAYMENT_TYPE_RECURRING, $iVendorId);
- $sJsMethod = $this->parseHtmlByName('subscribe_js.html', array(
- 'js_object' => $this->_oConfig->getJsObject('cart'),
- 'vendor_id' => $iVendorId,
- 'vendor_provider' => $sVendorProvider,
- 'module_id' => $iModuleId,
- 'item_id' => $iItemId,
- 'item_count' => $iItemCount
- ));
- return array($sJsCode, $sJsMethod);
- }
- public function displaySubscribeLink($iVendorId, $sVendorProvider, $iModuleId, $iItemId, $iItemCount = 1)
- {
- $this->addJsCssCart(BX_PAYMENT_TYPE_RECURRING, $iVendorId);
- return $this->parseHtmlByName('subscribe.html', array(
- 'js_object' => $this->_oConfig->getJsObject('cart'),
- 'js_content' => $this->displayJsCode('cart'),
- 'txt_add_to_cart' => _t($this->_sLangsPrefix . 'txt_subscribe'),
- 'vendor_id' => $iVendorId,
- 'vendor_provider' => $sVendorProvider,
- 'module_id' => $iModuleId,
- 'item_id' => $iItemId,
- 'item_count' => $iItemCount,
- ));
- }
- public function displayBlockCarts($iClientId)
- {
- $oGrid = BxDolGrid::getObjectInstance($this->_oConfig->getObject('grid_carts'));
- if(!$oGrid)
- return MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
- $oGrid->addQueryParam('client_id', $iClientId);
- $this->addJsCssCart(BX_PAYMENT_TYPE_SINGLE);
- return $this->displayJsCode('cart') . $oGrid->getCode();
- }
- public function displayBlockCart($iClientId, $iSellerId = 0)
- {
- $oGrid = BxDolGrid::getObjectInstance($this->_oConfig->getObject('grid_cart'));
- if(!$oGrid || empty($iSellerId))
- return MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
- $oGrid->addQueryParam('client_id', $iClientId);
- $oGrid->addQueryParam('seller_id', $iSellerId);
- $this->addJsCssCart(BX_PAYMENT_TYPE_SINGLE, $iSellerId);
- return $this->displayJsCode('cart') . $oGrid->getCode();
- }
- public function displayBlockHistory($iClientId, $iSellerId)
- {
- return $this->_displayBlockHistory('grid_history', $iClientId, $iSellerId);
- }
- public function displayBlockSbsList($iClientId)
- {
- return $this->_displayBlockHistory('grid_sbs_list', $iClientId);
- }
- public function displayBlockSbsHistory($iClientId)
- {
- return $this->_displayBlockHistory('grid_sbs_history', $iClientId);
- }
- public function displayBlockSbsDetails($iClientId)
- {
- return 'Details would be here';
- }
- public function displayBlockOrders($sType, $iSellerId)
- {
- $oGrid = BxDolGrid::getObjectInstance($this->_oConfig->getObject('grid_' . $sType));
- if(!$oGrid || empty($iSellerId))
- return MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
- $oGrid->addQueryParam('seller_id', $iSellerId);
- $this->addJsCssOrders();
- return $this->displayJsCode($sType) . $oGrid->getCode();
- }
- public function displayOrder($sType, $iId)
- {
- $sMethodName = 'getOrder' . bx_gen_method_name($sType);
- $aOrder = $this->_oDb->$sMethodName(array('type' => 'id', 'id' => $iId));
- $oModule = $this->_getModule();
- $aSeller = $oModule->getVendorInfo((int)$aOrder['seller_id']);
- $aClient = $oModule->getProfileInfo((int)$aOrder['client_id']);
- $aResult = array(
- 'txt_client' => _t($this->_sLangsPrefix . 'txt_client'),
- 'txt_seller' => _t($this->_sLangsPrefix . 'txt_seller'),
- 'txt_order' => _t($this->_sLangsPrefix . 'txt_order'),
- 'txt_processed_with' => _t($this->_sLangsPrefix . 'txt_processed_with'),
- 'txt_message' => _t($this->_sLangsPrefix . 'txt_message'),
- 'txt_date' => _t($this->_sLangsPrefix . 'txt_date'),
- 'txt_products' => _t($this->_sLangsPrefix . 'txt_products'),
- 'client_name' => $aClient['name'],
- 'client_url' => $aClient['link'],
- 'bx_if:show_link' => array(
- 'condition' => !empty($aSeller['link']),
- 'content' => array(
- 'seller_name' => $aSeller['name'],
- 'seller_url' => $aSeller['link'],
- )
- ),
- 'bx_if:show_text' => array(
- 'condition' => empty($aSeller['link']),
- 'content' => array(
- 'seller_name' => $aSeller['name']
- )
- ),
- 'order' => $aOrder['order'],
- 'provider' => $aOrder['provider'],
- 'error' => $aOrder['error_msg'],
- 'date' => bx_time_js($aOrder['date']),
- 'bx_repeat:items' => array()
- );
- if($sType == BX_PAYMENT_ORDERS_TYPE_PENDING)
- $aItems = $this->_oConfig->descriptorsM2A($aOrder['items']);
- else
- $aItems = $this->_oConfig->descriptorsM2A($this->_oConfig->descriptorA2S(array($aOrder['seller_id'], $aOrder['module_id'], $aOrder['item_id'], $aOrder['item_count'])));
- foreach($aItems as $aItem) {
- $aInfo = $oModule->callGetCartItem((int)$aItem['module_id'], array($aItem['item_id']));
- if(!empty($aInfo) && is_array($aInfo))
- $aResult['bx_repeat:items'][] = array(
- 'bx_if:link' => array(
- 'condition' => !empty($aInfo['url']),
- 'content' => array(
- 'title' => $aInfo['title'],
- 'url' => $aInfo['url']
- )
- ),
- 'bx_if:text' => array(
- 'condition' => empty($aInfo['url']),
- 'content' => array(
- 'title' => $aInfo['title'],
- )
- ),
- 'quantity' => $aItem['item_count'],
- 'price' => $this->_oConfig->getPrice($aOrder['type'], $aInfo),
- 'currency_code' => $aSeller['currency_code']
- );
- }
- return $this->parseHtmlByName('order_' . $sType . '.html', $aResult);
- }
- public function displayItems($sType, $aItems = array())
- {
- $aTmplVarsItems = array();
- foreach($aItems as $aItem) {
- $aTmplVarsItems[] = array(
- 'id' => $aItem['id'],
- 'price' => $this->_oConfig->getPrice($sType, $aItem),
- 'bx_if:link' => array(
- 'condition' => !empty($aItem['url']),
- 'content' => array(
- 'url' => $aItem['url'],
- 'title' => $aItem['title']
- )
- ),
- 'bx_if:text' => array(
- 'condition' => empty($aItem['url']),
- 'content' => array(
- 'title' => $aItem['title']
- )
- ),
- );
- }
- if(empty($aTmplVarsItems))
- $aTmplVarsItems = MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
- return $this->parseHtmlByName('items.html', array(
- 'html_id' => $this->_oConfig->getHtmlIds('processed', 'order_processed_items'),
- 'bx_repeat:items' => $aTmplVarsItems
- ));
- }
- public function displayProvidersSelector($aCartItem, $aProviders)
- {
- $oModule = $this->_getModule();
- $oCart = $oModule->getObjectCart();
- list($iSellerId, $iModuleId, $iItemId, $iItemCount) = $aCartItem;
- $aTmplVarsProviders = array();
- foreach($aProviders as $sProvider => $aProvider) {
- $oProvider = $oModule->getObjectProvider($sProvider, $iSellerId);
- if($oProvider !== false && method_exists($oProvider, 'getButtonRecurring'))
- $sButton = $oProvider->getButtonRecurring($oModule->getProfileId(), $iSellerId, array(
- 'sObjNameCart' => $oModule->_oConfig->getJsObject('cart'),
- 'iSellerId' => $iSellerId,
- 'iModuleId' => $iModuleId,
- 'iItemId' => $iItemId,
- 'iItemCount' => $iItemCount
- ));
- else {
- list($sJsCode, $sJsOnclick) = $oCart->serviceGetSubscribeJs($iSellerId, $aProvider['name'], $iModuleId, $iItemId, $iItemCount);
- $sButton = $this->parsePageByName('providers_select_button.html', array(
- 'onclick' => $sJsOnclick,
- 'title' => _t('_bx_payment_txt_checkout_with', _t($aProvider['caption']))
- ));
- }
- $aTmplVarsProviders[] = array(
- 'button' => $sButton
- );
- }
- return $this->parseHtmlByName('providers_select.html', array(
- 'bx_repeat:providers' => $aTmplVarsProviders
- ));
- }
- protected function _getModule()
- {
- $sName = $this->_oConfig->getName();
- return BxDolModule::getInstance($sName);
- }
- protected function _displayBlockHistory($sObject, $iClientId, $iSellerId = 0)
- {
- $oGrid = BxDolGrid::getObjectInstance($this->_oConfig->getObject($sObject));
- if(!$oGrid || empty($iClientId))
- return MsgBox(_t($this->_sLangsPrefix . 'msg_no_results'));
- $oGrid->addQueryParam('client_id', $iClientId);
- if(!empty($iSellerId))
- $oGrid->addQueryParam('seller_id', $iSellerId);
- $this->addJsCssOrders();
- return $this->displayJsCode('history') . $oGrid->getCode();
- }
- }
- /** @} */
|