/** * <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] => ID * сессии [GUEST_ID] => ID посетителя [COUNTRY_ID] => ID страны [ADV_ID] => ID * рекламной кампании [ADV_BACK] => 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] => ID сайта )</pre> <p></p> * * <h4>Example</h4> * <pre> * <? * // раскодируем специальный параметр события * $arr = <b>CStatEvent::DecodeGID</b>("BITRIX_SM.OTk1LjgyLk4wLjI1Lk4ucnU%3D"); * * // распечатаем результирующий массив * echo "<pre>"; print_r($arr); echo "</pre>"; * ?> * </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; }
function GetEventSiteID() { return GetStatGroupSiteID(); }