コード例 #1
0
ファイル: statevent.php プロジェクト: andy-profi/bxApiDocs
 /**
  * <p>Декодирует <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#gid">специальный параметр</a> используемый при создании <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#event">события</a> в методах <a href="http://dev.1c-bitrix.ru/api_help/statistic/classes/cstatevent/add.php">CStatEvent::Add</a>, <a href="http://dev.1c-bitrix.ru/api_help/statistic/classes/cstatevent/addbyevents.php">CStatEvent::AddByEvents</a>. Метод успешно декодирует параметр как в открытом виде, так и в base64-кодированном.</p>
  *
  *
  * @param string $gid  Специальный параметр события.
  *
  * @return array <p>Метод возвращает массив вида: </p> <br><pre class="syntax">Array ( [SESSION_ID] =&gt; ID
  * сессии [GUEST_ID] =&gt; ID посетителя [COUNTRY_ID] =&gt; ID страны [ADV_ID] =&gt; ID
  * рекламной кампании [ADV_BACK] =&gt; Y - <a
  * href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#adv_back">возврат</a> по рекламной
  * кампании; N - <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#adv_first">прямой
  * заход</a> [SITE_ID] =&gt; ID сайта )</pre> <p></p>
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * // раскодируем специальный параметр события
  * $arr = <b>CStatEvent::DecodeGID</b>("BITRIX_SM.OTk1LjgyLk4wLjI1Lk4ucnU%3D");
  * 
  * // распечатаем результирующий массив
  * echo "&lt;pre&gt;"; print_r($arr); echo "&lt;/pre&gt;";
  * ?&gt;
  * </pre>
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/statistic/classes/cstatevent/getgid.php">CStatEvent::GetGID</a>
  * </li> <li> <a href="http://dev.1c-bitrix.ru/api_help/statistic/terms.php#gid">Термин "Специальный
  * параметр события"</a> </li> </ul> <a name="examples"></a>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/statistic/classes/cstatevent/decodegid.php
  * @author Bitrix
  */
 public static function DecodeGID($EVENT_GID)
 {
     $ar = explode(".", $EVENT_GID);
     $sid = intval($ar[1]);
     $gid = intval($ar[2]);
     $base64 = "Y";
     if ((count($ar) == 6 || count($ar) == 7) && $sid > 0 && $gid > 0 && strlen($ar[1]) == strlen($sid) && strlen($ar[2]) == strlen($gid)) {
         $base64 = "N";
     }
     if ($base64 == "Y") {
         $group_site_id = GetStatGroupSiteID();
         $s = substr($EVENT_GID, strlen($group_site_id) + 1, strlen($EVENT_GID));
         $EVENT_GID = $group_site_id . "." . base64_decode($s);
     }
     $arr = explode(".", $EVENT_GID);
     $SESSION_ID = intval($arr[1]) > 0 ? intval($arr[1]) : "";
     $GUEST_ID = intval($arr[2]) > 0 ? intval($arr[2]) : "";
     $COUNTRY_ID = strlen($arr[3]) > 0 ? $arr[3] : "";
     $ADV_ID = intval($arr[4]) > 0 ? intval($arr[4]) : "";
     $ADV_BACK = $arr[5] == "Y" || $arr[5] == "N" ? $arr[5] : "";
     $SITE_ID = strlen($arr[6]) > 0 ? $arr[6] : "";
     $arrRes = array("SESSION_ID" => $SESSION_ID, "GUEST_ID" => $GUEST_ID, "COUNTRY_ID" => $COUNTRY_ID, "ADV_ID" => $ADV_ID, "ADV_BACK" => $ADV_BACK, "SITE_ID" => $SITE_ID);
     return $arrRes;
 }
コード例 #2
0
ファイル: stat_tools.php プロジェクト: rasuldev/torino
function GetEventSiteID()
{
    return GetStatGroupSiteID();
}