function RefSetProcess($RefArr, $RefId = false, $HostObj = false) { //global $Db, $StId, $Skip, $NaturalKey, $HostsArr, $CookieLogSet, $UpdateVisPath; global $_NS_TRACK_VARS; $Db =& $_NS_TRACK_VARS['Db']; $StId =& $_NS_TRACK_VARS['StId']; $Skip =& $_NS_TRACK_VARS['Skip']; $NaturalKey =& $_NS_TRACK_VARS['NaturalKey']; $HostsArr =& $_NS_TRACK_VARS['HostsArr']; $CookieLogSet =& $_NS_TRACK_VARS['CookieLogSet']; $UpdateVisPath =& $_NS_TRACK_VARS['UpdateVisPath']; $QrArr = NS_TRACK_QUERY::ParseTemplate(NS_TRACK_MISC::ValidVar($RefArr['query'])); if (NS_TRACK_MISC::ValidVar($HostObj->KEY_VAR) && isset($QrArr[$HostObj->KEY_VAR])) { $Key = NS_TRACK_MISC::ToLower(urldecode(urldecode($QrArr[$HostObj->KEY_VAR]))); $Key = NS_TRACK_REFERER::ReplacePunkt($Key); $Key = preg_replace("/\\s+/", " ", $Key); $Key = trim($Key); $KeyId = NS_TRACK_REFERER::GetKeywordId($Key); } else { $KeyId = 0; } $NaturalKey = $KeyId; $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_referer_set (HOST_ID, NATURAL_KEY, PROCESSED, REFERER_ID) VALUES (" . $HostObj->ID . ", {$KeyId}, '1', {$RefId})"; $Db->Query($Query); return $Db->LastInsertId; }
$SiteHostId = NS_TRACK_GENERAL::CurrentSiteHost($HostsArr, $CurrentPageArr, $Site); if (!$SiteHostId) { $Skip = true; } if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $PageId = NS_TRACK_PAGE::GetPageId($CurrentPageArr, $StId); if ($Undef && $KeepVisPath) { NS_TRACK_GENERAL::UpdateStatUndef(); return NS_TRACK_GENERAL::FinishTracking(); } if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $GetVars = NS_TRACK_QUERY::ParseTemplate(NS_TRACK_MISC::ValidVar($CurrentPageArr['query'])); $Skip = NS_TRACK_MISC::ValidId($GetVars['ns_skip']) ? true : false; if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $ClickSubId = NS_TRACK_MISC::ValidId($GetVars[$VarCamp]) ? $GetVars[$VarCamp] : 0; if (!$ClickSubId) { $ClickSubId = NS_TRACK_CAMPAIGN::GetCampaignBySrc(NS_TRACK_MISC::ValidVar($GetVars[$VarCampSource])); } $KeyId = NS_TRACK_MISC::ValidId($GetVars[$VarKeyword]) ? $GetVars[$VarKeyword] : 0; $Keyword = NS_TRACK_MISC::ValidVar($GetVars[$VarKw]) ? $GetVars[$VarKw] : false; if ($Keyword) { $KeyId = NS_TRACK_REFERER::GetKeywordId($Keyword); } $RefSet = NS_TRACK_REFERER::GetRefererSet($RefPageArr, $Ref); $QueryId = NS_TRACK_QUERY::GetQueryId($CurrentPageArr['query']);
function CompareTemplate($Query = false, $Template = false) { $ItemValue = false; if (!$Template) { return true; } if (!$Query) { return false; } $TplGet = NS_TRACK_QUERY::ParseTemplate($Template); $QrGet = NS_TRACK_QUERY::ParseTemplate($Query); if (!$TplGet || !$QrGet) { return false; } foreach ($TplGet as $Key => $Value) { if (!isset($QrGet[$Key])) { return 0; } if ($Value == "{a}") { $ItemValue = $QrGet[$Key]; continue; } if ($Value == "*") { continue; } if ($Value != $QrGet[$Key]) { return 0; } } if ($ItemValue) { global $Item; $Item = $ItemValue; } return 1; }
$Page = $Db->Select($Query); $Site = $Db->Select("SELECT * FROM " . NS_DB_PFX . "_tracker_site WHERE ID = " . $Event->SITE_ID); $Current = "http://" . $Site->HOST; if (NS_TRACK_MISC::ValidVar($Page->PATH)) { $Current .= $Page->PATH; } else { $Current .= "/"; } if (NS_TRACK_MISC::ValidVar($NewQr)) { $Current .= "?{$NewQr}"; } NS_TRACK_MISC::Redir($Current); } if (!$CodeAction) { if (NS_TRACK_ACTION::CompareTemplate($Qr, $Event->QUERY)) { $TplGet = NS_TRACK_QUERY::ParseTemplate($Event->QUERY); $NewQr = ""; if (NS_TRACK_MISC::ValidArr($TplGet)) { foreach ($TplGet as $Key => $Value) { $NewQr .= $Key . "="; if ($Value != "*") { $NewQr .= $Value . "&"; } else { $NewQr .= $_GP[$Key] . "&"; } } } if (NS_TRACK_MISC::ValidArr($CurGet)) { foreach ($CurGet as $Key => $Value) { if (!isset($TplGet[$Key])) { $NewQr .= "{$Key}={$Value}&";