Ejemplo n.º 1
0
    function table_ip_ranges()
    {
        global $construct, $db;
        $form_search_ranges = $this->form_search_ranges();
        $where = $form_search_ranges->db_data_where(array('ip' => 'exclude'));
        $table_ip_ranges = new table(array('TABLE_NAME' => 'table_ip_ranges', 'FORM_NAME' => 'table_ip_ranges'));
        $where = $where != '' ? "(" . $where . ") AND " : "";
        if ($form_search_ranges->data[0]['value'] != '') {
            $where .= "(";
            $s_ranges = ip_to_ranges($form_search_ranges->data[0]['value']);
            foreach ($s_ranges as $s_range) {
                $where .= "(ip_ranges.ip_start BETWEEN " . ip2long($s_range['min']) . " AND " . ip2long($s_range['max']) . ") OR ";
            }
            $where = substr($where, 0, -4) . ") AND ";
        }
        if ($where != '') {
            $where = substr($where, 0, -5);
        }
        $table_ip_ranges->db_data('"" AS ip_range, ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.date_in, ip_ranges.status, nodes.name AS nodes__name, nodes.id AS nodes__id', 'ip_ranges
			LEFT JOIN nodes ON ip_ranges.node_id = nodes.id', $where != '' ? "(" . $where . ")" : "", "", "ip_ranges.status ASC, ip_ranges.ip_start ASC");
        $table_ip_ranges->db_data_search($form_search_ranges);
        foreach ((array) $table_ip_ranges->data as $key => $value) {
            if ($key != 0) {
                $table_ip_ranges->data[$key]['ip_start'] = long2ip($table_ip_ranges->data[$key]['ip_start']);
                $table_ip_ranges->data[$key]['ip_end'] = long2ip($table_ip_ranges->data[$key]['ip_end']);
                $table_ip_ranges->data[$key]['ip_range'] = $table_ip_ranges->data[$key]['ip_start'] . " - " . $table_ip_ranges->data[$key]['ip_end'];
                $table_ip_ranges->data[$key]['nodes__name'] .= " (#" . $table_ip_ranges->data[$key]['nodes__id'] . ")";
                $table_ip_ranges->info['EDIT'][$key] = make_ref('/nodes', array("node" => $table_ip_ranges->data[$key]['nodes__id']));
            }
        }
        $table_ip_ranges->info['EDIT_COLUMN'] = 'nodes__name';
        $table_ip_ranges->db_data_remove('ip_start', 'ip_end', 'nodes__id');
        $table_ip_ranges->db_data_translate('ip_ranges__status');
        return $table_ip_ranges;
    }
Ejemplo n.º 2
0
    function table_ip_ranges()
    {
        global $construct, $db, $lang;
        $form_search_ranges = $this->form_search_ranges();
        $where = $form_search_ranges->db_data_where(array('ip' => 'exclude', 'nodes__name' => 'starts_with', "total_active_p2p" => 'exclude', "total_active_aps" => 'exclude'));
        $table_ip_ranges = new table(array('TABLE_NAME' => 'table_ip_ranges', 'FORM_NAME' => 'table_ip_ranges'));
        $where = $where != '' ? "(" . $where . ") AND " : "";
        if ($form_search_ranges->data[0]['value'] != '') {
            $where .= "(";
            $s_ranges = ip_to_ranges($form_search_ranges->data[0]['value']);
            foreach ($s_ranges as $s_range) {
                $where .= "(ip_ranges.ip_start BETWEEN " . ip2long($s_range['min']) . " AND " . ip2long($s_range['max']) . ") OR ";
            }
            $where = substr($where, 0, -4) . ") AND ";
        }
        if ($where != '') {
            $where = substr($where, 0, -5);
        }
        $having = $form_search_ranges->db_data_where(array('ip' => 'exclude', 'ip_ranges__status' => 'exclude', 'ip_ranges__delete_req' => 'exclude', 'nodes__id' => 'exclude', 'nodes__name' => 'exclude'));
        $table_ip_ranges->db_data('ip_ranges.id, 
				"" AS ip_range, 
				ip_ranges.ip_start, 
				ip_ranges.ip_end, 
				ip_ranges.date_in, 
				ip_ranges.status, 
				ip_ranges.delete_req, 
				COUNT(DISTINCT p2p.id) AS total_active_p2p, 
				COUNT(DISTINCT aps.id) AS total_active_aps, 
				"" AS total_active_peers', 'ip_ranges ' . 'LEFT JOIN nodes ON ip_ranges.node_id = nodes.id 
				LEFT JOIN links ON ip_ranges.node_id = links.node_id AND links.status = "active" 
				LEFT JOIN links AS p2p ON links.type = "p2p" 
					AND links.peer_node_id = p2p.node_id 
					AND p2p.type = "p2p" 
					AND p2p.peer_node_id = links.node_id 
					AND p2p.status = "active" 
				LEFT JOIN links as aps ON links.type = "ap" 
					AND links.id = aps.id', $where, "ip_ranges.id" . ($having != '' ? ' HAVING (' . $having . ')' : ""), "ip_ranges.date_in DESC, ip_ranges.status ASC");
        $table_ip_ranges->db_data_search($form_search_ranges);
        foreach ((array) $table_ip_ranges->data as $key => $value) {
            if ($key != 0) {
                $table_ip_ranges->data[$key]['ip_start'] = long2ip($table_ip_ranges->data[$key]['ip_start']);
                $table_ip_ranges->data[$key]['ip_end'] = long2ip($table_ip_ranges->data[$key]['ip_end']);
                $table_ip_ranges->data[$key]['ip_range'] = $table_ip_ranges->data[$key]['ip_start'] . " - " . $table_ip_ranges->data[$key]['ip_end'];
            }
        }
        $table_ip_ranges->db_data_multichoice('ip_ranges', 'id');
        for ($i = 1; $i < count($table_ip_ranges->data); $i++) {
            if (isset($table_ip_ranges->data[$i])) {
                $table_ip_ranges->data[$i]['total_active_peers'] = ($table_ip_ranges->data[$i]['total_active_p2p'] > 0 ? $table_ip_ranges->data[$i]['total_active_p2p'] . " " . $lang['backbones_abbr'] : "") . ($table_ip_ranges->data[$i]['total_active_aps'] > 0 ? " + " . $table_ip_ranges->data[$i]['total_active_aps'] . " " . $lang['aps_abbr'] : "");
                $table_ip_ranges->info['EDIT'][$i] = make_ref('/hostmaster/range', array("iprange" => $table_ip_ranges->data[$i]['id']));
            }
        }
        $table_ip_ranges->info['EDIT_COLUMN'] = 'ip_range';
        $table_ip_ranges->info['MULTICHOICE_LABEL'] = 'delete';
        $table_ip_ranges->db_data_remove('id', 'ip_start', 'ip_end', 'total_active_p2p', 'total_active_aps');
        $table_ip_ranges->db_data_translate('ip_ranges__status', 'ip_ranges__delete_req');
        return $table_ip_ranges;
    }
Ejemplo n.º 3
0
    function output()
    {
        global $db, $vars;
        $q = get('q');
        $widget = get('widget');
        if (isset($widget) && $widget == "true") {
            $this->tpl['widget'] = "1";
            $this->tpl['url'] = $vars['site']['url'];
            $this->limit = 5;
        } else {
            $this->tpl['widget'] = "0";
        }
        $i = 0;
        if (is_numeric($q) && strpos($q, ".") === FALSE) {
            $this->tpl['nodes_search'] = $db->get('nodes.id, nodes.name', 'nodes
										INNER JOIN users_nodes ON users_nodes.node_id = nodes.id
										INNER JOIN users ON users_nodes.user_id = users.id', 'users.status = "activated" AND nodes.id LIKE "' . replace_sql_wildcards($q) . '%"', 'nodes.id', 'nodes.id ASC', $this->limit);
            foreach ((array) $this->tpl['nodes_search'] as $key => $value) {
                $this->tpl['nodes_search'][$key]['href'] = make_ref("/nodes", array("node" => $this->tpl['nodes_search'][$key]['id']));
            }
        } elseif (is_ip($q, FALSE)) {
            $where = "(";
            $s_ranges = ip_to_ranges($q, FALSE);
            foreach ($s_ranges as $s_range) {
                $where .= "(ip_ranges.ip_start BETWEEN " . ip2long($s_range['min']) . " AND " . ip2long($s_range['max']) . ") OR ";
            }
            $where = substr($where, 0, -4) . ")";
            $this->tpl['ip_search'] = $db->get('ip_ranges.ip_start, nodes.id', 'ip_ranges
										LEFT JOIN nodes ON ip_ranges.node_id = nodes.id', $where, '', 'ip_ranges.status ASC, ip_ranges.ip_start ASC', $this->limit);
            foreach ((array) $this->tpl['ip_search'] as $key => $value) {
                $this->tpl['ip_search'][$key]['ip_start'] = long2ip($this->tpl['ip_search'][$key]['ip_start']);
                $this->tpl['ip_search'][$key]['href'] = make_ref("/nodes", array("node" => $this->tpl['ip_search'][$key]['id']));
            }
        } elseif (strpos($q, ".") !== FALSE && intval($q) == 0 || substr($q, -strlen("." . $vars['dns']['root_zone'])) == "." . $vars['dns']['root_zone']) {
            $this->tpl['dns_search'] = $db->get('dns_zones.name, dns_zones.type, nodes.id', 'dns_zones
										LEFT JOIN nodes ON dns_zones.node_id = nodes.id', 'dns_zones.name LIKE "' . replace_sql_wildcards(substr($q, 0, strrpos($q, "."))) . '"', '', 'dns_zones.status ASC, dns_zones.name ASC', $this->limit);
            foreach ((array) $this->tpl['dns_search'] as $key => $value) {
                if ($this->tpl['dns_search'][$key]['type'] == "forward") {
                    $this->tpl['dns_search'][$key]['name'] .= "." . $vars['dns']['root_zone'];
                }
                $this->tpl['dns_search'][$key]['href'] = make_ref('/nodes', array("node" => $this->tpl['dns_search'][$key]['id']));
            }
        } else {
            $this->tpl['nodes_search'] = $db->get('nodes.id, nodes.name', 'nodes
										INNER JOIN users_nodes ON users_nodes.node_id = nodes.id
										INNER JOIN users ON users_nodes.user_id = users.id', 'users.status = "activated" AND nodes.name LIKE "' . replace_sql_wildcards($q) . '%"', 'nodes.id', 'nodes.name ASC', $this->limit);
            foreach ((array) $this->tpl['nodes_search'] as $key => $value) {
                $this->tpl['nodes_search'][$key]['href'] = make_ref('/nodes', array("node" => $this->tpl['nodes_search'][$key]['id']));
            }
        }
        echo template($this->tpl, __FILE__);
        exit;
    }