Changeset 192
- Timestamp:
- 03/05/2009 12:45:36 AM (3 years ago)
- File:
-
- 1 edited
-
trunk/includes/main_menu.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/includes/main_menu.php
r187 r192 30 30 return $form_login; 31 31 } 32 32 33 function calculate_menu_stats() { 34 global $db, $config; 35 $stats_tmp = "/tmp/wind-stats-".md5(__FILE__).".tmp"; 36 if (file_exists($stats_tmp)) { 37 $stats = unserialize(file_get_contents($stats_tmp)); 38 if ($stats['last_calc'] + 3600 > time()) { 39 unset($stats['last_calc']); 40 $this->tpl = array_merge($this->tpl, $stats); 41 return; 42 } 43 } 44 $stats['stats_nodes_active'] = 45 $db->cnt('', 46 'nodes ' . 47 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 48 '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) ' . 49 'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' . 50 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 51 'LEFT JOIN users ON users.id = users_nodes.user_id', 52 'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")', 53 'nodes.id' 54 ); 55 $stats['stats_nodes_total'] = 56 $db->cnt('', 57 'nodes ' . 58 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 59 'LEFT JOIN users ON users.id = users_nodes.user_id', 60 'users.status = "activated"', 61 'nodes.id' 62 ); 63 $stats['stats_backbone'] = 64 $db->cnt('', 65 'nodes ' . 66 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 67 '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) ' . 68 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 69 'LEFT JOIN users ON users.id = users_nodes.user_id', 70 'users.status = "activated" AND l1.status = "active" AND l2.status = "active"', 71 'nodes.id' 72 ); 73 $stats['stats_links'] = 74 $db->cnt('', 75 'nodes ' . 76 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 77 '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) ' . 78 'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' . 79 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 80 'LEFT JOIN users ON users.id = users_nodes.user_id', 81 'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")', 82 'l1.id' 83 ); 84 $stats['stats_aps'] = 85 $db->cnt('', 86 'nodes ' . 87 'INNER JOIN links ON links.node_id = nodes.id AND links.type = "ap" AND links.status = "active" ' . 88 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 89 'LEFT JOIN users ON users.id = users_nodes.user_id', 90 'users.status = "activated"', 91 'links.id' 92 ); 93 $stats['stats_services_active'] = 94 $db->cnt('', 95 'nodes_services', 96 'nodes_services.status = "active"' 97 ); 98 $stats['stats_services_total'] = 99 $db->cnt('', 100 'nodes_services', 101 '' 102 ); 103 $this->tpl = array_merge($this->tpl, $stats); 104 $stats['last_calc'] = time(); 105 if (is_writable($stats_tmp) || !file_exists($stats_tmp)) { 106 $h = @fopen($stats_tmp, "w"); 107 @fwrite($h, serialize($stats)); 108 @fclose($h); 109 } 110 } 111 33 112 function output() { 34 113 if ($this->hide) return; … … 99 178 $this->tpl['link_logout'] = makelink(array("page" => "users", "action" => "logout")); 100 179 parse_str(substr(makelink(array("page" => "search"), FALSE, TRUE, FALSE), 1), $this->tpl['query_string']); 101 $this->tpl['stats_nodes_active'] = 102 $db->cnt('', 103 'nodes ' . 104 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 105 '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) ' . 106 'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' . 107 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 108 'LEFT JOIN users ON users.id = users_nodes.user_id', 109 'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")', 110 'nodes.id' 111 ); 112 $this->tpl['stats_nodes_total'] = 113 $db->cnt('', 114 'nodes ' . 115 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 116 'LEFT JOIN users ON users.id = users_nodes.user_id', 117 'users.status = "activated"', 118 'nodes.id' 119 ); 120 $this->tpl['stats_backbone'] = 121 $db->cnt('', 122 'nodes ' . 123 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 124 '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) ' . 125 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 126 'LEFT JOIN users ON users.id = users_nodes.user_id', 127 'users.status = "activated" AND l1.status = "active" AND l2.status = "active"', 128 'nodes.id' 129 ); 130 $this->tpl['stats_links'] = 131 $db->cnt('', 132 'nodes ' . 133 'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' . 134 '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) ' . 135 'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' . 136 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 137 'LEFT JOIN users ON users.id = users_nodes.user_id', 138 'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")', 139 'l1.id' 140 ); 141 $this->tpl['stats_aps'] = 142 $db->cnt('', 143 'nodes ' . 144 'INNER JOIN links ON links.node_id = nodes.id AND links.type = "ap" AND links.status = "active" ' . 145 'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' . 146 'LEFT JOIN users ON users.id = users_nodes.user_id', 147 'users.status = "activated"', 148 'links.id' 149 ); 150 $this->tpl['stats_services_active'] = 151 $db->cnt('', 152 'nodes_services', 153 'nodes_services.status = "active"' 154 ); 155 $this->tpl['stats_services_total'] = 156 $db->cnt('', 157 'nodes_services', 158 '' 159 ); 180 $this->calculate_menu_stats(); 160 181 $main->html->head->add_script("text/javascript", makelink(array("page" => "search", "subpage" => "suggest_js"))); 161 182 return template($this->tpl, __FILE__);
Note: See TracChangeset
for help on using the changeset viewer.
