function ExportCsv($DataArr, $Separator = ";", $NamesArr = false, $Expanded = false) { $Export = ""; if (ValidArr($NamesArr)) { foreach ($NamesArr as $i => $Row) { $NamesArr[$i] = CsvPrepare($NamesArr[$i], $Separator); } $Export .= implode($Separator, $NamesArr); $Export .= "\n"; } foreach ($DataArr as $i => $Row) { $TmpArr = array(); foreach ($NamesArr as $Key => $SubRow) { $Str = ""; $KeyArr = array(); $KeyArr = explode("|", $Key); if (!$Expanded) { $KeyArr = array_slice($KeyArr, 0, 1); } for ($z = 0; $z < count($KeyArr); $z++) { if (!ValidVar($KeyArr[$z])) { continue; } if ($z > 0) { $Str .= " ("; } $Str .= $Row[$KeyArr[$z]]; if ($z > 0) { $Str .= ")"; } } $TmpArr[] = CsvPrepare($Str, $Separator); } $Export .= implode($Separator, $TmpArr); $Export .= "\n"; } return $Export; }
<?php include $nsTemplate->Inc("inc/header"); include $nsTemplate->Inc("inc/submenu"); if (ValidArr($UsersArr) || ValidArr($AgentsArr)) { ?> <table class=ListTable> <?php if ($nsProduct->LICENSE != 3) { ?> <?php for ($i = 0; $i < count($AgentsArr); $i++) { $Row = $AgentsArr[$i]; ?> <tr> <td class=<?php echo $Row->_STYLE; ?> > <table width=100% cellpadding=0 cellspacing=0 border=0> <tr><td width=100%><p> <B><a href="<?php echo getURL("agents", "EditUid=" . $Row->ID);
</select> <?php } else { ?> <input type=hidden name=ForClient value=<?php echo $nsUser->COMPANY_ID; ?> > <?php } ?> <span ID="SiteSelect"> <?php if ($ForClient && ValidArr($ClientsArr[$ForClient]['Sites']) && count($ClientsArr[$ForClient]['Sites']) > 0) { ?> <select name=SiteId> <option value="all" style="background:#d0d0d0;"><?php echo $Lang['DeleteAll']; ?> </option> <?php foreach ($ClientsArr[$ForClient]['Sites'] as $CSite => $Name) { ?> <option value=<?php echo $CSite; ?> <?php echo $CSite == $SiteId ? "selected" : ""; ?>
<?php include $nsTemplate->Inc("inc/header"); include $nsTemplate->Inc("inc/submenu"); ?> <?php if (ValidArr($CompArr) && count($CompArr) > 1) { ?> <div class=FormDiv> <?php GetFORM(); ?> <input type=hidden name=Mode value=<?php echo $Mode; ?> > <table width=100%> <tr><td class=FormHeader> <B style="color:#000000"><?php echo $Lang['SIChooseClient']; ?> </B> <select name=SelectCpId> <option></option> <?php for ($i = 0; $i < Count($CompArr); $i++) { ?> <option value=<?php echo $CompArr[$i]->ID; ?> <?php
<?php include $nsTemplate->Inc("inc/header"); include $nsTemplate->Inc("inc/submenu"); if (ValidArr($InCampArr) && count($InCampArr) > 0) { include $nsTemplate->Inc("admin.sub_camp_list"); } else { include $nsTemplate->Inc("inc/no_records"); } include $nsTemplate->Inc("inc/footer");
if (ValidId($MyDeleteId) && $Mode == "visitor_grps") { DeleteFromMy($MyDeleteId, "VISITOR_GRP_ID"); } if (ValidArr($AddToMy) && $Mode == "actions") { AddToMy($AddToMy, "ACTION_ID"); } if (ValidId($MyDeleteId) && $Mode == "actions") { DeleteFromMy($MyDeleteId, "ACTION_ID"); } if (ValidArr($AddToMy) && $Mode == "action_items") { AddToMy($AddToMy, "ACTION_ITEM_ID"); } if (ValidId($MyDeleteId) && $Mode == "action_items") { DeleteFromMy($MyDeleteId, "ACTION_ITEM_ID"); } if (ValidArr($AddToMy) && $Mode == "sale_items") { AddToMy($AddToMy, "SALE_ITEM_ID"); } if (ValidId($MyDeleteId) && $Mode == "sale_items") { DeleteFromMy($MyDeleteId, "SALE_ITEM_ID"); } } ///////////////////////////////////////////// ///////// display section here /////////////////////// if ($Mode == "list") { $Query = "\n\t\tSELECT UR.*, C.NAME AS COMP_NAME\n\t\tFROM " . PFX . "_tracker_watch W\n\t\tINNER JOIN " . PFX . "_tracker_user_report UR\n\t\t\tON UR.ID=W.REPORT_ID\n\t\tINNER JOIN " . PFX . "_tracker_client C\n\t\t\tON C.ID=UR.COMPANY_ID\n\t\tWHERE W.USER_ID=" . $nsUser->UserId() . " \n\t\tORDER BY C.NAME, UR.NAME\n\t"; $Sql = new Query($Query); $Sql->ReadSkinConfig(); $UserReports = array(); while ($Row = $Sql->Row()) {
function GetStat() { global $Logs; $StatArr = array(); $GrpItems = array(); $GrpList = ""; $SelectStr = ""; $JoinStr = ""; $OrderStr = ""; $GroupStr = ""; $WhereStr = ""; $StraightStr = ""; $LimitStr = ""; if (count($this->SelectArr) > 0) { $SelectStr = implode(", ", $this->SelectArr) . ", "; } if (count($this->JoinArr) > 0) { $JoinStr = implode(" \n", $this->JoinArr); } if (count($this->OrderArr) > 0) { $OrderStr = "ORDER BY " . implode(", ", $this->OrderArr); } if (count($this->GroupArr) > 0) { $GroupStr = "GROUP BY " . implode(", ", $this->GroupArr); } if (count($this->WhereArr) > 0) { $WhereStr = "WHERE " . implode(" AND ", $this->WhereArr); } if ($this->UseStraight) { $StraightStr = "STRAIGHT_JOIN"; } /////////////////////////////////////////// if ($this->ShowVisitors) { $Query = "\n\t\t\t\tSELECT {$StraightStr}\n\t\t\t\t\t{$SelectStr}\n\t\t\t\t\tCOUNT(S_LOG.ID) CNT,\n\t\t\t\t\tCOUNT(DISTINCT S_LOG.VISITOR_ID) UNI\n\t\t\t\t\t# выбираем точки входа из лога\n\t\t\t\t\tFROM " . PFX . "_tracker_" . $this->CpId . "_stat_log S_LOG\n\t\t\t\t\t# точки входа определяются путями по сайту\n\t\t\t\t\t# вероятно, с наличием referer set \n\t\t\t\t\t#JOIN " . PFX . "_tracker_stat_path S_PATH\n\t\t\t\t\t#\tON S_PATH.LOG_ID=S_LOG.ID\n\t\t\t\t\tINNER JOIN " . PFX . "_tracker_" . $this->CpId . "_stat_split S_SPLIT\n\t\t\t\t\t\tON S_SPLIT.LOG_ID=S_LOG.ID\n\t\t\t\t{$JoinStr}\n\t\t\t\t{$WhereStr}\n\t\t\t\t{$GroupStr}\n\t\t\t\t{$OrderStr}\n\t\t\t\t{$LimitStr}\n\t\t\t"; //echo HLSQL($Query); $Sql = new Query($Query); while ($Row = $Sql->Row()) { if ($this->GrpFld) { $Tmp = $this->GrpFld; $Grp = $Row->{$Tmp}; } else { $Grp = $Sql->Position; } if ($this->GrpName) { $Name = $this->GrpName; $StatArr[$Grp]['Name'] = $Row->{$Name}; } $StatArr[$Grp]['CntClick'] = $Row->CNT; $StatArr[$Grp]['UniClick'] = $Row->UNI; $StatArr[$Grp]['CntAction'] = 0; $StatArr[$Grp]['UniAction'] = 0; $StatArr[$Grp]['CntSale'] = 0; $StatArr[$Grp]['UniSale'] = 0; $StatArr[$Grp]['Income'] = 0; $StatArr[$Grp]['Obj'] = $Row; if (count($this->GroupArr)) { $GrpItems[] = $Grp; } } if (count($GrpItems) > 0 && !ValidId($this->GroupArr[0])) { $GrpList = "AND " . $this->GroupArr[0] . " IN (" . implode(",", $GrpItems) . ")"; } } /////////////////////////////////////////// if ($this->ShowActions) { $Query = "\n\t\t\t\tSELECT {$StraightStr}\n\t\t\t\t\t{$SelectStr}\n\t\t\t\t\tCOUNT(S_LOG.ID) CNT,\n\t\t\t\t\tCOUNT(DISTINCT S_LOG.VISITOR_ID) UNI\n\t\t\t\t\t# выбираем точки входа из лога\n\t\t\t\t\tFROM " . PFX . "_tracker_" . $this->CpId . "_stat_log S_LOG\n\t\t\t\t\t# присоединяем ту ветку, которая произошла от S_LOG.ID\n\t\t\t\t\t# по принципу, что в COOKIE_LOG хранится этот самый ID\n\t\t\t\t\tINNER JOIN " . PFX . "_tracker_" . $this->CpId . "_stat_log NODE\n\t\t\t\t\t\tON NODE.COOKIE_LOG=S_LOG.ID\n\t\t\t\t\t# присоединяем таблицу действий\n\t\t\t\t\t# только к выбранным веткам\n\t\t\t\t\tINNER JOIN " . PFX . "_tracker_" . $this->CpId . "_stat_action S_ACTION\n\t\t\t\t\t\tON S_ACTION.LOG_ID=NODE.ID\n\t\t\t\t\t# точки входа определяются путями по сайту\n\t\t\t\t\t# вероятно, с наличием referer set \n\t\t\t\t\t#JOIN " . PFX . "_tracker_stat_path S_PATH\n\t\t\t\t\t#\tON S_PATH.LOG_ID=S_LOG.ID\n\t\t\t\t\tINNER JOIN " . PFX . "_tracker_" . $this->CpId . "_stat_split S_SPLIT\n\t\t\t\t\t\tON S_SPLIT.LOG_ID=S_LOG.ID\n\t\t\t\t{$JoinStr}\n\t\t\t\t{$WhereStr}\n\t\t\t\t{$GrpList}\n\t\t\t\t{$GroupStr}\n\t\t\t\t{$OrderStr}\n\t\t\t\t{$LimitStr}\n\t\t\t"; //echo HLSQL($Query); $Sql = new Query($Query); while ($Row = $Sql->Row()) { if ($this->GrpFld) { $Tmp = $this->GrpFld; $Grp = $Row->{$Tmp}; } else { $Grp = $Sql->Position; } if (!isset($StatArr[$Grp]) && $this->ShowVisitors) { continue; } if (!$this->ShowVisitors) { if ($this->GrpName) { $Name = $this->GrpName; $StatArr[$Grp]['Name'] = $Row->{$Name}; } } $StatArr[$Grp]['CntAction'] = $Row->CNT; $StatArr[$Grp]['UniAction'] = $Row->UNI; $StatArr[$Grp]['Obj'] = $Row; } } /////////////////////////////////////////// if ($this->ShowSales) { $Query = "\n\t\t\t\tSELECT {$StraightStr}\n\t\t\t\t\t{$SelectStr}\n\t\t\t\t\tCOUNT(S_LOG.ID) CNT,\n\t\t\t\t\tCOUNT(DISTINCT S_LOG.VISITOR_ID) UNI,\n\t\t\t\t\tSUM(S_SALE.COST) AS SALE_SUM\n\t\t\t\t\tFROM " . PFX . "_tracker_" . $this->CpId . "_stat_log S_LOG\n\t\t\t\t\tINNER JOIN " . PFX . "_tracker_" . $this->CpId . "_stat_log NODE\n\t\t\t\t\t\tON NODE.COOKIE_LOG=S_LOG.ID\n\t\t\t\t\tINNER JOIN " . PFX . "_tracker_" . $this->CpId . "_stat_sale S_SALE\n\t\t\t\t\t\tON S_SALE.LOG_ID=NODE.ID\n\t\t\t\t\t#JOIN " . PFX . "_tracker_stat_path S_PATH\n\t\t\t\t\t#\tON S_PATH.LOG_ID=S_LOG.ID\n\t\t\t\t\tINNER JOIN " . PFX . "_tracker_" . $this->CpId . "_stat_split S_SPLIT\n\t\t\t\t\t\tON S_SPLIT.LOG_ID=S_LOG.ID\n\t\t\t\t{$JoinStr}\n\t\t\t\t{$WhereStr}\n\t\t\t\t{$GrpList}\n\t\t\t\t{$GroupStr}\n\t\t\t\t{$OrderStr}\n\t\t\t\t{$LimitStr}\n\t\t\t"; //echo HLSQL($Query); $Sql = new Query($Query); while ($Row = $Sql->Row()) { if ($this->GrpFld) { $Tmp = $this->GrpFld; $Grp = $Row->{$Tmp}; } else { $Grp = $Sql->Position; } if (!isset($StatArr[$Grp]) && $this->ShowVisitors) { continue; } if (!$this->ShowVisitors) { if ($this->GrpName) { $Name = $this->GrpName; $StatArr[$Grp]['Name'] = $Row->{$Name}; } } $StatArr[$Grp]['CntSale'] = $Row->CNT; $StatArr[$Grp]['UniSale'] = $Row->UNI; $StatArr[$Grp]['Income'] = $Row->SALE_SUM; $StatArr[$Grp]['Obj'] = $Row; } } foreach ($StatArr as $i => $Row) { if ($this->ShowActionConv) { $StatArr[$i]['ActionConv'] = $this->GetRatio($StatArr[$i]['UniClick'], $StatArr[$i]['UniAction']); } if ($this->ShowSaleConv) { $StatArr[$i]['SaleConv'] = $this->GetRatio($StatArr[$i]['UniClick'], $StatArr[$i]['UniSale']); } if (!$StatArr[$i]['Income']) { $StatArr[$i]['Income'] = 0; } } if (!ValidArr($StatArr) || count($StatArr) == 0) { return false; } if (count($this->GroupArr) < 1) { if (!isset($Grp)) { $Grp = 0; } return $StatArr[$Grp]; } return $StatArr; }
$Logs->Err($Lang['InvalidIp']); $NewIp = false; } ///////////////////////////////////////////// ///////// call any process functions if (!$nsUser->DEMO) { if (ValidId($EditId) && $NewIp) { AddIp($NewIp, $EditId); } if (ValidId($EditId) && ValidId($DeleteIp)) { RemoveIp($DeleteIp, $EditId); } if (ValidArr($EditArr) && $EditId == "new") { CreateNewGrp($EditArr); } if (ValidArr($EditArr) && ValidId($EditId)) { UpdateGrp($EditId, $EditArr); } } ///////////////////////////////////////////// ///////// display section here if ($EditId == "new") { if (!$EditArr) { $EditArr['Name'] = ""; $EditArr['Descr'] = ""; $EditArr['Wacth'] = 0; } if (!ValidVar($EditArr['Watch'])) { $EditArr['Watch'] = 0; } $TableCaption = $Lang['CreateNewGrp'];
function GetSkinConfig($Skin = false) { global $nsProduct; if (!$Skin) { $Skin = $nsProduct->SKIN; } if (@file_exists(SELF . "/skins/{$Skin}/config/conf.skin.php")) { include_once SELF . "/skins/{$Skin}/config/conf.skin.php"; } if (ValidArr($SkinConfig)) { return $SkinConfig; } else { return false; } }
$Ref = NS_TRACK_MISC::ValidVar($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false; if (!$Db->ID) { @clearstatcache(); $f = @fopen(SELF . "/store/split_test.nodb", "r"); if (!$f) { NS_TRACK_MISC::Redir($_SERVER['HTTP_REFERER']); } $Data = fread($f, filesize(SELF . "/store/split_test.nodb")); if (!$Data) { NS_TRACK_MISC::Redir($_SERVER['HTTP_REFERER']); } $DataArr = @unserialize($Data); if (!ValidArr($DataArr)) { NS_TRACK_MISC::Redir($_SERVER['HTTP_REFERER']); } if (!ValidArr($DataArr[$SplitId])) { NS_TRACK_MISC::Redir($_SERVER['HTTP_REFERER']); } NS_TRACK_MISC::Redir($DataArr[$SplitId][0]); exit; } $RememberPage = $Db->ReturnValue("SELECT REMEMBER_PAGE FROM " . PFX . "_tracker_split_test WHERE ID = {$SplitId}"); $PrevPageId = NS_TRACK_MISC::CookieStorageGet("split{$SplitId}" . "_page"); $PrevQueryId = NS_TRACK_MISC::CookieStorageGet("split{$SplitId}" . "_query"); if ($PrevPageId && $RememberPage) { $Where = " AND TSP.PAGE_ID='{$PrevPageId}'"; } else { $Where = ""; } if ($PrevPageId && $PrevQueryId && $RememberPage) { $Where .= " AND TSP.QUERY_ID = '{$PrevQueryId}'";
<td valign=top><p></p></td> <td width="50%" valign="top" style="border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:#E6E6E6;"><span class=SectionName> </td></tr> </table> <IMG SRC="images/0.gif" WIDTH="1" HEIGHT="20" BORDER="0" ALT=""> <?php if (ValidArr($NaturalReport->StatArr)) { ?> <div class=FormDiv2> <table border="0" cellpadding="0" cellspacing="0" width=100%> <tr> <td class="ReportHeaderTd2" style="padding-left:6px;" width=20%><p class="ReportHeaderName"><?php echo $Lang['Site']; ?> </td> <?php if ($nsUser->Columns->HITS) { ?> <td class="ReportHeaderTd2" style="padding-left:6px;" width=10%><p class="ReportHeaderName"><?php echo $Lang['Online'];
if (ValidId($CpId)) { $MenuSection = "settings"; $ProgPath[0]['Name'] = $Lang['MSettings']; $ProgPath[0]['Url'] = getURL("settings", "CpId={$CpId}", "admin"); } else { $MenuSection = "admin"; $ProgPath[0]['Name'] = $Lang['Administr']; $ProgPath[0]['Url'] = getURL("admin", "", "admin"); } $PageTitle .= $Lang['Title']; $ProgPath[1]['Name'] = $Lang['Title']; $ProgPath[1]['Url'] = getURL("stat_config", "CpId={$CpId}", "admin"); ///////////////////////////////////////////// ///////// call any process functions if (!$nsUser->DEMO) { if (ValidArr($SaveSet)) { SaveSettings($SaveSet); } } ///////////////////////////////////////////// ///////// display section here include $nsTemplate->Inc(); ///////////////////////////////////////////// ///////// process functions here function SaveSettings($SaveSet) { global $Db, $Logs, $Lang, $CpId, $nsProduct; $KeepPath = '2'; $KeepNoRef = '2'; foreach ($SaveSet as $CP => $Arr) { foreach ($Arr as $SiteId => $SubArr) {
while ($Row = $Sql->Row()) { $Row->_STYLE = $Sql->_STYLE; $IpArr[] = $Row; if (strpos($Row->IP, "*") === false) { $GrpIpArr[] = "'" . $Row->IP . "'"; } else { $IpTemplArr[] = $Row->IP; } } } if (!ValidArr($EditArr)) { $EditArr['Name'] = htmlspecialchars(stripslashes($Visitor->NAME)); $EditArr['Descr'] = htmlspecialchars(stripslashes($Visitor->DESCRIPTION)); $EditArr['Watch'] = $Visitor->WATCH; } if (ValidArr($EditArr)) { $EditArr['Name'] = htmlspecialchars(stripslashes($EditArr['Name'])); $EditArr['Descr'] = htmlspecialchars(stripslashes($EditArr['Descr'])); $EditArr['Watch'] = $Visitor->WATCH; } $IdsStr = ""; if (!$nsUser->ADMIN) { $SiteIds = array(); $Query = "SELECT ID FROM " . PFX . "_tracker_site WHERE COMPANY_ID=" . $nsUser->COMPANY_ID; $Sql = new Query($Query); while ($Row = $Sql->Row()) { $SiteIds[] = $Row->ID; } $IdsStr = implode(",", $SiteIds); } $WhereIpIn = "";
</a> </td> <td class=ListRowLeft> <?php $nsButtons->PostName = true; $nsButtons->Add("icon_link.gif", $Lang['CodeGen'], $Row->_CODELINK); $nsButtons->Add("edit.gif", $Lang['Edit'], $Row->_EDITLINK); $nsButtons->Add("delete.gif", $Lang['Delete'], $Row->_DELETELINK, $Lang['YouSure']); $nsButtons->Dump(); ?> </td> </tr></table> </td></tr> <?php } ?> </table> <?php } ?> <?php if (ValidArr($PathArr) && count($PathArr) > 1) { include $nsTemplate->Inc("inc/grp_path"); }
if (isset($_GP['ShowFilter'])) { $ShowFilter = $_GP['ShowFilter']; } $SavePrevLevel = false; $PrevReport = false; $ShowAll = false; $NoGroupBy = false; if ($GroupBy == "General") { $NoGroupBy = true; $GroupBy = false; } $ExportCsv = false; $ExportSep = ","; $ExportNoLimit = false; $ExportExpanded = false; if (ValidArr($ExportReport)) { $ExportCsv = true; $ExportSep = ValidVar($ExportReport['Separator']) ? $ExportReport['Separator'] : ","; $ExportNoLimit = ValidVar($ExportReport['NoLimit']) == 1 ? true : false; $ExportExpanded = ValidVar($ExportReport['Expanded']) == 1 ? true : false; } if (ValidId($ConstId)) { ImportReport($ConstId); } if ($GroupBy && !$OrderBy && !$OrderTo && !$CurrentId && !$Redir) { if (isset($WhereArr[count($WhereArr) - 1]['OrderBy'])) { $OrderBy = $WhereArr[count($WhereArr) - 1]['OrderBy']; } if (isset($WhereArr[count($WhereArr) - 1]['OrderTo'])) { $OrderTo = $WhereArr[count($WhereArr) - 1]['OrderTo']; }
function RefSetUpdate($RefSetId, $RefArr, $RefId = false, $HostObj = false) { global $Db; $Prcsd = 0; if (ValidVar($RefArr['query'])) { $QrArr = ParseTemplate($RefArr['query']); } if (ValidVar($HostObj->KEY_VAR) && ValidArr($QrArr) && isset($QrArr[$HostObj->KEY_VAR])) { $Key = ToLower(urldecode($QrArr[$HostObj->KEY_VAR])); $Key = ReplacePunkt($Key); $Key = preg_replace("/\\s+/", " ", $Key); $Key = trim($Key); $KeyId = GetKeywordId($Key); $Prcsd = 1; } else { $KeyId = 0; } $Query = "UPDATE " . PFX . "_tracker_referer_set SET HOST_ID=" . $HostObj->ID . ", NATURAL_KEY={$KeyId}, PROCESSED='{$Prcsd}' WHERE ID={$RefSetId}"; $Db->Query($Query); return $KeyId; }
<table class=SubmitTable> <tr><td class=SubmitLeftTd> </td><td class=SubmitRightTd> <input type=submit value="<?php echo $Lang['Save']; ?> "> </td></tr> </table> </form> <?php if (ValidArr($Refs) && count($Refs) > 0) { ?> <div class=ListDiv> <table class=ListTable> <?php for ($i = 0; $i < count($Refs); $i++) { $Row = $Refs[$i]; ?> <tr><td class=ListRowRight> <a href="<?php echo $Row->REFERER; ?> " target=_blank><?php echo urldecode(urldecode($Row->REFERER)); ?> </a>
function CreateNewSiteHost($SiteId, $Host, $NoRedir = false) { global $Db, $EditId, $nsProduct; $Host = ToLower(trim($Host)); $Check = array(); $Check = @parse_url($Host); if (ValidArr($Check) && ValidVar($Check['scheme'])) { $Host = str_replace($Check['scheme'] . "://", "", $Host); } $CheckId = $Db->ReturnValue("SELECT ID FROM " . PFX . "_tracker_site_host WHERE SITE_ID={$SiteId} AND HOST = '{$Host}'"); if (!$CheckId) { $Query = "INSERT INTO " . PFX . "_tracker_site_host (SITE_ID, HOST, ENABLED) VALUES ({$SiteId}, ?, '1')"; $Db->Query($Query, $Host); } if (!$NoRedir) { $nsProduct->Redir("company", "RCrt=1&EditId={$EditId}&HostId={$SiteId}"); } }
$WhereArr = ValidArr($_GP['WhereArr']) ? $_GP['WhereArr'] : false; $SaveReport = ValidArr($_GP['SaveReport']) ? $_GP['SaveReport'] : false; $NoSubmit = ValidVar($_GP['NoSubmit']) ? $_GP['NoSubmit'] : false; $CpId = false; $GroupBy = false; $DatesUsed = false; $ViewDate = false; $StartDate = false; $EndDate = false; $Filter = false; $Limit = false; $ShowAll = false; $OrderBy = false; $OrderTo = false; $SaveMode = false; if (ValidArr($SaveReport)) { extract($SaveReport); } if ($WhereArr && $SaveReport && !$NoSubmit && !$nsUser->DEMO) { SaveReport($SaveReport, $WhereArr); } elseif (!$NoSubmit) { $Logs->Err($Lang['SaveErr1']); } $PageTitle = $Lang['Title']; ///////////////////////////////////////////// ///////// call any process functions ///////////////////////////////////////////// ///////// display section here include $nsTemplate->Inc("inc/header"); include $nsTemplate->Inc("inc/submenu"); include $nsTemplate->Inc("constructor/save_report");
if (!ValidVar($EditArr['Ban'])) { $EditArr['Ban'] = 0; } $TableCaption = $Lang['CaptionNew']; $SubMenu[0]['Name'] = $Lang['BackToList']; $SubMenu[0]['Link'] = getURL("user_agent"); $PageTitle = $Lang['AddNewGrp']; include $nsTemplate->Inc("admin.agent_grp"); } //// edit grp if ($Mode == "Grp" && ValidId($EditId)) { $Query = "SELECT * FROM " . PFX . "_tracker_visitor_agent_grp WHERE ID = {$EditId}"; $EditGrp = $Db->Select($Query); $ProgPath[2]['Name'] = $EditGrp->NAME; $ProgPath[2]['Url'] = getURL("user_agent", "Mode=Grp&EditId={$EditId}", "admin"); if (!ValidArr($EditArr)) { $EditArr['Name'] = $EditGrp->NAME; $EditArr['Ban'] = $EditGrp->BAN; $EditArr['Regular'] = $EditGrp->REGULAR_EXPRESSION; $EditArr['Regular2'] = $EditGrp->REGULAR_EXPRESSION2; } if (!ValidVar($EditArr['Ban'])) { $EditArr['Ban'] = 0; } $TableCaption = $Lang['CaptionEdit'] . $EditGrp->NAME; $PageTitle = $EditGrp->NAME; $SubMenu[0]['Name'] = $Lang['BackToList']; $SubMenu[0]['Link'] = getURL("user_agent", "GrpId={$EditId}"); if ($EditGrp->REGULAR_EXPRESSION || $EditGrp->REGULAR_EXPRESSION2) { //$SubMenu[1]['Name']=$Lang['FindByReg']; //$SubMenu[1]['Link']=getURL("user_agent", "SearchRegId=$EditId");
function GrpListPath($CurrentGrpId = false) { if (!$CurrentGrpId) { return false; } global $CompId, $Db; $GrpArr = array(); $OverArr = array(); $Query = "SELECT ID, NAME, PARENT_ID FROM " . PFX . "_tracker_campaign WHERE ID={$CurrentGrpId} AND COMPANY_ID={$CompId} ORDER BY POSITION ASC"; $Sql = new Query($Query); while ($Row = $Sql->Row()) { $GrpArr[] = $Row; if ($Row->PARENT_ID > 0) { $OverArr = GrpListPath($Row->PARENT_ID); } if (ValidArr($OverArr)) { $GrpArr = array_merge($GrpArr, $OverArr); } } return $GrpArr; }
<?php include $nsTemplate->Inc("inc/header"); include $nsTemplate->Inc("inc/submenu"); ?> <?php if ($nsUser->ADMIN && ValidArr($CompArr) && count($CompArr) > 1) { ?> <div class=FormDiv> <?php GetFORM("visitor_grp", "EditId=new", "admin"); ?> <table width=100%> <tr><td class=FormHeader> <select name=CpId> <?php for ($i = 0; $i < Count($CompArr); $i++) { ?> <option value=<?php echo $CompArr[$i]->ID; ?> <?php echo $CompArr[$i]->ID == $SelectCpId ? "selected" : ""; ?> ><?php echo $CompArr[$i]->NAME; ?> </option>
<?php if (isset($SubMenu) && ValidArr($SubMenu) && count($SubMenu) > 0) { ?> <table cellpadding=5 cellspacing=0 border=0 class=SubMenuTable><tr> <?php foreach ($SubMenu as $i => $MenuRow) { ?> <td class=SubMenuTd onmouseover="this.style.background='#f5f5f5'" onmouseout="this.style.background=''"> <a href="<?php echo $SubMenu[$i]['Link']; ?> " <?php echo isset($SubMenu[$i]['Onclick']) ? "onclick=\"" . $SubMenu[$i]['Onclick'] . "\"" : ""; ?> ><IMG SRC="<?php echo FileLink("images/icon_menu.gif"); ?> " WIDTH="7" HEIGHT="4" BORDER="0" ALT="" style="margin-bottom:2px;"> <?php echo $SubMenu[$i]['Name']; ?> </a> </td> <?php } ?> </tr></table><IMG SRC="<?php echo FileLink("images/0.gif"); ?> " WIDTH="1" HEIGHT="10" BORDER="0" ALT="">
function DrawDateStat($DayStatArr, &$Graph, $Params) { global $Lang, $DateFormat, $OrderBy; usort($DayStatArr, "SortArrByDate"); $DateRatio = 12 - (MaxNameLength("DayOfWeekShort") - 2); if ($DateFormat == "Date") { $Graph->Vars['ixes_ratio'] = $DateRatio; } if ($DateFormat == "Month") { $Graph->Vars['ixes_ratio'] = 12; } if ($DateFormat == "Time") { $Graph->Vars['ixes_ratio'] = 24; } if ($DateFormat == "Year") { $Graph->Vars['ixes_ratio'] = 20; } if ($DateFormat == "WeekDay") { $Graph->Vars['ixes_ratio'] = 7; } $Max = 0; if (!ValidArr($DayStatArr)) { return false; } foreach ($DayStatArr as $Day => $Row) { if ($Max < $Row[$Params[0]]) { $Max = $Row[$Params[0]]; } } if ($Max <= 0) { return false; } $VisZones = $Graph->GraphZone(0, $Max); for ($i = 0; $i < count($VisZones); $i++) { $Graph->Vars["disp_y{$i}"] = $VisZones[$i]; } $i = count($DayStatArr) - 1; $j = 0; for ($z = 0; $z < count($Params); $z++) { $Graph->Vars['line' . $z . '_points'] = ""; } foreach ($DayStatArr as $Day => $Row) { if ($DateFormat == "Date") { $Graph->Vars["disp_x{$i}"] = date("d.m", $Row['Obj']->USTAMP) . "," . $Lang['DayOfWeekShort'][date("w", $Row['Obj']->USTAMP)]; } if ($DateFormat == "Month") { $Graph->Vars["disp_x{$i}"] = $Lang['MonthName'][intval(date("m", $Row['Obj']->USTAMP))]; } if ($DateFormat == "Time") { $Graph->Vars["disp_x{$i}"] = date("H", $Row['Obj']->USTAMP); } if ($DateFormat == "Year") { $Graph->Vars["disp_x{$i}"] = date("Y", $Row['Obj']->USTAMP); } if ($DateFormat == "WeekDay") { $Graph->Vars["disp_x{$i}"] = $Lang['DayOfWeek'][date("w", $Row['Obj']->USTAMP)]; } for ($z = 0; $z < count($Params); $z++) { $ZoneValue = $Graph->ZoneValue($VisZones, $Row[$Params[$z]]); $Graph->Vars['line' . $z . '_points'] .= "{$i}:{$ZoneValue},"; } $i--; $j++; if ($j > 1) { $Graph->CanDump = true; } } }
<?php if (ValidId($SplitTest->ID)) { ?> <table class=CaptionTable> <tr><td class=CaptionTd> <?php echo $Lang['PagesList']; ?> </td></tr> </table> <div class=ListDiv2> <?php if (ValidArr($PagesArr)) { ?> <table class=ListTable2> <?php for ($i = 0; $i < count($PagesArr); $i++) { $Row = $PagesArr[$i]; ?> <tr> <td class=<?php echo $Row->_STYLE; ?> > <table width=100% cellpadding=0 cellspacing=0 border=0><tr>
function GenLink($UrlTO = false, $Keyword = false) { global $_GP, $CampId, $Logs, $Lang, $SplitId, $nsProduct, $UseSSL, $LinkArr; global $AllowCSV, $csv, $Db, $UseRedirect, $SiteId; global $VarCamp, $VarKw, $VarKeyword, $KeyArr; $ExportSep = $Lang['SeparatorValue']; if (!$CampId && !$SplitId) { $Logs->Err($Lang['NeedToChoose']); return; } if ($CampId && !$SplitId) { if (!$UrlTO) { $Logs->Err($Lang['UrlNeeded']); return; } } //if ($UrlTO&&!CheckURLTO($UrlTO)) return false; //if (!$SplitId) $UseSSL=false; if ($UseSSL) { $HL = $nsProduct->HL; $nsProduct->HL = $nsProduct->SSL_LINK; } $Keyword = trim($Keyword); $CSVArr = array(); if ($CampId && $csv) { $CampName = $Db->ReturnValue("SELECT NAME FROM " . PFX . "_tracker_camp_piece WHERE ID = {$CampId}"); } if ($SplitId && $csv) { $SplitName = $Db->ReturnValue("SELECT CP.NAME FROM " . PFX . "_tracker_camp_piece CP WHERE CP.ID = {$SplitId}"); } if ($CampId && !$SplitId) { if (!$UseRedirect) { $Link = ""; $Link .= $UrlTO; if (strpos($Link, "?")) { $Link .= "&"; } else { $Link .= "?"; } $Link .= "{$VarCamp}={$CampId}"; } else { $Link = getURL("campaign", "cid={$CampId}&st={$SiteId}", "track"); $Link .= "&rurl=" . urlencode($UrlTO); } $Keyword = trim(ToLower($Keyword)); $KeyArr = array(); if ($Keyword) { $KeyArr = explode("\n", $Keyword); $KeyArr = array_unique($KeyArr); } $Inx = 0; if (count($KeyArr) > 0) { for ($i = 0; $i < count($KeyArr); $i++) { if (!isset($KeyArr[$i]) || !$KeyArr[$i]) { continue; } $KeyArr[$i] = trim($KeyArr[$i]); $LinkVar = ""; $KeyId = CheckKeyword($KeyArr[$i]); if ($KeyId) { $LinkVar = $Link . "&{$VarKeyword}={$KeyId}"; } $LinkArr[$i] = $LinkVar; if ($csv) { $CSVArr[$Inx]['Link'] = $LinkVar; $CSVArr[$Inx]['Keyword'] = $KeyArr[$i]; $CSVArr[$Inx]['Camp'] = $CampName; } $Inx++; } } else { $Logs->Msg($Link); } } if ($CampId && $SplitId) { $GLOBALS['GLink'] = false; $Id = GetSplitId($SplitId); if (!MOD_R) { $Link = getURL("split", "s={$Id}&{$VarCamp}={$CampId}", "track"); } else { $Link = str_replace(".html", "", getURL("split", "", "track")); $Link .= "/s{$Id}/{$VarCamp}{$CampId}/"; } $Keyword = trim(ToLower($Keyword)); $KeyArr = array(); if ($Keyword) { $KeyArr = explode("\n", $Keyword); $KeyArr = array_unique($KeyArr); } $Inx = 0; if (count($KeyArr) > 0) { for ($i = 0; $i < count($KeyArr); $i++) { if (!isset($KeyArr[$i]) || !$KeyArr[$i]) { continue; } $KeyArr[$i] = trim($KeyArr[$i]); $Keyword = $KeyArr[$i]; $LinkVar = ""; $KeyId = CheckKeyword($Keyword); if ($KeyId && !MOD_R) { $LinkVar = $Link . "&{$VarKeyword}={$KeyId}"; } if ($KeyId && MOD_R) { $LinkVar = $Link . "{$VarKeyword}{$KeyId}/"; } $LinkArr[$i] = $LinkVar; if ($csv) { $CSVArr[$Inx]['Link'] = $LinkVar; $CSVArr[$Inx]['Keyword'] = $KeyArr[$i]; $CSVArr[$Inx]['Split'] = $SplitName; $CSVArr[$Inx]['Camp'] = $CampName; } $Inx++; } } else { $Logs->Msg($Link); } } if ($SplitId && !$CampId) { $GLOBALS['GLink'] = false; $GLOBALS['GKey'] = false; $Id = GetSplitId($SplitId); if (!MOD_R) { $SLink = getURL("split", "s={$Id}", "track"); } else { $SLink = str_replace(".html", "", getURL("split", "", "track")); $SLink .= "/s{$Id}/"; } $Logs->Msg($SLink); } if (ValidArr($KeyArr) && count($KeyArr) > 1) { $AllowCSV = true; } if ($UseSSL) { $nsProduct->HL = $HL; } if ($csv) { $NamesArr['Keyword'] = $Lang['ColumnKey']; $NamesArr['Link'] = $Lang['ColumnLink']; if ($SplitId) { $NamesArr['Split'] = $Lang['ColumnSplit']; } if ($CampId) { $NamesArr['Camp'] = $Lang['ColumnCamp']; } send_file_to_client("links.csv", ExportCsv($CSVArr, $ExportSep, $NamesArr)); } }
///////// prepare any variables $PageTitle = $Lang['Title']; $nsLang->TplInc("inc/user_welcome"); $ProgPath[0]['Name'] = $Lang['Administr']; $ProgPath[0]['Url'] = getURL("admin", "", "admin"); $ProgPath[1]['Name'] = $PageTitle; $ProgPath[1]['Url'] = getURL("ip_ignore", "", "admin"); $MenuSection = "admin"; $NewIp = ValidVar($_GP['NewIp']); $NewIpDescr = ValidVar($_GP['NewIpDescr']); if ($NewIp && !ValidIP($NewIp) && !ValidIpTempl($NewIp)) { $Logs->Err($Lang['WrongIp']); $NewIp = false; } $RemoveIP = ValidVar($_GP['RemoveIP']); if (!ValidArr($RemoveIp)) { $RemoveIp = false; } $MyIP = $_SERVER['REMOTE_ADDR']; ///////////////////////////////////////////// ///////// call any process functions if (!$nsUser->DEMO) { if ($NewIp && ValidIp($NewIp)) { AddNewIp($NewIp, $NewIpDescr); } if ($NewIp && ValidIpTempl($NewIp)) { AddNewIpTempl($NewIp, $NewIpDescr); } if ($RemoveIP) { RemoveIp($RemoveIP); }
function UpdateAction($Arr, $Id = false) { global $Db, $Logs, $nsProduct, $HostsArr, $SiteId, $CpId, $Site, $Lang; $TPath = ""; $ActionPath = ""; $CodeAction = 0; $SiteHostId = 0; extract($Arr); if (!ValidVar($Name)) { $Logs->Err($Lang['MustFillName']); return; } if (!ValidVar($Templ) && ValidVar($RedirOnly) != 2) { $Logs->Err($Lang['WhatIsAction']); return; } if (ValidVar($RedirOnly) == 1 && !ValidVar($RedirUrl) && !ValidVar($Dynamic)) { $Logs->Err($Lang['RedirUrlRequired']); return; } if (!ValidVar($Active)) { $Active = 0; } if (ValidVar($RedirOnly) == 2) { $CodeAction = 1; } if (!$CodeAction) { $TmpArr = explode("{a}", $Templ); if (ValidArr($TmpArr) && count($TmpArr) > 2) { $Logs->Err($Lang['OnlyOneActionTarget']); return; } $NoPage = false; $TArr = @parse_url($Templ); if (!$TArr) { $Logs->Err($Lang['UnableParseTemplate']); return; } if (isset($TArr['path']) && !isset($TArr['host'])) { //$Path=ToLower($TArr['path']); for ($i = 0; $i < count($HostsArr); $i++) { if (strpos($Path, $HostsArr[$i]) !== false) { $Path = str_replace($HostsArr[$i], "", $Path); $TArr['host'] = $HostsArr[$i]; $TArr['path'] = $Path; break; } } } if (count($TArr) == 1 && substr(ValidVar($TArr['path']), 0, 1) != "/") { if (isset($TArr['path']) && !isset($TArr['query'])) { $TArr['query'] = $TArr['path']; } unset($TArr['path']); $NoPage = 1; } if (isset($TArr['fragment'])) { unset($TArr['fragment']); } if (!$NoPage) { if (!isset($TArr['host'])) { $TArr['host'] = $Site->HOST; } $TArr['host'] = ToLower($TArr['host']); //if (isset($TArr['path'])&&isset($TArr['query'])&&!isset($TArr['host'])) $TArr['host']=$Site->HOST; if (isset($TArr['path']) && substr($TArr['path'], 0, 1) != "/") { $TArr['path'] = "/" . $TArr['path']; } if (!ValidVar($TArr['host']) || !in_array($TArr['host'], $HostsArr)) { //$Logs->Err($Lang['InvalidDomain']);return; $Query = "INSERT INTO " . PFX . "_tracker_site_host (HOST, SITE_ID) VALUES (?, " . $Site->ID . ")"; $Db->Query($Query, $TArr['host']); $NewHostId = $Db->LastInsertId; $HostsArr[] = $TArr['host']; $Site->Hosts[$NewHostId] = $TArr['host']; } if (!ValidVar($TArr['path'])) { $TArr['path'] = "/"; } if (strpos($TArr['path'], "*") === false && strpos($TArr['path'], "{a}") === false && strpos($TArr['path'], ".") === false && $TArr['path'] != "/" && substr($TArr['path'], -1) != "/") { $TArr['path'] .= "/"; } extract($TArr); foreach ($Site->Hosts as $SHId => $SHost) { if ($host == $SHost) { $SiteHostId = $SHId; } } if (strpos($path, "*") === false && strpos($path, "{a}") === false) { $Query = "SELECT ID FROM " . PFX . "_tracker_site_page WHERE SITE_ID={$SiteId} AND PATH='{$path}'"; $PageId = $Db->ReturnValue($Query); if (!ValidId($PageId)) { $Query = "INSERT INTO " . PFX . "_tracker_site_page (SITE_ID, PATH) VALUES ({$SiteId}, '{$path}')"; $Db->Query($Query); $PageId = $Db->LastInsertId; } $ActionPath = $path; if (!ValidId($PageId)) { $Logs->Err($Lang['UnableCreatePage']); return; } } else { if (ValidVar($RedirOnly)) { $Logs->Err($Lang['NoRedirWithPageTemp']); return; } $PageId = 0; $TPath = $path; } if (ValidVar($query)) { $query = "?" . $query; } } else { $PageId = 0; $query = $Templ; if (strpos($query, "?") === false || strpos($query, "?") != 0) { $query = "?" . $query; } } if (ValidVar($RedirOnly) != 1 && ValidVar($RedirOnly) != 2) { $RedirOnly = 0; } if (!ValidVar($RedirUrl)) { $RedirUrl = ""; } if (!ValidVar($ItemVar)) { $ItemVar = ""; } $RedirUrl = urlencode($RedirUrl); $LogInfo = ""; } else { $PageId = 0; $query = ""; $RedirUrl = ""; $TPath = ""; $ItemVar = ""; $RedirOnly = 0; } if (!$Id) { $Query = "INSERT INTO " . PFX . "_tracker_visitor_action (SITE_ID, PAGE_ID, NAME, QUERY, PATH, REDIRECT_URL, REDIRECT_CATCH, ITEM_VAR, ACTIVE, CODE_ACTION, SITE_HOST_ID) VALUES ({$SiteId}, {$PageId}, '{$Name}', '{$query}', '{$TPath}', '{$RedirUrl}', '{$RedirOnly}', '{$ItemVar}', '{$Active}', '{$CodeAction}', '{$SiteHostId}')"; $Db->Query($Query); $EditId = $Db->LastInsertId; $LogInfo = "&RCrt=1"; } else { $Query = "UPDATE " . PFX . "_tracker_visitor_action SET PAGE_ID={$PageId}, NAME='{$Name}', QUERY='{$query}', PATH='{$TPath}', REDIRECT_URL='{$RedirUrl}', REDIRECT_CATCH='{$RedirOnly}', ITEM_VAR='{$ItemVar}', ACTIVE='{$Active}', CODE_ACTION='{$CodeAction}', SITE_HOST_ID='{$SiteHostId}' WHERE ID = {$Id} AND SITE_ID={$SiteId}"; $Db->Query($Query); $EditId = $Id; $LogInfo = "&RUpd=1"; } $WrRes = true; $WrErr = false; if (!$CodeAction) { $UseStore = $Db->ReturnValue("SELECT USE_STORE FROM " . PFX . "_tracker_config WHERE COMPANY_ID=0"); if ($RedirOnly && $UseStore) { $ActionArr['ID'] = $EditId; $ActionArr['PAGE_ID'] = $PageId; $ActionArr['SITE_ID'] = $SiteId; $ActionArr['REDIRECT_URL'] = $RedirUrl; $ActionArr['PATH'] = $ActionPath; $WrRes = false; $WrRes = SaveActionToFile($ActionArr, "redir_action.nodb"); //if (!$WrRes) $WrErr="&WrErr=1"; } } $nsProduct->Redir("actions", "CpId={$CpId}&SiteId={$SiteId}&EditId={$EditId}" . $WrErr . $LogInfo); }
function ClearStat($EndTime = false, $CpId = false, $SiteId = false) { global $Logs, $Db, $Lang; if ($SiteId) { $Query = "SELECT MIN(S_LOG.STAMP) FROM " . PFX . "_tracker_" . $CpId . "_stat_log S_LOG WHERE S_LOG.SITE_ID={$SiteId}"; $StartTime = $Db->ReturnValue($Query); DeleteSiteStat($CpId, $SiteId, $StartTime, $EndTime); } if ($CpId && !$SiteId) { $Query = "SELECT MIN(S_LOG.STAMP) FROM " . PFX . "_tracker_" . $CpId . "_stat_log S_LOG INNER JOIN " . PFX . "_tracker_site S ON S.ID=S_LOG.SITE_ID WHERE S.COMPANY_ID={$CpId}"; $StartTime = $Db->ReturnValue($Query); global $ClientsArr; if (ValidArr($ClientsArr[$CpId]['Sites']) && count($ClientsArr[$CpId]['Sites']) > 0) { foreach ($ClientsArr[$CpId]['Sites'] as $SiteId => $Name) { DeleteSiteStat($CpId, $SiteId, $StartTime, $EndTime); } } } if (!$CpId && !$SiteId) { $Query = "SELECT ID, COMPANY_ID FROM " . PFX . "_tracker_site"; $Sql = new Query($Query); while ($Row = $Sql->Row()) { $Query = "SELECT MIN(S_LOG.STAMP) FROM " . PFX . "_tracker_" . $Row->COMPANY_ID . "_stat_log S_LOG"; $StartTime = $Db->ReturnValue($Query); DeleteSiteStat($Row->COMPANY_ID, $Row->ID, $StartTime, $EndTime); } } $Logs->Msg($Lang['StatDeleted']); }
$PaidReport->ShowVisitors = true; $PaidReport->CpId = $CurrentCompany->ID; if ($SitesCnt == 0) { $PaidReport->SiteId = -1; } $PaidReport->ViewDate = $Today; $PaidReport->SelectArr[] = "TS.ID"; $PaidReport->SelectArr[] = "TS.HOST AS NAME"; $PaidReport->JoinArr[] = "INNER JOIN " . PFX . "_tracker_site TS ON TS.ID=S_LOG.SITE_ID"; $PaidReport->GroupArr[] = "TS.ID"; $PaidReport->GrpFld = "ID"; $PaidReport->GrpName = "NAME"; $PaidReport->OrderArr[] = "TS.HOST ASC"; $PaidReport->Calculate(); } if (ValidArr($NaturalReport->StatArr) && count($NaturalReport->StatArr) > 0 && !isset($NaturalReport->StatArr[0])) { if ($nsUser->Columns->HITS) { foreach ($NaturalReport->StatArr as $SiteId => $Row) { if (ValidVar($PaidReport->CampStat[$SiteId])) { $Row['CntCamp'] = ValidVar($PaidReport->CampStat[$SiteId]['CntClick']); $Row['UniCamp'] = ValidVar($PaidReport->CampStat[$SiteId]['UniClick']); $Row['Camp'] = ValidVar($PaidReport->CampStat[$SiteId]['Camp']); } else { $Row['CntCamp'] = 0; $Row['UniCamp'] = 0; $Row['Camp'] = 0; } if (ValidVar($OnlineArr[$SiteId])) { $Row['Online'] = $OnlineArr[$SiteId]; } else { $Row['Online'] = "0";