Редакция 175 | Редакция 177 | К новейшей редакции | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | RSS
Редакция | Автор | № строки | Строка |
---|---|---|---|
2 | diffor | 1 | <?php |
2 | require_once dirname(__FILE__)."/lib/init.php"; |
||
3 | include "./inc/header.htm"; |
||
174 | diffor | 4 | |
5 | // detect network |
||
6 | $addr=$_SERVER['REMOTE_ADDR']; |
||
7 | $snets =& $db->query("SELECT * FROM subnets"); |
||
8 | $is_addr_found = false; |
||
9 | while ($snets->fetchInto($info_snets, DB_FETCHMODE_ASSOC)&&!$is_addr_found) { |
||
10 | list($ip,$mask) = explode('/',$info_snets['subnet']); |
||
176 | diffor | 11 | if (ip2long($addr) >> (32 - $mask) == ip2long($ip) >> (32 - $mask)) { |
12 | $is_addr_found = true; |
||
13 | $curnet = $info_snets['network_id']; |
||
174 | diffor | 14 | } |
15 | } |
||
16 | |||
2 | diffor | 17 | // table header |
18 | echo "<table>"; |
||
19 | |||
20 | $netlist = array(); |
||
42 | diffor | 21 | $netcount = 0; |
22 | |||
23 | $theader1 = "<tr>\n<th rowspan='2'> </th><th rowspan='2'> </th><th rowspan='2'>Ресурс</th>\n"; // category header |
||
24 | $theader2 = "<tr>\n"; // networks header |
||
25 | |||
26 | $ncats =& $db->query("SELECT * FROM netcats"); |
||
27 | while ($ncats->fetchInto($info_ncats, DB_FETCHMODE_ASSOC)) { |
||
28 | $ccnc = 0; // Count networks of current category |
||
29 | $nets =& $db->query("SELECT * FROM networks WHERE netcat_id=".$info_ncats['id']); |
||
30 | while ($nets->fetchInto($info_nets, DB_FETCHMODE_ASSOC)) { |
||
31 | // network name & link |
||
32 | if ($info_nets['link']=="") { $theader2 .= " <th>".$info_nets['network']."</th>\n"; } |
||
33 | else { $theader2 .= " <th><a href='./networks.php?net=".$info_nets['id']."'>".$info_nets['network']."</a></th>\n"; } |
||
34 | // netlist |
||
35 | $netlist[$netcount] = $info_nets['id']; |
||
36 | $netcount++; |
||
37 | $ccnc++; |
||
38 | } |
||
39 | $theader1 .= "<th colspan='".$ccnc."'>".$info_ncats['netcat']."</th>"; |
||
2 | diffor | 40 | } |
42 | diffor | 41 | echo $theader1."\n</tr>\n"; |
42 | echo $theader2."\n</tr>\n"; |
||
2 | diffor | 43 | |
44 | // table body |
||
45 | $cats =& $db->query("SELECT * FROM categories"); |
||
46 | while ($cats->fetchInto($info_cats, DB_FETCHMODE_ASSOC)) { |
||
47 | $res =& $db->query("SELECT * FROM resources WHERE category_id=".$info_cats['id']); |
||
48 | $first = true; |
||
49 | while ($res->fetchInto($info_res, DB_FETCHMODE_ASSOC)) { |
||
13 | diffor | 50 | echo "<tr>\n"; |
2 | diffor | 51 | |
52 | // add rowspan on first resource on category |
||
53 | if ($first) { |
||
13 | diffor | 54 | echo " <td rowspan='".$res->numRows()."'>".$info_cats['category']."</td>\n"; |
2 | diffor | 55 | $first = false; |
56 | } |
||
57 | |||
58 | // resource picture |
||
13 | diffor | 59 | echo " <td><img src='".$info_res['picture']."' alt='".$info_res['resource']."'></td>\n"; |
2 | diffor | 60 | |
61 | // resource name & link |
||
22 | diffor | 62 | echo " <td><a href='./details.php?res=".$info_res['id']."'>".$info_res['resource']."</a></td>\n"; |
2 | diffor | 63 | |
64 | // resource state by network |
||
65 | for ($i=0;$i<$netcount;$i++) { |
||
66 | $curstate =& $db->getOne("SELECT state_id FROM res_net_stat WHERE resource_id=".$info_res['id']." AND network_id=".$netlist[$i]); |
||
67 | $curimg = "./img/state/unknown.png"; |
||
68 | if ($curstate == null) { |
||
13 | diffor | 69 | echo " <td>—</td>\n"; |
2 | diffor | 70 | } |
71 | else { |
||
72 | // !replace in future! |
||
73 | switch ($curstate) { |
||
74 | case '1': |
||
43 | diffor | 75 | $curimg = "./img/state/tick_gold.png"; |
14 | diffor | 76 | $curalt = "Основной ресурс"; |
2 | diffor | 77 | break; |
78 | case '2': |
||
43 | diffor | 79 | $curimg = "./img/state/tick_blue.png"; |
14 | diffor | 80 | $curalt = "Зеркало"; |
2 | diffor | 81 | break; |
82 | case '3': |
||
43 | diffor | 83 | $curimg = "./img/state/tick_green.png"; |
14 | diffor | 84 | $curalt = "Скоростной доступ"; |
2 | diffor | 85 | break; |
86 | case '4': |
||
43 | diffor | 87 | $curimg = "./img/state/tick_gray.png"; |
44 | diffor | 88 | $curalt = "Доступен"; |
89 | break; |
||
90 | case '5': |
||
91 | $curimg = "./img/state/snowflake.png"; |
||
14 | diffor | 92 | $curalt = "Заморожен"; |
2 | diffor | 93 | break; |
94 | } |
||
176 | diffor | 95 | if($netlist[$i]==$curnet) echo " <td color='gold'>"; |
96 | else echo " <td>" |
||
97 | echo "<a href='".$info_res['link_res']."'><img src='".$curimg."' alt='".$curalt."'></a></td>\n"; |
||
2 | diffor | 98 | } |
99 | } |
||
13 | diffor | 100 | echo "</tr>\n"; |
2 | diffor | 101 | } |
102 | } |
||
103 | // table footer |
||
104 | echo "</table>"; |
||
43 | diffor | 105 | include "./inc/legend.php"; |
30 | diffor | 106 | |
2 | diffor | 107 | include "./inc/footer.htm"; |
108 | ?> |