예제 #1
0
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;
}
예제 #2
0
<?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);
예제 #3
0
				</select>
				&nbsp;
			<?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>&nbsp;<select name=SelectCpId>
	<option></option>
	<?php 
    for ($i = 0; $i < Count($CompArr); $i++) {
        ?>
	<option value=<?php 
        echo $CompArr[$i]->ID;
        ?>
 <?php 
예제 #5
0
<?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");
예제 #6
0
    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()) {
예제 #7
0
 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;
 }
예제 #8
0
    $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'];
예제 #9
0
 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;
     }
 }
예제 #10
0
$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}'";
예제 #11
0
<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'];
예제 #12
0
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) {
예제 #13
0
    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 = "";
예제 #14
0
	</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'];
    }
예제 #16
0
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;
}
예제 #17
0
<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>
예제 #18
0
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}");
    }
}
예제 #19
0
$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");
예제 #20
0
    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");
예제 #21
0
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>
예제 #23
0
<?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;">&nbsp;
	<?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="">
예제 #24
0
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;
        }
    }
}
예제 #25
0
<?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>
예제 #26
0
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));
    }
}
예제 #27
0
///////// 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);
    }
예제 #28
0
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);
}
예제 #29
0
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']);
}
예제 #30
0
     $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";