예제 #1
0
 public static function onSetDayContextAttributes(DayContext $context)
 {
     $id = null;
     if (isset($_SESSION[self::CLICK_PARAM_NAME])) {
         $id = $_SESSION[self::CLICK_PARAM_NAME];
     }
     if (!is_numeric($id) || $id <= 0) {
         return;
     }
     $recipientDb = PostingRecipientTable::getList(array('select' => array('MAILING_CHAIN_ID' => 'POSTING.MAILING_CHAIN_ID'), 'filter' => array('ID' => $id)));
     if ($recipient = $recipientDb->fetch()) {
         $context->setAttribute('sender_chain_source', $recipient['MAILING_CHAIN_ID']);
     }
 }
예제 #2
0
 /**
  * Increments conversion banner click day counter
  *
  * @param int $id Banner ID.
  * @param array $fields Banner fields.
  * @return void
  */
 public static function onBannerClick($id, $fields)
 {
     if (Loader::includeModule('conversion')) {
         $context = DayContext::getInstance();
         $context->addDayCounter('advertising_banner_click_day', 1);
     }
 }
예제 #3
0
 /**
  * Increments conversion post day counter
  *
  * @param int $id Post ID.
  * @param array $fields Post fields.
  * @return void
  */
 public static function onPostAdd($id, $fields)
 {
     if (Loader::includeModule('conversion')) {
         $context = DayContext::getInstance();
         $context->addDayCounter('blog_post_add_day', 1);
     }
 }
예제 #4
0
 /**
  * Increments conversion post day counter
  *
  * @param int $id Topic ID.
  * @param array $message Message fields.
  * @param array $topicInfo Message TOPIC_INFO field.
  * @param array $forumInfo Message FORUM_INFO field.
  * @param array $fields Message fields used to insert.
  * @return void
  */
 public static function onMessageAdd($id, $message, $topicInfo, $forumInfo, $fields)
 {
     if (Loader::includeModule('conversion')) {
         $context = DayContext::getInstance();
         $context->addDayCounter('forum_post_add_day', 1);
     }
 }
예제 #5
0
 public static function OnProlog()
 {
     DayContext::getInstance();
     //
     //		$asset = Asset::getInstance();
     //
     //		$asset->addString('
     //		<script type="text/javascript">
     //			(window.BX||top.BX).message({"BITRIX_CONVERSION_VARNAME":"'.DayContext::getVarName().'"});
     //		</script>
     //		', true, AssetLocation::AFTER_CSS);
     //
     //		$asset->addJs('/bitrix/js/conversion/ajax_counter.js');
 }
예제 #6
0
 public static function onSalePayOrder($id, $paid)
 {
     if (Loader::includeModule('conversion') && ($row = \CSaleOrder::GetById($id))) {
         if ($paid == 'Y') {
             $context = DayContext::getEntityItemInstance('sale_order', $id);
             if (defined('ADMIN_SECTION') && ADMIN_SECTION === true) {
                 $context->addCounter('sale_payment_add_day', 1);
             } else {
                 $context->addDayCounter('sale_payment_add_day', 1);
             }
             $context->addCurrencyCounter('sale_payment_sum_add', $row['PRICE'], $row['CURRENCY']);
         }
     }
 }
예제 #7
0
    public static function onProlog()
    {
        static $done = false;
        if (!$done) {
            $done = true;
            DayContext::getInstance();
            // For composite site this script must not be changing often!!!
            Asset::getInstance()->addString('<script type="text/javascript">
					(function () {
						"use strict";

						var counter = function ()
						{
							var cookie = (function (name) {
								var parts = ("; " + document.cookie).split("; " + name + "=");
								if (parts.length == 2) {
									try {return JSON.parse(decodeURIComponent(parts.pop().split(";").shift()));}
									catch (e) {}
								}
							})("' . DayContext::getVarName() . '");

							if (! cookie || cookie.EXPIRE < BX.message("SERVER_TIME"))
							{
								var request = new XMLHttpRequest();
								request.open("POST", "/bitrix/tools/conversion/ajax_counter.php", true);
								request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
								request.send(
									"SITE_ID="      + encodeURIComponent(BX.message("SITE_ID")) + "&" +
									"sessid="       + encodeURIComponent(BX.bitrix_sessid())    + "&" +
									"HTTP_REFERER=" + encodeURIComponent(document.referrer)
								);
							}
						};

						if (window.frameRequestStart === true)
							BX.addCustomEvent("onFrameDataReceived", counter);
						else
							BX.ready(counter);
					})();
				</script>', false, AssetLocation::AFTER_JS_KERNEL);
        }
    }
예제 #8
0
파일: handlers.php 프로젝트: vim84/b-markt
 public static function onProlog()
 {
     DayContext::getInstance();
 }
 public static function onSalePayOrder($id, $paid)
 {
     if (Loader::includeModule('conversion') && ($row = \CSaleOrder::GetById($id))) {
         $context = DayContext::getEntityItemInstance('sale_order', $id);
         if ($paid == 'Y') {
             if (defined('ADMIN_SECTION') && ADMIN_SECTION === true) {
                 $context->addCounter('sale_payment_add_day', 1);
             } else {
                 $context->addDayCounter('sale_payment_add_day', 1);
             }
             $context->addCounter('sale_payment_add', 1);
             $context->addCurrencyCounter('sale_payment_sum_add', $row['PRICE'], $row['CURRENCY']);
         }
         /*
         elseif ($paid == 'N')
         {
         	if (defined('ADMIN_SECTION') && ADMIN_SECTION === true)
         	{
         		// TODO what if payment added by user and removed by admin -- conversion is going down!!!
         		$context->addCounter    ('sale_payment_rem_day', 1);
         	}
         	else
         	{
         		$context->addDayCounter ('sale_payment_rem_day', 1);
         	}
         
         	$context->addCounter        ('sale_payment_rem'    , 1);
         	$context->addCurrencyCounter('sale_payment_sum_rem', $row['PRICE'], $row['CURRENCY']);
         }
         */
     }
 }
예제 #10
0
 /**
  * Sets A/B-test related attributes to conversion context
  * 
  * @param \Bitrix\Conversion\DayContext $conversionContext Conversion context.
  * @return void
  */
 public static function onConversionSetContextAttributes(\Bitrix\Conversion\DayContext $conversionContext)
 {
     if ($abtest = Helper::getActiveTest()) {
         if ($context = Helper::getContext()) {
             if ($context['abtest'] != $abtest['ID']) {
                 return;
             }
             if (!in_array($context['section'], array('A', 'B'))) {
                 return;
             }
             $conversionContext->setAttribute('abtest', $context['abtest']);
             $conversionContext->setAttribute('abtest_section', $context['section']);
         }
     }
 }
예제 #11
0
 public static function onSetDayContextAttributes(DayContext $context)
 {
     if (AdvSession::isSession()) {
         $context->setAttribute('seo_yandex_direct_source', static::getSeoId());
     }
 }