示例#1
0
 /**
  * callback for purchase event
  *
  * @see install/index.php
  * @param $order_id
  */
 public static function purchase($order_id)
 {
     $items = array();
     foreach (Data::getOrderItems($order_id) as $item) {
         $items[] = array('item_id' => $item['PRODUCT_ID'], 'amount' => $item['QUANTITY'], 'price' => $item['PRICE']);
     }
     Functions::cookiePushPurchase($items, $order_id);
 }
示例#2
0
    public static function run($arParams)
    {
        if (isset($arParams['recommender'])) {
            $recommender = $arParams['recommender'];
        } else {
            error_log('recommender not specified');
            return;
        }
        $params = isset($arParams['params']) ? $arParams['params'] : array();
        // get current cart items
        $cart = Functions::getCartItemIds();
        if (isset($params['cart']) === false) {
            $params['cart'] = $cart;
        }
        if (empty($params['item_id']) === false) {
            $params['item_id'] = Functions::getRealItemID($params['item_id']);
        }
        if (empty($params['cart']) === false) {
            $params['cart'] = Functions::getRealItemIDsArray($params['cart']);
        }
        $jsonParams = array('recommender_type' => $recommender, 'limit' => Options::getRecommendCount());
        // check required params for recommenders
        switch ($recommender) {
            case 'buying_now':
                if (isset($params['cart']) && is_array($params['cart'])) {
                    $jsonParams['cart'] = array_values($params['cart']);
                }
                if (isset($params['item_id']) && is_numeric($params['item_id'])) {
                    $jsonParams['item'] = json_encode($params['item_id']);
                }
                break;
            case 'see_also':
                if (isset($params['cart']) && is_array($params['cart'])) {
                    $jsonParams['cart'] = array_values($params['cart']);
                } else {
                    error_log('recommender see_also requires cart');
                    return;
                }
                break;
            case 'recently_viewed':
                if (isset($params['cart']) && is_array($params['cart'])) {
                    $jsonParams['cart'] = array_values($params['cart']);
                }
                // cart is not required
                break;
            case 'also_bought':
                if (isset($params['item_id']) && is_numeric($params['item_id'])) {
                    $jsonParams['item'] = json_encode($params['item_id']);
                } else {
                    error_log('recommender also_bought requires item_id');
                    return;
                }
                break;
            case 'similar':
                if (isset($params['item_id']) && is_numeric($params['item_id'])) {
                    $jsonParams['item'] = json_encode($params['item_id']);
                } else {
                    error_log('recommender similar requires item_id');
                    return;
                }
                // params2
                if (isset($params['cart']) && is_array($params['cart'])) {
                    $jsonParams['cart'] = array_values($params['cart']);
                }
                // cart is not required
                break;
            case 'interesting':
                // no params
                break;
            case 'popular':
                if (isset($params['category'])) {
                    $jsonParams['category'] = intval($params['category']);
                }
                break;
            default:
                error_log('unknown recommender: ' . $recommender);
        }
        $uniqid = uniqid('rees46-recommend-');
        // render recommender placeholder and corresponding js
        ?>
		<div id="<?php 
        echo $uniqid;
        ?>
" class="rees46-recommend"></div>
		<script>
			BX.ready(function(){
				REES46.addReadyListener(function () {
					REES46.recommend(<?php 
        echo json_encode($jsonParams);
        ?>
, function (items) {
						if (items.length > 0) {

							var data_string = BX.ajax.prepareData({
								action: 'recommend',
								recommended_by: <?php 
        echo json_encode($recommender);
        ?>
,
								recommended_items: items
							});

							BX.ajax({
								url: '<?php 
        echo SITE_DIR;
        ?>
include/rees46-handler.php?' + data_string,
								method: 'GET',
								dataType: 'html',
								async: true,
								onsuccess: function (html) {
									if (REES46.showPromotion) {
										html = html + REES46.getPromotionBlock();
									}
									BX('<?php 
        echo $uniqid;
        ?>
').innerHTML = html;
								}
							});
						}
					});
				});
			});
		</script>
	<?php 
    }
示例#3
0
<?php

/* preload module info */
if (class_exists('mk_rees46') === false) {
    require __DIR__ . '/install/index.php';
}
//if (class_exists('Composer\\Autoload\\ClassLoader') === false) {
//	require __DIR__ . '/classes/Composer/Autoload/ClassLoader.php';
//}
// unobstructively add autoloader
if (function_exists('__autoload')) {
    // if we have an old autoload func
    spl_autoload_register('__autoload');
    // register it
}
// our own autoloader
//$loader = new \Composer\Autoload\ClassLoader();
$loader = (require __DIR__ . '/vendor/autoload.php');
$loader->add('Rees46\\', __DIR__ . '/classes/');
//$loader->register(true);
\Rees46\Functions::showRecommenderCSS();
示例#4
0
<?php

if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
    die;
}
CModule::IncludeModule('mk.rees46');
\Rees46\Functions::includeJs();
// include required js and handle all events