Пример #1
0
 function db_data($db_info)
 {
     global $db;
     $ret = array();
     $db_info = explode(',', $db_info);
     for ($i = 0; $i < count($db_info); $i++) {
         $db_info[$i] = trim($db_info[$i]);
         $db_info[$i] = explode('.', $db_info[$i]);
         if (!isset($f[$db_info[$i][0]])) {
             $f[$db_info[$i][0]] = $db->get_fields($db_info[$i][0]);
         }
         for ($p = 0; $p < count($f[$db_info[$i][0]]); $p++) {
             if ($db_info[$i][1] == $f[$db_info[$i][0]][$p]['Field'] || $db_info[$i][1] == '*') {
                 $f[$db_info[$i][0]][$p]['fullField'] = $db_info[$i][0] . '__' . $f[$db_info[$i][0]][$p]['Field'];
                 if (strpos($f[$db_info[$i][0]][$p]['Type'], 'enum') === 0) {
                     $enums = substr($f[$db_info[$i][0]][$p]['Type'], 5, -1);
                     $enums = explode(',', $enums);
                     unset($tmp);
                     for ($e = 0; $e < count($enums); $e++) {
                         $tmp[$e]['output'] = $tmp[$e]['value'] = substr($enums[$e], 1, -1);
                     }
                     $f[$db_info[$i][0]][$p]['Type'] = 'enum';
                     $f[$db_info[$i][0]][$p]['Type_Enums'] = $tmp;
                 }
                 array_push($ret, $f[$db_info[$i][0]][$p]);
             }
         }
     }
     $this->data = array_merge_check(isset($this->data) ? $this->data : null, isset($ret) ? $ret : null);
 }
Пример #2
0
 function output()
 {
     if ($this->hide) {
         return;
     }
     if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_' . $_POST['form_name'])) {
         call_user_func(array($this, 'output_onpost_' . $_POST['form_name']));
     }
     global $construct, $main, $db, $vars, $lang;
     $this->tpl['logged'] = $main->userdata->logged;
     $this->tpl['form_login'] = $construct->form($this->form_login(), __FILE__);
     $main->html->body->tpl['form_login'] = $this->tpl['form_login'];
     $main->html->body->tpl['logged_username'] = isset($main->userdata->info['username']) ? $main->userdata->info['username'] : null;
     #@#
     if ($main->userdata->privileges['cadmin'] === TRUE) {
         $main->html->body->tpl['logged_username'] = $main->html->body->tpl['logged_username'] . " " . "{ Community Admin }";
     }
     if ($main->userdata->privileges['admin'] === TRUE) {
         $main->html->body->tpl['logged_username'] = $main->html->body->tpl['logged_username'] . " " . "{ Administrator }";
     }
     #@#
     $main->html->body->tpl['link_logged_profile'] = makelink(array("page" => "users", "user" => $main->userdata->user));
     $main->html->body->tpl['logged'] = $main->userdata->logged;
     //dump($main->html->body->tpl);
     foreach ($vars['language']['enabled'] as $key => $value) {
         if ($value) {
             $main->html->body->tpl['languages'][$key]['name'] = $lang['languages'][$key] == '' ? $key : $lang['languages'][$key];
             $main->html->body->tpl['languages'][$key]['link'] = makelink(array("session_lang" => $key), TRUE);
         }
     }
     if ($main->userdata->logged) {
         $this->tpl = array_merge_check($this->tpl, $main->userdata->info);
         $this->tpl['mynodes'] = $db->get('nodes.id, nodes.name', 'nodes INNER JOIN users_nodes ON nodes.id = users_nodes.node_id', "users_nodes.user_id = '" . $main->userdata->user . "'");
         #@#
         $this->tpl['home_node'] = $db->get('nodes.id, nodes.name', 'nodes INNER JOIN users_nodes ON nodes.id = users_nodes.node_id', "nodes.id = '" . $main->userdata->home_node . "'");
         $this->tpl['home_node'][0]['url'] = makelink(array("page" => "mynodes", "node" => $this->tpl['home_node'][0]['id']));
         $this->tpl['home_node'][0]['url_view'] = makelink(array("page" => "nodes", "node" => $this->tpl['home_node'][0]['id']));
         #@#
         foreach ((array) $this->tpl['mynodes'] as $key => $value) {
             $this->tpl['mynodes'][$key]['url'] = makelink(array("page" => "mynodes", "node" => $this->tpl['mynodes'][$key]['id']));
             $this->tpl['mynodes'][$key]['url_view'] = makelink(array("page" => "nodes", "node" => $this->tpl['mynodes'][$key]['id']));
         }
         $this->tpl['link_addnode'] = makelink(array("page" => "mynodes", "node" => "add"));
         $this->tpl['link_edit_profile'] = makelink(array("page" => "users", "user" => $main->userdata->user));
         if ($main->userdata->privileges['admin'] === TRUE) {
             $this->tpl['is_admin'] = TRUE;
             $this->tpl['link_admin_nodes'] = makelink(array("page" => "admin", "subpage" => "nodes"));
             $this->tpl['link_admin_users'] = makelink(array("page" => "admin", "subpage" => "users"));
             $this->tpl['link_admin_nodes_services'] = makelink(array("page" => "admin", "subpage" => "nodes_services"));
             $this->tpl['link_admin_services'] = makelink(array('page' => 'admin', 'subpage' => 'services'));
             $this->tpl['link_admin_regions'] = makelink(array('page' => 'admin', 'subpage' => 'regions'));
             $this->tpl['link_admin_areas'] = makelink(array('page' => 'admin', 'subpage' => 'areas'));
             $this->tpl['link_admin_communities'] = makelink(array('page' => 'admin', 'subpage' => 'communities'));
             $this->tpl['link_admin_actionlog'] = makelink(array('page' => 'admin', 'subpage' => 'actionlog'));
         }
         if ($main->userdata->privileges['cadmin'] === TRUE) {
             $this->tpl['is_admin'] = TRUE;
             $this->tpl['link_admin_areas'] = makelink(array('page' => 'admin', 'subpage' => 'areas'));
             $this->tpl['link_admin_nodes'] = makelink(array("page" => "admin", "subpage" => "nodes"));
             $this->tpl['link_admin_users'] = "";
             # makelink(array("page" => "admin", "subpage" => "users"));
             $this->tpl['link_admin_nodes_services'] = "";
             #  makelink(array("page" => "admin", "subpage" => "nodes_services"));
             $this->tpl['link_admin_services'] = makelink(array('page' => 'admin', 'subpage' => 'services'));
             $this->tpl['link_admin_regions'] = "";
             # makelink(array('page' => 'admin', 'subpage' => 'regions'));
             $this->tpl['link_admin_communities'] = "";
             #  makelink(array('page' => 'admin', 'subpage' => 'communities'));
             # <a href="javascript:alert('Access Denied');"></a>
             $this->tpl['is_hostmaster'] = TRUE;
             $this->tpl['link_ranges'] = makelink(array("page" => "hostmaster", "subpage" => "ranges"));
             $this->tpl['link_ranges_waiting'] = makelink(array("page" => "hostmaster", "subpage" => "ranges", "form_search_ranges_search" => serialize(array("ip_ranges__status" => "waiting", "ip_ranges__delete_req" => "N"))));
             $this->tpl['ranges_waiting'] = $db->cnt('', "ip_ranges", "status = 'waiting' AND delete_req = 'N'");
             $this->tpl['link_ranges_req_del'] = makelink(array("page" => "hostmaster", "subpage" => "ranges", "form_search_ranges_search" => serialize(array("ip_ranges__delete_req" => "Y"))));
             $this->tpl['ranges_req_del'] = $db->cnt('', "ip_ranges", "delete_req = 'Y'");
         }
         if ($main->userdata->privileges['admin'] === TRUE || $main->userdata->privileges['hostmaster'] === TRUE) {
             $this->tpl['is_hostmaster'] = TRUE;
             $this->tpl['link_dnsnameservers'] = makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers"));
             $this->tpl['link_dnsnameservers_waiting'] = makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers", "form_search_nameservers_search" => serialize(array("dns_nameservers__status" => "waiting", "dns_nameservers__delete_req" => "N"))));
             $this->tpl['dnsnameservers_waiting'] = $db->cnt('', "dns_nameservers", "status = 'waiting' AND delete_req = 'N'");
             $this->tpl['link_dnsnameservers_req_del'] = makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers", "form_search_nameservers_search" => serialize(array("dns_nameservers__delete_req" => "Y"))));
             $this->tpl['dnsnameservers_req_del'] = $db->cnt('', "dns_nameservers", "delete_req = 'Y'");
             $this->tpl['link_dnszones'] = makelink(array("page" => "hostmaster", "subpage" => "dnszones"));
             $this->tpl['link_dnszones_waiting'] = makelink(array("page" => "hostmaster", "subpage" => "dnszones", "form_search_dns_search" => serialize(array("dns_zones__status" => "waiting", "dns_zones__delete_req" => "N"))));
             $this->tpl['dnszones_waiting'] = $db->cnt('', "dns_zones", "status = 'waiting' AND delete_req = 'N'");
             $this->tpl['link_dnszones_req_del'] = makelink(array("page" => "hostmaster", "subpage" => "dnszones", "form_search_dns_search" => serialize(array("dns_zones__delete_req" => "Y"))));
             $this->tpl['dnszones_req_del'] = $db->cnt('', "dns_zones", "delete_req = 'Y'");
             $this->tpl['link_ranges'] = makelink(array("page" => "hostmaster", "subpage" => "ranges"));
             $this->tpl['link_ranges_waiting'] = makelink(array("page" => "hostmaster", "subpage" => "ranges", "form_search_ranges_search" => serialize(array("ip_ranges__status" => "waiting", "ip_ranges__delete_req" => "N"))));
             $this->tpl['ranges_waiting'] = $db->cnt('', "ip_ranges", "status = 'waiting' AND delete_req = 'N'");
             $this->tpl['link_ranges_req_del'] = makelink(array("page" => "hostmaster", "subpage" => "ranges", "form_search_ranges_search" => serialize(array("ip_ranges__delete_req" => "Y"))));
             $this->tpl['ranges_req_del'] = $db->cnt('', "ip_ranges", "delete_req = 'Y'");
         }
     }
     $this->tpl['link_home'] = makelink(array());
     $this->tpl['link_allnodes'] = makelink(array("page" => "nodes"));
     $this->tpl['link_allranges'] = makelink(array("page" => "ranges", "subpage" => "search"));
     $this->tpl['link_allservices'] = makelink(array("page" => "services"));
     $this->tpl['link_communities'] = makelink(array("page" => "communities"));
     $this->tpl['link_alldnszones'] = makelink(array("page" => "dnszones"));
     $this->tpl['link_restore_password'] = makelink(array("page" => "users", "action" => "restore"));
     $this->tpl['link_register'] = makelink(array("page" => "users", "user" => "add"));
     $this->tpl['link_logout'] = makelink(array("page" => "users", "action" => "logout"));
     parse_str(substr(makelink(array("page" => "search"), FALSE, TRUE, FALSE), 1), &$this->tpl['query_string']);
     $this->tpl['stats_nodes_active'] = $db->cnt('', 'nodes ' . 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 'LEFT JOIN links AS p2p ON (l1.type = "p2p" AND p2p.type = "p2p" AND l1.node_id = p2p.peer_node_id AND p2p.node_id = l1.peer_node_id) ' . 'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' . 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 'LEFT JOIN users ON users.id = users_nodes.user_id', 'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")', 'nodes.id');
     $this->tpl['stats_nodes_total'] = $db->cnt('', 'nodes ' . 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 'LEFT JOIN users ON users.id = users_nodes.user_id', 'users.status = "activated"', 'nodes.id');
     $this->tpl['stats_backbone'] = $db->cnt('', 'nodes ' . 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 'INNER JOIN links AS l2 ON (l1.type = "p2p" AND l2.type = "p2p" AND l1.node_id = l2.peer_node_id AND l2.node_id = l1.peer_node_id) ' . 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 'LEFT JOIN users ON users.id = users_nodes.user_id', 'users.status = "activated" AND l1.status = "active" AND l2.status = "active"', 'nodes.id');
     $this->tpl['stats_links'] = $db->cnt('', 'nodes ' . 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 'LEFT JOIN links AS p2p ON (l1.id < p2p.id AND l1.type = "p2p" AND p2p.type = "p2p" AND l1.node_id = p2p.peer_node_id AND p2p.node_id = l1.peer_node_id) ' . 'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' . 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 'LEFT JOIN users ON users.id = users_nodes.user_id', 'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")', 'l1.id');
     $this->tpl['stats_aps'] = $db->cnt('', 'nodes ' . 'INNER JOIN links ON links.node_id = nodes.id AND links.type = "ap" AND links.status = "active" ' . 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 'LEFT JOIN users ON users.id = users_nodes.user_id', 'users.status = "activated"', 'links.id');
     $this->tpl['stats_hotspots'] = $db->cnt('', 'nodes ' . 'INNER JOIN links ON links.node_id = nodes.id AND links.type = "hs" AND links.status = "active" ' . 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 'LEFT JOIN users ON users.id = users_nodes.user_id', 'users.status = "activated"', 'links.id');
     $this->tpl['stats_services_active'] = $db->cnt('', 'nodes_services', 'nodes_services.status = "active"');
     $this->tpl['stats_communities'] = $db->cnt('', 'communities', '');
     $this->tpl['stats_services_total'] = $db->cnt('', 'nodes_services', '');
     $main->html->head->add_script("text/javascript", makelink(array("page" => "search", "subpage" => "suggest_js")));
     return template($this->tpl, __FILE__);
 }
Пример #3
0
function makelink($extra = "", $cur_qs = FALSE, $cur_gs_vars = TRUE, $htmlspecialchars = TRUE)
{
    global $qs_vars;
    $o = array();
    if (get('show_map') == "no") {
        $o = array_merge_check($o, array("show_map" => "no"));
    }
    if ($cur_qs == TRUE) {
        parse_str(get_qs(), $qs);
        $o = array_merge_check(isset($o) ? $o : null, isset($qs) ? $qs : null);
    }
    if ($cur_gs_vars == TRUE) {
        $o = array_merge_check(isset($o) ? $o : null, isset($qs_vars) ? $qs_vars : null);
    }
    $o = array_merge_check(isset($o) ? $o : null, isset($extra) ? $extra : null);
    return $htmlspecialchars ? htmlspecialchars('?' . query_str($o)) : '?' . query_str($o);
}
Пример #4
0
 function db_data($select, $from, $where = "", $group_by = "", $order_by = "", $limit = "")
 {
     global $db, $vars;
     if ($limit == '' && $limit !== FALSE) {
         if ((!isset($this->info['CURRENT_PAGE']) || $this->info['CURRENT_PAGE'] == '') && $_SERVER['REQUEST_METHOD'] == 'GET') {
             $this->info['CURRENT_PAGE'] = get($this->info['TABLE_NAME'] . "_showpage");
         }
         if (!isset($this->info['CURRENT_PAGE']) || $this->info['CURRENT_PAGE'] == '') {
             $this->info['CURRENT_PAGE'] = 1;
         }
         $page = $this->info['CURRENT_PAGE'];
         $limit = ($page - 1) * $vars['constructor']['max_rows'] . ', ' . $vars['constructor']['max_rows'];
         $want_pages = true;
     }
     $data = $db->get("SQL_CALC_FOUND_ROWS " . $select, $from, $where, $group_by, $order_by, $limit);
     if (isset($want_pages)) {
         //cirrus problem with tables... check other mysql/php version
         //$cnt = $db->cnt($select, $from, $where, $group_by, $order_by);
         $cnt = $db->query_data("SELECT FOUND_ROWS()");
         $cnt = $cnt[0]['FOUND_ROWS()'];
         if ($vars['constructor']['max_rows'] != '' && $cnt > $vars['constructor']['max_rows']) {
             $this->info['TOTAL_PAGES'] = ceil($cnt / $vars['constructor']['max_rows']);
             for ($i = 1; $i <= $this->info['TOTAL_PAGES']; $i++) {
                 $this->info['PAGES'][$i] = makelink(array($this->info['TABLE_NAME'] . "_showpage" => $i), TRUE);
             }
         } else {
             $this->info['TOTAL_PAGES'] = null;
         }
     }
     if (isset($data[0])) {
         $isset = TRUE;
         array_unshift($data, $data[0]);
         while (list($key, $value) = each($data[0])) {
             $data[0][$key] = $key;
         }
     }
     $a = explode(",", $select);
     for ($i = 0; $i < count($a); $i++) {
         $f = explode(" AS ", $a[$i]);
         if (!isset($f[1])) {
             $f = explode(".", $f[0]);
             if (!isset($f[1])) {
                 $t = explode(",", trim($from), 1);
                 $t = explode(" ", $t[0], 1);
                 $f = trim($t[0]) . "__" . trim($f[0]);
                 $fkey = trim($f[0]);
             } else {
                 $fkey = trim($f[1]);
                 $f = trim($f[0]) . "__" . trim($f[1]);
             }
         } else {
             $f = trim($f[1]);
             $fkey = $f;
         }
         if (isset($data[0][$fkey]) || (!isset($isset) || $isset !== TRUE) && !isset($data[0][$fkey])) {
             $data[0][$fkey] = $f;
         }
     }
     $this->data[0] = array_merge_check(isset($this->data[0]) ? $this->data[0] : null, isset($data[0]) ? $data[0] : null);
     unset($data[0]);
     $this->data = array_merge_check(isset($this->data) ? $this->data : null, isset($data) ? $data : null);
 }