예제 #1
0
function table()
{
    $page = CurrentPageName();
    $tpl = new templates();
    $t = time();
    $q = new mysql_meta();
    if (!$q->TABLE_EXISTS("metaorders")) {
        $q->CheckTables();
    }
    if (!$q->TABLE_EXISTS("metaorders")) {
        echo FATAL_ERROR_SHOW_128("Unable to stat metaorders table!");
        die;
    }
    $disks = $tpl->javascript_parse_text("{disks}");
    $ipaddr = $tpl->javascript_parse_text("{ipaddr}");
    $memory = $tpl->javascript_parse_text("{memory}");
    $load = $tpl->javascript_parse_text("{load}");
    $package = $tpl->javascript_parse_text("{package}");
    $servername = $tpl->javascript_parse_text("{servername2}");
    $status = $tpl->javascript_parse_text("{status}");
    $delete = "{display: 'delete', name : 'icon3', width : 35, sortable : false, align: 'left'},";
    $upload = $tpl->javascript_parse_text("{upload}");
    $title = $tpl->javascript_parse_text("{packages}");
    if ($_GET["uuid"] != null) {
        $hostname = $q->uuid_to_host($_GET["uuid"]);
        $title = "Meta Client:{$hostname} - {$package}";
    }
    if ($_GET["gpid"] > 0) {
        $hostname = $q->gpid_to_name($_GET["gpid"]);
        $title = "Meta Clients:{$hostname} - {$package}";
    }
    $buttons = "\tbuttons : [\n\t{name: '{$upload}', bclass: 'export', onpress : Upload{$t}},\n\t],";
    $html = "\n\t<table class='ARTICA_META_PACKAGE_TABLE' style='display: none' id='ARTICA_META_PACKAGE_TABLE'></table>\n\t<script>\n\t\$(document).ready(function(){\n\t\$('#ARTICA_META_PACKAGE_TABLE').flexigrid({\n\turl: '{$page}?search=yes&uuid={$_GET["uuid"]}&gpid={$_GET["gpid"]}&KEY=RELEASES',\n\tdataType: 'json',\n\tcolModel : [\n\t\t{display: '{$package}', name : 'version', width : 609, sortable : false, align: 'left'},\n\t\t{display: '&nbsp;', name : 'update', width : 50, sortable : false, align: 'center'},\n\t\t{display: '&nbsp;', name : 'delete', width : 50, sortable : false, align: 'center'},\n\t\n\t],\n\t{$buttons}\n\tsearchitems : [\n\t{display: '{$package}', name : 'version'},\n\t],\n\tsortname: 'hostname',\n\tsortorder: 'asc',\n\tusepager: true,\n\ttitle: '<strong style=font-size:22px>{$title}</strong>',\n\tuseRp: true,\n\trpOptions: [10, 20, 30, 50,100,200],\n\trp:50,\n\tshowTableToggleBtn: false,\n\twidth: '99%',\n\theight: 400,\n\tsingleSelect: true\n\t\n\t});\n\t});\n\t\nfunction Upload{$t}(){\n\tLoadjs('artica-meta.packages.upload.php');\n} \nfunction Nightly{$t}(){\n\t\$('#ARTICA_META_UPDATEART_TABLE').flexOptions({url: '{$page}?search=yes&uuid={$_GET["uuid"]}&KEY=NIGHTLY'}).flexReload();\n} \t\n</script>";
    echo $html;
}
예제 #2
0
function search()
{
    $tpl = new templates();
    $MyPage = CurrentPageName();
    $q = new mysql_meta();
    $search = '%';
    $table = "(SELECT * FROM system_schedules WHERE `uuid`='{$_GET["uuid"]}') as t";
    $page = 1;
    $ORDER = "ORDER BY ID DESC";
    $sock = new sockets();
    $DisableSquidDefaultSchedule = $sock->GET_INFO("DisableSquidDefaultSchedule");
    if (!is_numeric($DisableSquidDefaultSchedule)) {
        $DisableSquidDefaultSchedule = 0;
    }
    $schedules = new system_tasks();
    $ForceTaskType = $_GET["ForceTaskType"];
    if (!is_numeric($ForceTaskType)) {
        $ForceTaskType = 0;
    }
    $total = 0;
    $FORCE = 1;
    if ($ForceTaskType > 0) {
        $FORCE = "TaskType={$ForceTaskType}";
    }
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $searchstring = string_to_flexquery();
    $sql = "SELECT COUNT(*) as TCOUNT FROM {$table} WHERE {$FORCE} {$searchstring}";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    $total = $ligne["TCOUNT"];
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    $pageStart = ($page - 1) * $rp;
    if (is_numeric($rp)) {
        $limitSql = "LIMIT {$pageStart}, {$rp}";
    }
    $sql = "SELECT *  FROM {$table} WHERE {$FORCE} {$searchstring} {$ORDER} {$limitSql}";
    writelogs($sql, __FUNCTION__, __FILE__, __LINE__);
    $results = $q->QUERY_SQL($sql);
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    if (!$q->ok) {
        json_error_show("no schedule");
    }
    $q2 = new mysql();
    if (mysql_num_rows($results) == 0) {
        json_error_show("no schedule", 1);
    }
    while ($ligne = mysql_fetch_assoc($results)) {
        $color = "black";
        $events = "&nbsp;";
        $md5 = md5("SquidTask{$ligne['ID']}");
        $TaskType = $ligne["TaskType"];
        $jstaskexplain = $tpl->javascript_parse_text($schedules->tasks_array[$ligne["TaskType"]]);
        $ligne["TaskType"] = $tpl->_ENGINE_parse_body($schedules->tasks_array[$ligne["TaskType"]]);
        $TimeDescription = $ligne["TimeDescription"];
        $enable = Field_checkbox($md5, 1, $ligne["enabled"], "SystemTaskEnable('{$md5}',{$ligne['ID']})");
        $delete = imgtootltip("delete-24.png", "{delete} {$ligne['ID']}", "SquidTaskDelete('{$ligne['ID']}')");
        $run = $tpl->_ENGINE_parse_body(imgtootltip("24-run.png", "{run} {$ligne['ID']}", "SystemTaskRun('{$ligne['ID']}','{$jstaskexplain}')"));
        if ($ligne["enabled"] == 0) {
            $color = "#A0A0A0";
        }
        $tablename = "Taskev{$ligne['ID']}";
        if (!$q->TABLE_EXISTS($tablename, "artica_events")) {
            $events = imgsimple("delete_disabled.png");
        } else {
            $evs = $q2->COUNT_ROWS($tablename, "artica_events");
            if ($evs > 0) {
                $events = imgsimple("events-24.png", "{events} {$ligne['ID']}", "Loadjs('squid.update.events.php?taskid={$ligne['ID']}&table={$tablename}')");
            }
        }
        $explainTXT = $tpl->_ENGINE_parse_body($schedules->tasks_explain_array[$TaskType]);
        $TimeText = $tpl->_ENGINE_parse_body($schedules->PatternToHuman($ligne["TimeText"]));
        $TimeText = str_replace("<br>", "", $TimeText);
        if (preg_match("#(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)#", $TimeDescription, $re)) {
            $TimeDescription = $TimeText;
            $TimeText = null;
        }
        $span = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('{$MyPage}?AddNewSchedule-js=yes&ID={$ligne['ID']}');\"\n\t\t style='font-size:16px;font-weight:bold;color:{$color};text-decoration:underline'>";
        $ligne["TimeDescription"] = utf8_encode($ligne["TimeDescription"]);
        $ligne["TaskType"] = utf8_encode($ligne["TaskType"]);
        //rowSquidTask
        $data['rows'][] = array('id' => "SquidTask" . $ligne['ID'], 'cell' => array("{$span}{$ligne['ID']}</a>", "{$span}{$ligne["TaskType"]}</a>", "{$span}{$TimeDescription}</a>\n\t\t<div style='font-size:11px'><i>{$explainTXT}</i></div>", "<div style='margin-top:5px'>{$enable}</div>", $delete));
    }
    echo json_encode($data);
}
예제 #3
0
function search()
{
    $MyPage = CurrentPageName();
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $q = new mysql_meta();
    $table = "metagroups";
    if (!$q->TABLE_EXISTS("metagroups_link")) {
        $q->CheckTables();
    }
    $table = "(SELECT metahosts.hostname,metahosts.hostag,\n\t\t\tmetahosts.uuid,metagroups_link.zmd5 \n\t\t\tFROM metahosts,metagroups_link WHERE\n\t\t\tmetagroups_link.uuid=metahosts.uuid\n\t\t\tAND metagroups_link.gpid={$_GET["ID"]}) as t";
    $searchstring = string_to_flexquery();
    $page = 1;
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY `{$_POST["sortname"]}` {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $sql = "SELECT COUNT( * ) AS tcount FROM {$table} WHERE 1 {$searchstring}";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    if (!$q->ok) {
        json_error_show("Mysql Error [" . __LINE__ . "]: <br>{$q->mysql_error}.<br>{$sql}", 1);
    }
    $total = $ligne["tcount"];
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} {$ORDER} {$limitSql} ";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        if ($q->mysql_error != null) {
            json_error_show(date("H:i:s") . "<br>SORT:{$_POST["sortname"]}:<br>Mysql Error [L." . __LINE__ . "]: {$q->mysql_error}<br>{$sql}", 1);
        }
    }
    if (mysql_num_rows($results) == 0) {
        json_error_show("no data", 1);
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    $fontsize = "22";
    $style = " style='font-size:{$fontsize}px'";
    $styleHref = " style='font-size:{$fontsize}px;text-decoration:underline'";
    $free_text = $tpl->javascript_parse_text("{free}");
    $computers = $tpl->javascript_parse_text("{computers}");
    $overloaded_text = $tpl->javascript_parse_text("{overloaded}");
    $orders_text = $tpl->javascript_parse_text("{orders}");
    $directories_monitor = $tpl->javascript_parse_text("{directories_monitor}");
    while ($ligne = mysql_fetch_assoc($results)) {
        $LOGSWHY = array();
        $overloaded = null;
        $loadcolor = "black";
        $StatHourColor = "black";
        $ColorTime = "black";
        $uuid = $ligne["uuid"];
        $hostname = $ligne["hostname"];
        $hostag = utf8_encode($ligne["hostag"]);
        $zmd5 = $ligne["zmd5"];
        $icon_warning_32 = "warning32.png";
        $icon_red_32 = "32-red.png";
        $icon = "ok-32.png";
        $urijs = "Loadjs('artica-meta.menus.php?js=yes&uuid={$uuid}');";
        $link = "<a href=\"javascript:blur();\" OnClick=\"javascript:{$urijs}\" {$styleHref}>";
        $delete = imgtootltip("delete-32.png", null, "Loadjs('{$MyPage}?unlink-js={$zmd5}')");
        $cell = array();
        $cell[] = "<span {$style}>{$link}{$hostname}</a></span><br>{$uuid}";
        $cell[] = "<span {$style}>{$hostag}</a></span>";
        $cell[] = "{$delete}";
        $data['rows'][] = array('id' => $ligne['uuid'], 'cell' => $cell);
    }
    echo json_encode($data);
}
예제 #4
0
function table()
{
    $page = CurrentPageName();
    $tpl = new templates();
    $t = time();
    $disks = $tpl->javascript_parse_text("{disks}");
    $ipaddr = $tpl->javascript_parse_text("{ipaddr}");
    $memory = $tpl->javascript_parse_text("{memory}");
    $load = $tpl->javascript_parse_text("{load}");
    $version = $tpl->javascript_parse_text("{version}");
    $servername = $tpl->javascript_parse_text("{servername2}");
    $status = $tpl->javascript_parse_text("{status}");
    $events = $tpl->javascript_parse_text("{events}");
    $global_whitelist = $tpl->javascript_parse_text("{whitelist} (Meta)");
    $policies = $tpl->javascript_parse_text("{policies}");
    $packages = $tpl->javascript_parse_text("{packages}");
    $switch = $tpl->javascript_parse_text("{switch}");
    $new_server = $tpl->javascript_parse_text("{new_server}");
    $software = $tpl->javascript_parse_text("{software}");
    $tablewith = 691;
    $compilesize = 35;
    $size_elemnts = 50;
    $size_size = 58;
    $delete = "{display: 'delete', name : 'icon3', width : 35, sortable : false, align: 'left'},";
    $categorysize = 387;
    $tag = $tpl->javascript_parse_text("{tag}");
    $q = new mysql_meta();
    if (!$q->TABLE_EXISTS("metahosts")) {
        $q->CheckTables();
    }
    if (!$q->TABLE_EXISTS("metahosts")) {
        echo FATAL_ERROR_SHOW_128("MySQL Error, table metahosts does not exists...");
        return;
    }
    $sql = "SELECT version FROM metahosts GROUP BY version ORDER BY version";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        if (stripos($q->mysql_error, "crashed and should be repaired") > 0) {
            $button = "<center style='margin:20px'>" . button("{repair_table}", "Loadjs('mysql.repair.progress.php?table=metahosts&database=articameta')", 40) . "</center>";
        }
        echo FATAL_ERROR_SHOW_128(__FUNCTION__ . "/" . __LINE__ . "<br>" . $q->mysql_error . $button);
        return;
    }
    $ARTICAVER = trim(@file_get_contents("VERSION"));
    while ($ligne = mysql_fetch_assoc($results)) {
        $ligne["version"] = trim($ligne["version"]);
        if ($ligne["version"] == null) {
            continue;
        }
        $VVERS[] = "\t{display: '{$version}: {$ligne["version"]}', name : '{$ligne["version"]}'}";
    }
    $proxy = 0;
    $sql = "SELECT squidver,PROXY FROM metahosts GROUP BY squidver,PROXY ORDER BY squidver";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        if (stripos($q->mysql_error, "crashed and should be repaired") > 0) {
            $button = "<center style='margin:20px'>" . button("{repair_table}", "Loadjs('mysql.repair.progress.php?table=metahosts&database=articameta')", 40) . "</center>";
        }
        echo FATAL_ERROR_SHOW_128(__FUNCTION__ . "/" . __LINE__ . "<br>" . $q->mysql_error . $button);
        return;
    }
    while ($ligne = mysql_fetch_assoc($results)) {
        if ($ligne["PROXY"] == 0) {
            continue;
        }
        $ligne["squidver"] = trim($ligne["squidver"]);
        $proxy++;
        $VVERS[] = "\t{display: 'Proxy {$version}: {$ligne["squidver"]}', name : 'prxy{$ligne["squidver"]}'}";
    }
    $clientsNumber = $q->COUNT_ROWS("metahosts");
    $policies_button = "{name: '<strong style=font-size:18px>{$policies}</strong>', bclass: 'Settings', onpress : Policies{$t}},";
    if ($proxy > 0) {
        $proxy_whitelist = "{name: '<strong style=font-size:18px>{$global_whitelist}</strong>', bclass: 'export', onpress : MetaProxyWhiteList},";
    }
    $buttons = "\tbuttons : [\n\t{name: '<strong style=font-size:18px>{$new_server}</strong>', bclass: 'add', onpress : MetaAddServ{$t}},\n\t{name: '<strong style=font-size:18px>{$events}</strong>', bclass: 'Search', onpress : MetaEvents},\n\t\n\t{name: '<strong style=font-size:18px>{$packages}</strong>', bclass: 'Search', onpress : Packages{$t}},{$policies_button}\n\t{name: '<strong style=font-size:18px>{$switch}</strong>', bclass: 'Search', onpress : Switch{$t}},\n\t\n\t{$proxy_whitelist}\n\t\n\t\n\t],";
    $t = time();
    $html = "\n\t<input type='hidden' id='ARTICA_META_MAIN_TABLE_SWITCH' value=0>\n<table class='ARTICA_META_MAIN_TABLE' style='display: none' id='ARTICA_META_MAIN_TABLE' style='width:1200px'></table>\n<script>\n\$(document).ready(function(){\n\t\$('#ARTICA_META_MAIN_TABLE').flexigrid({\n\turl: '{$page}?search=yes',\n\tdataType: 'json',\n\tcolModel : [\n\t{display: '<span style=font-size:18px>status</span>', name : 'icon1', width : 50, sortable : false, align: 'center'},\n\t{display: '<span style=font-size:18px>{$servername}</span>', name : 'hostname', width : 250, sortable : true, align: 'left'},\n\t{display: '<span style=font-size:18px>{$load}</span>', name : 'load', width : 206, sortable : true, align: 'center'},\n\t{display: '<span style=font-size:18px>{$memory}</span>', name : 'mem_perc', width : 122, sortable : true, align: 'center'},\n\t{display: '<span style=font-size:18px>{$disks}</span>', name : 'xdisks', width : 375, sortable : false, align: 'left'},\n\t{display: '<span style=font-size:18px>{$ipaddr}</span>', name : 'public_ip', width : 150, sortable : true, align: 'left'},\n\t{display: '<span style=font-size:18px>{$software}</span>', name : 'squidver', width : 89, sortable : true, align: 'right'},\n\t{display: '<span style=font-size:18px>{$version}</span>', name : 'version', width : 97, sortable : true, align: 'right'},\n\t\n\t],\n{$buttons}\n\tsearchitems : [\n\t{display: '{$servername}', name : 'hostname'},\n\t{display: '{$tag}', name : 'hostag'},\n\t{display: '{$ipaddr}', name : 'public_ip'},\n\t{display: '{$version}', name : 'version'},\n" . @implode($VVERS, ",\n") . "\n\t],\n\tsortname: 'hostname',\n\tsortorder: 'asc',\n\tusepager: true,\n\ttitle: '<strong style=font-size:30px>Meta Server v{$ARTICAVER} - {$clientsNumber} Client(s) </strong>',\n\tuseRp: true,\n\trpOptions: [10, 20, 30, 50,100,200],\n\trp:50,\n\tshowTableToggleBtn: false,\n\twidth: '99%',\n\theight: 800,\n\tsingleSelect: true\n\t\n\t});\n});\n\t\nfunction Profiles{$t}(){\n\tLoadjs('artica-meta.profiles.php');\n}\n\t\nfunction  MetaAddServ{$t}(){\n\tLoadjs('artica-meta.NewServ.php');\n}\t\n\t\nfunction Switch{$t}(){\n\tvar ARTICA_META_MAIN_TABLE_SWITCH=document.getElementById('ARTICA_META_MAIN_TABLE_SWITCH').value;\n\tif(ARTICA_META_MAIN_TABLE_SWITCH==0){ARTICA_META_MAIN_TABLE_SWITCH=1;}else{ARTICA_META_MAIN_TABLE_SWITCH=0;}\n\tdocument.getElementById('ARTICA_META_MAIN_TABLE_SWITCH').value=ARTICA_META_MAIN_TABLE_SWITCH;\n\t\$('#ARTICA_META_MAIN_TABLE').flexOptions({url: '{$page}?search=yes&switch='+ARTICA_META_MAIN_TABLE_SWITCH}).flexReload();\n}\n\t\n\t\nfunction MetaEvents(){\n\tLoadjs('artica-meta.events.php?js=yes&t={$t}');\n}\n\t\nfunction MetaProxyWhiteList(){\n\tLoadjs('squid.whitelist-meta.php');\n}\n\t\nfunction Policies{$t}(){\n\tLoadjs('artica-meta.policies.php');\n}\n\t\nfunction SwitchToArtica(){\n\t\$('#dansguardian2-category-{$t}').flexOptions({url: '{$page}?category-search=yes&minisize={$_GET["minisize"]}&t={$t}&artica=1'}).flexReload();\n}\n\t\nfunction SaveAllToDisk(){\n\tLoadjs('{$page}?compile-all-dbs-js=yes')\n}\n\nfunction LoadCategoriesSize(){\n\tLoadjs('dansguardian2.compilesize.php')\n}\n\t\nfunction CategoryDansSearchCheck(e){\n\tif(checkEnter(e)){CategoryDansSearch();}\n}\n\t\nfunction CategoryDansSearch(){\n\tvar se=escape(document.getElementById('category-dnas-search').value);\n\tLoadAjax('dansguardian2-category-list','{$page}?category-search='+se,false);\n}\n\t\n\tfunction DansGuardianCompileDB(category){\n\tLoadjs('ufdbguard.compile.category.php?category='+category);\n\t}\n\t\n\tfunction CheckStatsApplianceC(){\n\tLoadAjax('CheckStatsAppliance','{$page}?CheckStatsAppliance=yes',false);\n\t}\n\t\n\tvar X_PurgeCategoriesDatabase= function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>2){alert(results);}\n\tRefreshAllTabs();\n\t}\n\t\n\tfunction PurgeCategoriesDatabase(){\n\tif(confirm('{$purge_catagories_database_explain}')){\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('PurgeCategoriesDatabase','yes');\n\tAnimateDiv('dansguardian2-category-list');\n\tXHR.sendAndLoad('{$page}', 'POST',X_PurgeCategoriesDatabase);\n\t}\n\t\n\t}\n\t\n\tvar X_TableCategoryPurge= function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>2){alert(results);}\n\t\$('#dansguardian2-category-{$t}').flexReload();\n\t}\n\t\n\tfunction TableCategoryPurge(tablename){\n\tif(confirm('{$purge_catagories_table_explain}')){\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('PurgeCategoryTable',tablename);\n\tXHR.sendAndLoad('dansguardian2.databases.compiled.php', 'POST',X_TableCategoryPurge);\n\t}\n\t}\n\t\n\tfunction Packages{$t}(){\n\t\tLoadjs('artica-meta.packages.php');\n\t}\n\t\n\t\n\t\n\t</script>\n\t\n\t";
    echo $tpl->_ENGINE_parse_body($html);
}
예제 #5
0
function content_search()
{
    $MyPage = CurrentPageName();
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $q = new mysql_meta();
    $table = "snapshots";
    $database = null;
    $ID = $_GET["ID"];
    if (!$q->TABLE_EXISTS($table, $database)) {
        json_error_show("no data - no table");
    }
    $searchstring = string_to_flexquery();
    $page = 1;
    $q = new mysql_meta();
    $sql = "SELECT `content` FROM {$table} WHERE ID='{$ID}'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database));
    $MAIN = unserialize($ligne["content"]);
    $size_content = strlen($ligne["content"]);
    if (!is_array($MAIN)) {
        json_error_show("no data ID:{$ID} Size:{$size_content}");
    }
    $searchstring = string_to_flexregex();
    $total = count($MAIN);
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    $fontsize = "22";
    $style = " style='font-size:{$fontsize}px'";
    $styleHref = " style='font-size:{$fontsize}px;text-decoration:underline'";
    $c = 0;
    while (list($filename, $size) = each($MAIN)) {
        $sizeText = "{$size} Bytes";
        if ($size > 1024) {
            $sizeText = FormatBytes($size / 1024);
        }
        if ($searchstring != null) {
            if (!preg_match("#{$searchstring}#i", $filename . "{$sizeText}")) {
                continue;
            }
        }
        $c++;
        $key = md5($filename);
        $size = FormatBytes($size / 1024);
        $cell = array();
        $cell[] = "<span {$style}>{$filename}</a></span>";
        $cell[] = "<span {$style}>{$sizeText}</a></span>";
        $data['rows'][] = array('id' => $key, 'cell' => $cell);
    }
    $data['total'] = $c;
    echo json_encode($data);
}
function table_list()
{
    $tpl = new templates();
    $MyPage = CurrentPageName();
    $q = new mysql_meta();
    $fontsize = "16px";
    $cs = 0;
    $page = 1;
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $_POST["query"] = trim($_POST["query"]);
    $FORCE = "uuid='{$_GET["uuid"]}'";
    $search = '%';
    $table = "philesight";
    if ($_GET["dev"] != null) {
        $FORCE = " ((partition='{$_GET["dev"]}') OR (hd='{$_GET["dev"]}')) AND (uuid='{$_GET["uuid"]}')";
    }
    $page = 1;
    if (!$q->TABLE_EXISTS($table, "artica_backup")) {
        $q->check_storage_table();
    }
    if (!$q->TABLE_EXISTS($table, "artica_backup")) {
        json_error_show("{$table} no such table", 1);
    }
    $total = 0;
    if ($q->COUNT_ROWS($table, "artica_backup") == 0) {
        json_error_show("no data", 1);
    }
    $searchstring = string_to_flexquery();
    if ($searchstring != null) {
        $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE}  {$searchstring}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
        if (!$q->ok) {
            if (preg_match("#marked as crashed#", $q->mysql_error)) {
                $q->QUERY_SQL("DROP TABLE `{$table}`", "artica_events");
            }
        }
        $total = $ligne["TCOUNT"];
    } else {
        $total = $q->COUNT_ROWS($table, "artica_backup");
    }
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    $sql = "SELECT *  FROM `{$table}` WHERE {$FORCE} {$searchstring} {$ORDER} {$limitSql}";
    $results = $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        if (preg_match("#marked as crashed#", $q->mysql_error)) {
            $q->QUERY_SQL("DROP TABLE `{$table}`", "artica_events");
        }
    }
    if (!$q->ok) {
        json_error_show($q->mysql_error . "<br>{$sql}", 0);
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    $CurrentPage = CurrentPageName();
    if (mysql_num_rows($results) == 0) {
        json_error_show("no data");
    }
    $uuid = urlencode($_GET["uuid"]);
    while ($ligne = mysql_fetch_array($results, MYSQL_ASSOC)) {
        $color = "black";
        $icon = "&nbsp;";
        $directory = $ligne["directory"];
        $md5 = md5($directory);
        $partition = $ligne["partition"];
        $hd = $ligne["hd"];
        $maxtime = $ligne["maxtime"];
        $lastscan = $ligne["lastscan"];
        $USED = $ligne["USED"];
        $md5 = $ligne["zmd5"];
        $FREEMB = $ligne["FREEMB"];
        if ($lastscan > 0) {
            $lastscan = date("Y-m-d H:i:s", $lastscan);
        }
        $FREEMB = FormatBytes($FREEMB * 1024);
        $directoryenc = urlencode($directory);
        $jslink = "<a href=\"javascript:blur();\"\n\tOnClick=\"javascript:Loadjs('{$MyPage}?directory-js=yes&directory={$directoryenc}');\"\n\tstyle='font-size:{$fontsize};text-decoration:underline;color:{$color}'>";
        $distance = $tpl->_ENGINE_parse_body(distanceOfTimeInWords($ligne["lastscan"], time(), true));
        $icon = imgsimple("graph-32.png", null, "Loadjs('{$MyPage}?graph-js={$directoryenc}&uuid={$_GET["uuid"]}&md5={$md5}')");
        $delete = imgsimple("delete-32.png", null, "Loadjs('{$MyPage}?delete-js={$directoryenc}&uuid={$_GET["uuid"]}')");
        $data['rows'][] = array('id' => md5(serialize($ligne)), 'cell' => array("<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$lastscan}</a></span><br><i>{$distance}</i>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$directory}</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$partition}</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$hd}</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$USED}%</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$FREEMB}</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$icon}</a></span>"));
    }
    echo json_encode($data);
}
function search()
{
    $MyPage = CurrentPageName();
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $q = new mysql_meta();
    $table = "snapshots";
    $database = null;
    $uuid = $_GET["uuid"];
    $uuidenc = urlencode($uuid);
    $gpid = intval($_GET["gpid"]);
    if (!$q->TABLE_EXISTS($table, $database)) {
        json_error_show("no data - no table");
    }
    $searchstring = string_to_flexquery();
    $page = 1;
    $table = "(SELECT \n\t\tsnapshots.zmd5,snapshots.zDate,\n\t\tsnapshots.size,\n\t\tmetahosts.hostname,\n\t\tmetahosts.hostag\n\t\tFROM snapshots,metahosts WHERE metahosts.uuid=snapshots.uuid) as t";
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY `{$_POST["sortname"]}` {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $sql = "SELECT COUNT( * ) AS tcount FROM {$table} WHERE 1 {$searchstring}";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database));
    if (!$q->ok) {
        json_error_show("Mysql Error [" . __LINE__ . "]: <br>{$q->mysql_error}.<br>{$sql}", 1);
    }
    $total = $ligne["tcount"];
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} {$ORDER} {$limitSql} ";
    $results = $q->QUERY_SQL($sql, $database);
    if (!$q->ok) {
        if ($q->mysql_error != null) {
            json_error_show(date("H:i:s") . "<br>SORT:{$_POST["sortname"]}:<br>Mysql Error [L." . __LINE__ . "]: {$q->mysql_error}<br>{$sql}", 1);
        }
    }
    if (mysql_num_rows($results) == 0) {
        json_error_show("no data", 0);
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    $fontsize = "14";
    $style = " style='font-size:{$fontsize}px'";
    $styleHref = " style='font-size:{$fontsize}px;text-decoration:underline'";
    $free_text = $tpl->javascript_parse_text("{free}");
    $computers = $tpl->javascript_parse_text("{computers}");
    $overloaded_text = $tpl->javascript_parse_text("{overloaded}");
    $orders_text = $tpl->javascript_parse_text("{orders}");
    $directories_monitor = $tpl->javascript_parse_text("{directories_monitor}");
    while ($ligne = mysql_fetch_assoc($results)) {
        $LOGSWHY = array();
        $overloaded = null;
        $loadcolor = "black";
        $StatHourColor = "black";
        $ColorTime = "black";
        $hostname = $ligne["hostname"];
        $hostag = utf8_encode($ligne["hostag"]);
        $zmd5 = $ligne["zmd5"];
        $icon_warning_32 = "warning32.png";
        $icon_red_32 = "32-red.png";
        $icon = "ok-32.png";
        $xdate = $ligne["zDate"];
        $xtime = strtotime($xdate);
        $date = $tpl->time_to_date($xtime, true);
        $size = FormatBytes($ligne["size"] / 1024);
        $urijs = "Loadjs('{$MyPage}?content-js=yes&ID={$ligne["ID"]}');";
        $link = "<a href=\"javascript:blur();\" OnClick=\"javascript:{$urijs}\" {$styleHref}>";
        $delete = imgtootltip("delete-32.png", null, "Loadjs('{$MyPage}?unlink-js={$ligne["zmd5"]}')");
        $restore = imgtootltip("32-import.png", null, "Loadjs('artica-meta.menus.php?snapshot-restore-js=yes&zmd5={$ligne["zmd5"]}&uuid={$uuidenc}&gpid={$gpid}')");
        if ($uuid == null) {
            if ($gpid == 0) {
                $restore = "&nbsp;-&nbsp;";
            }
        }
        $cell = array();
        $cell[] = "<span {$style}>{$xdate}<br><i style='font-size:12px'>{$date}</i></a></span>";
        $cell[] = "<span {$style}>{$hostname}<br><i style='font-size:12px'>{$hostag}</i></a></span>";
        $cell[] = "<span {$style}>{$size}</a></span>";
        $cell[] = $restore;
        $cell[] = "{$delete}";
        $data['rows'][] = array('id' => $ligne['uuid'], 'cell' => $cell);
    }
    echo json_encode($data);
}
예제 #8
0
function ident()
{
    if (isset($_SERVER["REMOTE_ADDR"])) {
        $IPADDR = $_SERVER["REMOTE_ADDR"];
    }
    if (isset($_SERVER["HTTP_X_REAL_IP"])) {
        $IPADDR = $_SERVER["HTTP_X_REAL_IP"];
    }
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
        $IPADDR = $_SERVER["HTTP_X_FORWARDED_FOR"];
    }
    $GLOBALS["CLIENT_META_IP"] = $IPADDR;
    $sock = new sockets();
    $ARRAY = unserialize(base64_decode($_GET["ident"]));
    $EnableArticaMetaServer = intval($sock->GET_INFO("EnableArticaMetaServer"));
    $ArticaMetaServerUsername = trim(strtolower($sock->GET_INFO("ArticaMetaServerUsername")));
    $ArticaMetaServerPassword = $sock->GET_INFO("ArticaMetaServerPassword");
    if ($EnableArticaMetaServer == 0) {
        die;
    }
    $UUID = $ARRAY["uuid"];
    $GLOBALS["UUID"] = $UUID;
    $hostname = $ARRAY["hostname"];
    $version = $ARRAY["version"];
    $username = trim(strtolower($ARRAY["username"]));
    $password = $ARRAY["password"];
    if ($ArticaMetaServerUsername != $username) {
        writelogs_meta("Checking identification FROM {$IPADDR} failed, wrong username or password", __FUNCTION__, __FILE__, __LINE__);
        die;
    }
    if ($ArticaMetaServerPassword != $password) {
        writelogs_meta("Checking identification FROM {$IPADDR} failed, wrong username or password", __FUNCTION__, __FILE__, __LINE__);
        die;
    }
    $q = new mysql_meta();
    if (!$q->TABLE_EXISTS("metahosts")) {
        if (!$q->CheckTables()) {
            echo $q->mysql_error;
        }
    }
    if (isset($ARRAY["ARTICA_META_EVENTS"])) {
        echo __LINE__ . " ** ARTICA_META_EVENTS:" . strlen($ARRAY["ARTICA_META_EVENTS"]) . " bytes\n";
        $qev = new mysql();
        $qev->QUERY_SQL($ARRAY["ARTICA_META_EVENTS"], "artica_events");
        if (!$qev->ok) {
            echo "*********************************\n\${$qev->mysql_error}\n*********************************\n";
        }
    } else {
        echo __LINE__ . " ** ARTICA_META_EVENTS: NONE\n";
    }
    $CPU = $ARRAY["CPU"];
    $load = $ARRAY["load"];
    $pourc_mem = $ARRAY["memory"]["ram"]["percent"];
    $ram_used = $ARRAY["memory"]["ram"]["used"];
    $ram_total = $ARRAY["memory"]["ram"]["total"];
    $ALL_DISKS_STATUS = mysql_escape_string2($ARRAY["ALL_DISKS_STATUS"]);
    echo "ALL_DISKS_STATUS:{$ALL_DISKS_STATUS}\n";
    $sql = "SELECT hostname FROM metahosts WHERE uuid='{$UUID}'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    $currentDate = date("Y-m-d H:i:s");
    $squid = 0;
    $squidver = null;
    if (isset($ARRAY["SQUID"])) {
        $squid = $ARRAY["SQUID"];
    }
    if (isset($ARRAY["squidver"])) {
        $squidver = $ARRAY["squidver"];
    }
    if (trim($ligne["hostname"]) == null) {
        $q->QUERY_SQL("INSERT IGNORE INTO `metahosts` (uuid,hostname,public_ip,updated,blacklisted,`version`,`CPU_NUMBER`\n\t\t\t\t,`load`,`mem_perc`,`mem_used`,mem_total,disks,PROXY,squidver) \n\t\t\t\tVALUES('{$UUID}','{$hostname}','{$IPADDR}','{$currentDate}',0,'{$version}','{$CPU}'\n\t\t\t\t,'{$load}','{$pourc_mem}','{$ram_used}','{$ram_total}','{$ALL_DISKS_STATUS}','{$squid}','{$squidver}')");
        if (!$q->ok) {
            echo $q->mysql_error;
            return false;
        }
    } else {
        $q->QUERY_SQL("UPDATE `metahosts` SET public_ip='{$IPADDR}', `hostname`='{$hostname}',\n\t\t\t\t`updated`='{$currentDate}',`version`='{$version}',\n\t\t\t\t`CPU_NUMBER`='{$CPU}',\n\t\t\t\t`load`='{$load}',\n\t\t\t\t`mem_perc`='{$pourc_mem}',\n\t\t\t\t`mem_used`='{$ram_used}',\n\t\t\t\tmem_total='{$ram_total}',\n\t\t\t\t`disks`='{$ALL_DISKS_STATUS}',\n\t\t\t\tPROXY='{$squid}',\n\t\t\t\tsquidver='{$squidver}'\n\t\t\t\tWHERE uuid='{$UUID}'");
        if (!$q->ok) {
            if (preg_match("#Unknown column#", $q->mysql_error)) {
                $q->CheckTables();
            }
        }
        if (!$q->ok) {
            echo $q->mysql_error;
            return false;
        }
    }
    return true;
}
function extract_tgz($uuid)
{
    $unix = new unix();
    $workingdir = "/usr/share/artica-postfix/ressources/conf/meta/hosts/uploaded/{$uuid}";
    if (is_file("{$workingdir}/status.tgz")) {
        $tar = $unix->find_program("tar");
        shell_exec("{$tar} -xf {$workingdir}/status.tgz -C {$workingdir}/");
        @unlink("{$workingdir}/status.tgz");
    }
    $unix->chown_func($unix->APACHE_SRC_ACCOUNT(), $unix->APACHE_SRC_GROUP(), "{$workingdir}/*");
    if (is_file("{$workingdir}/squid_admin_mysql.db")) {
        $q = new mysql_meta();
        if (!$q->TABLE_EXISTS("squid_admin_mysql")) {
            $q->CheckTables();
        }
        $data = trim(@file_get_contents("{$workingdir}/squid_admin_mysql.db"));
        if ($data != null) {
            $q->QUERY_SQL(@file_get_contents("{$workingdir}/squid_admin_mysql.db"));
            if (!$q->ok) {
                meta_admin_mysql(0, "Failed to import {$workingdir}/squid_admin_mysql.db", $q->mysql_error, __FILE__, __LINE__);
            } else {
                @unlink("{$workingdir}/squid_admin_mysql.db");
            }
        } else {
            @unlink("{$workingdir}/squid_admin_mysql.db");
        }
    } else {
        if ($GLOBALS["VERBOSE"]) {
            echo "{$workingdir}/squid_admin_mysql.db ( no such file )\n";
        }
    }
    if (is_file("{$workingdir}/network_hosts.db")) {
        __network_hosts($uuid, "{$workingdir}/network_hosts.db");
    } else {
        if ($GLOBALS["VERBOSE"]) {
            echo "{$workingdir}/network_hosts.db ( no such file )\n";
        }
    }
    global_status_ini($uuid);
}
예제 #10
0
function search()
{
    $MyPage = CurrentPageName();
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $q = new mysql_meta();
    $table = "metagroups";
    if (!$q->TABLE_EXISTS($table)) {
        $sql = "CREATE TABLE IF NOT EXISTS `metagroups` (\n\t\t\t\t`ID` INT(10) NOT NULL AUTO_INCREMENT,\n\t\t\t\t`groupname` varchar(90) NOT NULL,\n\t\t\t\t`CountHosts` smallint(3) NOT NULL DEFAULT 0,\n\t\t\t\tPRIMARY KEY (`ID`),\n\t\t\t\tKEY `groupname` (`groupname`),\n\t\t\t\tKEY `CountHosts` (`CountHosts`)\n\t\t\t\t) ENGINE=MYISAM;";
        $q->QUERY_SQL($sql);
        if (!$q->ok) {
            echo json_error_show($q->mysql_error, 1);
        }
    }
    $searchstring = string_to_flexquery();
    $page = 1;
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY `{$_POST["sortname"]}` {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    if ($searchstring != null) {
        $sql = "SELECT COUNT( * ) AS tcount FROM {$table} WHERE 1 {$searchstring}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
        if (!$q->ok) {
            json_error_show("Mysql Error [" . __LINE__ . "]: <br>{$q->mysql_error}.<br>{$sql}", 1);
        }
        $total = $ligne["tcount"];
    } else {
        $total = $q->COUNT_ROWS($table);
    }
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} {$ORDER} {$limitSql} ";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        if ($q->mysql_error != null) {
            json_error_show(date("H:i:s") . "<br>SORT:{$_POST["sortname"]}:<br>Mysql Error [L." . __LINE__ . "]: {$q->mysql_error}<br>{$sql}", 1);
        }
    }
    if (mysql_num_rows($results) == 0) {
        json_error_show("no data", 1);
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    $fontsize = "22";
    $style = " style='font-size:{$fontsize}px'";
    $styleHref = " style='font-size:{$fontsize}px;text-decoration:underline'";
    $free_text = $tpl->javascript_parse_text("{free}");
    $computers = $tpl->javascript_parse_text("{computers}");
    $overloaded_text = $tpl->javascript_parse_text("{overloaded}");
    $orders_text = $tpl->javascript_parse_text("{orders}");
    $directories_monitor = $tpl->javascript_parse_text("{directories_monitor}");
    while ($ligne = mysql_fetch_assoc($results)) {
        $LOGSWHY = array();
        $overloaded = null;
        $loadcolor = "black";
        $StatHourColor = "black";
        $ColorTime = "black";
        $groupname = $ligne["groupname"];
        $icon_warning_32 = "warning32.png";
        $icon_red_32 = "32-red.png";
        $icon = "ok-32.png";
        $urijs = "Loadjs('{$MyPage}?group-js=yes&ID={$ligne["ID"]}')";
        $link = "<a href=\"javascript:blur();\" OnClick=\"javascript:{$urijs}\" {$styleHref}>";
        $orders = imgtootltip("48-settings.png", null, "Loadjs('artica-meta.menus.php?gpid={$ligne["ID"]}');");
        $transparent = imgtootltip("ok-pass-48.png", null, "Loadjs('artica-meta.squidtransparent-white.php?gpid={$ligne["ID"]}');");
        $delete = imgtootltip("delete-32.png", null, "Loadjs('{$MyPage}?delete-group-js={$ligne["ID"]}')");
        $count = $q->group_count($ligne["ID"]);
        $cell = array();
        $cell[] = "<center><img src=\"img/{$icon}\"></center>";
        $cell[] = "<span {$style}>{$link}{$groupname}</a></span>";
        $cell[] = "<center {$style}>{$link}{$count}</a></center>";
        $cell[] = "<center {$style}>{$orders}</a></center>";
        $cell[] = "<center {$style}>{$transparent}</a></center>";
        $cell[] = "<center {$style}>{$delete}</a></center>";
        $data['rows'][] = array('id' => $ligne['uuid'], 'cell' => $cell);
    }
    echo json_encode($data);
}
function showlist(){
	$page=1;
	$q=new mysql_squid_builder();
	$tablesrc="WEEK_RTTH";
	$today=date("d");
	$thishour=date('H');
	
	if($_GET["uuid"]<>null){
		$q=new mysql_meta();
		$tablesrc="{$_GET["uuid"]}_WEEK_RTTH";
	}
	
	
	$table="( SELECT * FROM `$tablesrc` WHERE `day`='$today' AND `hour`='$thishour') as t";
	if(isset($_POST["sortname"])){if($_POST["sortname"]<>null){$ORDER="ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";}}
	if(isset($_POST['page'])) {$page = $_POST['page'];}
	
	
	$searchstring=string_to_flexquery();
	if($searchstring<>null){
		$sql="SELECT COUNT(*) as TCOUNT FROM $table WHERE 1 $searchstring";
		$ligne=mysql_fetch_array($q->QUERY_SQL($sql));
		$total = $ligne["TCOUNT"];
		
	}else{
		$sql="SELECT COUNT(*) as TCOUNT FROM $table";
		$ligne=mysql_fetch_array($q->QUERY_SQL($sql));
		$total = $ligne["TCOUNT"];
	}
	
	if (isset($_POST['rp'])) {$rp = $_POST['rp'];}
	if(!is_numeric($rp)){$rp=50;}
	
	
	$pageStart = ($page-1)*$rp;
	$limitSql = "LIMIT $pageStart, $rp";
	
	
	
	$sql="SELECT *  FROM $table WHERE 1 $searchstring $ORDER $limitSql";
	
	if(isset($_GET["verbose"])){echo "<hr><code>$sql</code></hr>";}
	$results = $q->QUERY_SQL($sql);
	
	if(!$q->ok){json_error_show($q->mysql_error,1);}

	if(mysql_num_rows($results)==0){
		if(!$q->TABLE_EXISTS($tablesrc)){$add=" no table!";}
		json_error_show("no data $add <i>$sql</i>",3);
	}

	$data = array();
	$data['page'] = 1;
	$data['total'] = mysql_num_rows($results);
	$data['rows'] = array();
	
	//if(mysql_num_rows($results)==0){$data['rows'][] = array('id' => $ligne[time()],'cell' => array($sql,"", "",""));}
	
		while ($ligne = mysql_fetch_assoc($results)) {
			$ipaddr=$ligne["ipaddr"];
			$mac=$ligne["MAC"];
			$familysite=$ligne["familysite"];
			$loupe_uid=null;
			$uid=$ligne["uid"];
			$size=FormatBytes($ligne["size"]/1024);
			$macenc=urlencode($mac);
			$category=$ligne["category"];
			if($category<>null){$category=" <i>($category)</i>";}
			
			$ipaddr_enc=urlencode($ipaddr);
			$loupe_mac="<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('squid.access.log.php?js=yes&SearchString=$ipaddr&data=&minsize=1')\">
				<img src='img/loupe-32.png' style='float:right'>
			</a>";
			
			if($uid<>null){
			$loupe_uid="<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('squid.access.log.php?js=yes&SearchString=$uid&data=&minsize=1')\">
			<img src='img/loupe-32.png' style='float:right'>
			</a>";	
			}		
			
			$macurl="<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('squid.nodes.php?node-infos-js=yes&MAC=$macenc',true);\"
			style='font-size:16px;text-decoration:underline'>";
			
		$data['rows'][] = array(
		'id' => md5(serialize($ligne)),
		'cell' => array("$loupe_uid<span style='font-size:16px'>$uid</span>",
				"$loupe_mac<span style='font-size:16px'>$ipaddr</span>",
				"$loupe_mac<span style='font-size:16px'>$macurl$mac</a></span>",
				"<span style='font-size:16px'>$familysite$category</span>",
				"<span style='font-size:16px'>$size</span>" )
		);
	}
	
	
	echo json_encode($data);	
}
예제 #12
0
function menu_proxy_service_tabs()
{
    $page = CurrentPageName();
    $tpl = new templates();
    $artica_meta = new mysql_meta();
    $uuid = $_GET["uuid"];
    $array["proxy-service-orders"] = '{orders}';
    $q = new mysql_meta();
    if ($_GET["gpid"] == 0) {
        if ($q->TABLE_EXISTS("{$uuid}_WEEK_RTTH")) {
            $array["proxy-service-rtt"] = "{bandwidth}";
        }
    }
    while (list($num, $ligne) = each($array)) {
        if ($num == "proxy-service-rtt") {
            $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.proxy.bandwidth.php?uuid=" . urlencode($_GET["uuid"]) . "&gpid={$_GET["gpid"]}\"><span style='font-size:18px'>{$ligne}</span></a></li>\n");
            continue;
        }
        if ($num == "snapshots") {
            $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.snapshots.php?uuid=" . urlencode($_GET["uuid"]) . "&gpid={$_GET["gpid"]}\"><span style='font-size:18px'>{$ligne}</span></a></li>\n");
            continue;
        }
        $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"{$page}?{$num}=yes&uuid=" . urlencode($_GET["uuid"]) . "&gpid={$_GET["gpid"]}\"><span style='font-size:18px'>{$ligne}</span></a></li>\n");
    }
    echo build_artica_tabs($html, "meta-proxy-service-{$_GET["uuid"]}{$_GET["gpid"]}");
}
function content_search()
{
    $MyPage = CurrentPageName();
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $q = new mysql_meta();
    $table = "snapshots";
    $database = null;
    $ID = $_GET["ID"];
    if (!$q->TABLE_EXISTS($table, $database)) {
        json_error_show("no data - no table");
    }
    $searchstring = string_to_flexquery();
    $page = 1;
    $q = new mysql_meta();
    $table = "(SELECT hotspot_members.creationtime, hotspot_members.uid, metahosts.hostname,hotspot_members.uuid FROM \n\thotspot_members,metahosts WHERE hotspot_members.uuid=metahosts.uuid) as t";
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $sql = "SELECT COUNT(*) as TCOUNT FROM {$table} WHERE 1 {$searchstring}";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database));
    $total = $ligne["TCOUNT"];
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} {$ORDER} {$limitSql}";
    $results = $q->QUERY_SQL($sql, $database);
    if (!$q->ok) {
        json_error_show($q->mysql_error_html(), 1);
    }
    if (mysql_num_rows($results) == 0) {
        json_error_show("no data {$sql}");
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    if (!$q->ok) {
        json_error_show($q->mysql_error);
    }
    $fontsize = 22;
    $c = 1;
    // 	//service,server_port,client_port,helper,enabled
    $style = "style='font-size:18px'";
    while ($ligne = mysql_fetch_assoc($results)) {
        $c++;
        $creationtime = $ligne["creationtime"];
        $zdate = $tpl->time_to_date($creationtime, true);
        $uid = $ligne["uid"];
        $hostname = $ligne["hostname"];
        $key = md5(serialize($ligne));
        $cell = array();
        $cell[] = "<span {$style}>{$zdate}</a></span>";
        $cell[] = "<span {$style}>{$uid}</a></span>";
        $cell[] = "<span {$style}>{$hostname}</a></span>";
        $data['rows'][] = array('id' => $key, 'cell' => $cell);
    }
    $data['total'] = $c;
    echo json_encode($data);
}
function search()
{
    $tpl = new templates();
    $MyPage = CurrentPageName();
    $q = new mysql_meta();
    if (!$q->TABLE_EXISTS("proxy_ports_wbl")) {
        $q->CheckTables(null, true);
    }
    $sock = new sockets();
    $t = $_GET["t"];
    $search = '%';
    $table = "proxy_ports_wbl";
    $page = 1;
    $total = 0;
    $OKFW = true;
    if (!$q->TABLE_EXISTS("proxy_ports_wbl")) {
        json_error_show("Fatal! table does not exists");
    }
    if (!is_numeric($_GET["include"])) {
        if ($_GET["include"] == "yes") {
            $_GET["include"] = 1;
        } else {
            $_GET["include"] = 0;
        }
    }
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $searchstring = string_to_flexquery();
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    $pageStart = ($page - 1) * $rp;
    if (is_numeric($rp)) {
        $limitSql = "LIMIT {$pageStart}, {$rp}";
    }
    $sql = "SELECT *  FROM `{$table}` WHERE include={$_GET["include"]} AND groupid={$_GET["gpid"]} {$searchstring} {$ORDER} {$limitSql}";
    $results = $q->QUERY_SQL($sql);
    $no_rule = $tpl->_ENGINE_parse_body("{no_rule}");
    $data = array();
    $data['page'] = $page;
    $data['total'] = mysql_num_rows($results);
    $data['rows'] = array();
    if (!$q->ok) {
        json_error_show($q->mysql_error . "<br>{$sql}");
    }
    if (mysql_num_rows($results) == 0) {
        json_error_show("{$no_rule}");
    }
    $tpl = new templates();
    while ($ligne = mysql_fetch_assoc($results)) {
        $color = "black";
        $ID = $ligne["ID"];
        $pattern = $ligne["pattern"];
        $delete = imgsimple("delete-48.png", null, "Loadjs('{$MyPage}?delete-pattern-js=yes&ID={$ID}&include={$_GET["include"]}',true)");
        $destport = $ligne["destport"];
        $data['rows'][] = array('id' => $ID, 'cell' => array("<span style='font-size:30px;font-weight:normal;color:{$color}'>{$pattern} - {$destport}</span>", "<center style='margin-top:3px;font-size:30px;font-weight:normal;color:{$color}'>{$delete}</center>"));
    }
    echo json_encode($data);
}
function search()
{
    $MyPage = CurrentPageName();
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $q = new mysql_meta();
    $table = "metagroups";
    $table = "webfiltering_categories";
    $searchstring = string_to_flexquery();
    $page = 1;
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY `{$_POST["sortname"]}` {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $sql = "SELECT COUNT( * ) AS tcount FROM {$table} WHERE 1 {$searchstring}";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    if (!$q->ok) {
        json_error_show("Mysql Error [" . __LINE__ . "]: <br>{$q->mysql_error}.<br>{$sql}", 1);
    }
    $total = $ligne["tcount"];
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} {$ORDER} {$limitSql} ";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        if ($q->mysql_error != null) {
            json_error_show(date("H:i:s") . "<br>SORT:{$_POST["sortname"]}:<br>Mysql Error [L." . __LINE__ . "]: {$q->mysql_error}<br>{$sql}", 1);
        }
    }
    if (mysql_num_rows($results) == 0) {
        json_error_show("no data", 1);
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    $fontsize = "22";
    $style = " style='font-size:{$fontsize}px'";
    $styleHref = " style='font-size:{$fontsize}px;text-decoration:underline'";
    $free_text = $tpl->javascript_parse_text("{free}");
    $computers = $tpl->javascript_parse_text("{computers}");
    $overloaded_text = $tpl->javascript_parse_text("{overloaded}");
    $orders_text = $tpl->javascript_parse_text("{orders}");
    $directories_monitor = $tpl->javascript_parse_text("{directories_monitor}");
    if (!$q->TABLE_EXISTS("webfiltering_categories_link")) {
        $q->BuildTables();
    }
    while ($ligne = mysql_fetch_assoc($results)) {
        $LOGSWHY = array();
        $overloaded = null;
        $loadcolor = "black";
        $StatHourColor = "black";
        $ColorTime = "black";
        $uuid = $ligne["uuid"];
        $category = $ligne["category"];
        $zmd5 = $ligne["zmd5"];
        $icon_warning_32 = "warning32.png";
        $icon_red_32 = "32-red.png";
        $icon_check_on = "check-32.png";
        $icon_check_off = "check-32-grey.png";
        $orgQuery = $_POST["query"];
        $sql = "SELECT zmd5 FROM `webfiltering_categories_link` WHERE category='{$category}' AND gpid={$_GET["ID"]}";
        $ligne2 = mysql_fetch_array($q->QUERY_SQL($sql));
        $icon = imgsimple($icon_check_off, "{link}", "Loadjs('{$MyPage}?link-js=yes&gpid={$_GET["ID"]}&category={$category}')");
        if ($ligne2["zmd5"] != null) {
            $icon = imgsimple($icon_check_on, "{unlink}", "Loadjs('{$MyPage}?link-js=yes&gpid={$_GET["ID"]}&category={$category}')");
        }
        $cell = array();
        $cell[] = "<span {$style}>{$category}</a></span>";
        $cell[] = "{$icon}";
        $data['rows'][] = array('id' => $ligne['zmd5'], 'cell' => $cell);
    }
    echo json_encode($data);
}
예제 #16
0
function showlist()
{
    $page = 1;
    $q = new mysql_meta();
    $type = $_GET["type"];
    if ($type == "hour") {
        $tablename = "metastats_size_" . date("YmdH");
        $table = "(SELECT COUNT(zmd5) as hits,SUM(size) as size,uuid FROM `{$tablename}` GROUP BY `uuid` ) as t";
    }
    if ($type == "day") {
        $tablename = "metastats_sized_" . date("Ymd");
        $table = "(SELECT SUM(hits) as hits,SUM(size) as size,uuid FROM `{$tablename}` GROUP BY `uuid` ) as t";
    }
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $searchstring = string_to_flexquery();
    if ($searchstring != null) {
        $sql = "SELECT COUNT(*) as TCOUNT FROM {$table} WHERE 1 {$searchstring}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
        $total = $ligne["TCOUNT"];
    } else {
        $sql = "SELECT COUNT(*) as TCOUNT FROM {$table}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
        $total = $ligne["TCOUNT"];
    }
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT *  FROM {$table} WHERE 1 {$searchstring} {$ORDER} {$limitSql}";
    if (isset($_GET["verbose"])) {
        echo "<hr><code>{$sql}</code></hr>";
    }
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        json_error_show($q->mysql_error, 0);
    }
    if (mysql_num_rows($results) == 0) {
        if (!$q->TABLE_EXISTS($table)) {
            $add = " no table!";
        }
        json_error_show("no data {$add} <i>{$sql}</i>", 1);
    }
    $data = array();
    $data['page'] = 1;
    $data['total'] = mysql_num_rows($results);
    $data['rows'] = array();
    while ($ligne = mysql_fetch_assoc($results)) {
        $ipaddr = $ligne["ipaddr"];
        $uuid = $ligne["uuid"];
        $hostname = $q->uuid_to_host($uuid);
        $tag = $q->uuid_to_tag($uuid);
        $size = FormatBytes($ligne["size"] / 1024);
        $hits = FormatNumber($ligne["hits"]);
        $ipaddr_enc = urlencode($ipaddr);
        $loupe_mac = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('squid.access.log.php?js=yes&SearchString={$ipaddr}&data=&minsize=1')\">\n\t\t<img src='img/loupe-32.png' style='float:right'>\n\t\t</a>";
        $data['rows'][] = array('id' => md5(serialize($ligne)), 'cell' => array("<span style='font-size:18px'>{$hostname}</span>", "<span style='font-size:18px'>{$tag}</a></span>", "<span style='font-size:18px'>{$hits}</a></span>", "<span style='font-size:18px'>{$size}</span>"));
    }
    echo json_encode($data);
}