Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 582

Přidáno uživatelem Michal Kliment před více než 14 roky(ů)

Pridana adresni mapa - graficky prehled vsech subnetu.

Zobrazit rozdíly:

freenetis/trunk/kohana/media/css/address_map.css
body
{
margin: 0px;
padding: 0px;
font-family: Arial;
font-size: 12px;
text-align: center;
}
h2
{
font-size: 40px;
margin: 25px;
}
a
{
border: 0px solid black;
text-decoration: none;
}
.subnet
{
border: 1px solid black;
float:left;
}
#c-box-all
{
width: 1960px;
float: left;
}
#d-box-all
{
width: 1960px;
height: 30px;
}
.c-box
{
border-left: 0px;
border-top: 0px;
border-right: 0px;
border-bottom: 0px;
border-color: black;
border-style: solid;
float:left;
height: 30px;
width: 30px;
font-weight: bold;
text-align: center;
}
.d-box
{
border-left: 0px;
border-top: 0px;
border-right: 0px;
border-bottom: 0px;
border-color: black;
border-style: solid;
float:left;
height: 30px;
width: 30px;
font-weight: bold;
text-align: center;
}
.unused-box
{
border-left: 0px;
border-top: 0px;
border-right: 0px;
border-bottom: 0px;
border-color: #c0c0c0;
border-style: solid;
float:left;
height: 30px;
width: 30px;
font-weight: bold;
text-align: center;
}
.used-box
{
border-left: 0px;
border-top: 0px;
border-right: 0px;
border-bottom: 0px;
border-color: black;
border-style: solid;
float:left;
height: 30px;
width: 30px;
font-weight: bold;
text-align: center;
overflow: hidden;
color: white;
}
.subnet-name
{
vertical-align: middle;
margin-top: 5px;
}
#footer
{
height: 20px;
width: 100%;
border: px solid black;
float: left;
}
freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'additional information' => 'Doplňkové informace',
'address' => 'Adresa',
'address of connecting place' => 'Adresa přípojného místa',
'address map' => 'Adresní mapa',
'address point detail' => 'Detail adresního bodu',
'address point has been successfully deleted' => 'Adresní bod byl úspěšně smazán.',
'address point has been successfully updated' => 'Adresní bod byl úspěšně aktualizován.',
freenetis/trunk/kohana/application/helpers/special.php
}
return url_lang::base().$pre_url.$new_order_by.'/'.$order_by_direction.'/'.$url_array[6+$url_array_ofset].'/'.$url_array[7+$url_array_ofset];
}
/**
* @author Michal Kliment
* Helper to generate rgb code from numbers
* @param int $r
* @param int> $g
* @param int $b
* @return string
*/
public static function RGB($r, $g, $b)
{
$r = dechex($r);
$g = dechex($g);
$b = dechex($b);
if (strlen($r)<2)
$r = '0'.$r;
elseif (strlen($r)>2)
$r = 'ff';
if (strlen($g)<2)
$g = '0'.$g;
elseif (strlen($g)>2)
$g = 'ff';
if (strlen($b)<2)
$b = '0'.$b;
elseif (strlen($b)>2)
$b = 'ff';
return $r.$g.$b;
}
}
freenetis/trunk/kohana/application/controllers/subnets.php
url::redirect(url_lang::base().'subnets/show_all');
}
/**
* @author Michal Kliment
* Function to draw address map
*/
function address_map()
{
// access control
if (!$this->acl_check_view('Devices_Controller', 'subnet'))
Controller::error(ACCESS);
$subnet_model = new Subnet_Model();
$total_subnets = $subnet_model->count_all_subnets();
$subnets = $subnet_model->get_all_subnets(0, $total_subnets, 'inet_aton(network_address)');
$arr_subnets = array();
$arr_subnet_lengths = array();
$background_colors = array();
foreach ($subnets as $subnet)
{
$network_address_segments = explode('.',$subnet->network_address);
$netmask_segments = explode('.',$subnet->netmask);
$arr_subnets[$network_address_segments[0]][$network_address_segments[1]][$network_address_segments[2]][$network_address_segments[3]] = $subnet;
$arr_subnet_lengths[$network_address_segments[0]][$network_address_segments[1]][$network_address_segments[2]][$network_address_segments[3]] = (256-$netmask_segments[0])*(256-$netmask_segments[1])*(256-$netmask_segments[2])*(256-$netmask_segments[3]);
$background_colors[$network_address_segments[0]][$network_address_segments[1]][$network_address_segments[2]][$network_address_segments[3]] = special::RGB(rand(50,150), $network_address_segments[2], $network_address_segments[3]);
}
$view = new View('address_map');
$view->subnets = $arr_subnets;
$view->lengths = $arr_subnet_lengths;
$view->background_colors = $background_colors;
$view->render(TRUE);
}
/**
freenetis/trunk/kohana/application/views/address_map.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo url_lang::lang('texts.Address map') ?> | <?php echo $this->setting->title ?></title>
<?php echo html::link('media/images/favicon.ico', 'shorcut icon', 'image/x-icon', FALSE); ?>
<?php echo html::stylesheet('media/css/address_map.css', 'screen') ?>
<?php echo html::stylesheet('media/css/jquery.autocomplete.css') ?>
<?php echo isset($other_styles) ? $other_styles : '' ?>
</head>
<body <?php echo isset($onload) ? 'onload="'.$onload.'"' : '' ?> >
<?php
foreach ($subnets as $a => $arr_a)
{
foreach ($arr_a as $b => $arr_b)
{
?>
<h2><?php echo $a ?>.<?php echo $b ?>.0.0/16</h2>
<div id="d-box-all">
<div class="d-box"></div>
<?php for ($i=0;$i<256;$i=$i+4): ?>
<div class="d-box"><?php echo $i ?></div>
<?php endfor;
for ($i=0;$i<256;$i++)
{?>
</div>
<div id="c-box-all">
<div class="c-box"><?php echo $i ?></div>
<?php
$j = 0;
while ($j < 256)
{
if (isset($arr_b[$i][$j]))
{?> <a href="<?php echo url_lang::base() ?>subnets/show/<?php echo $arr_b[$i][$j]->id ?>" title="<?php echo $arr_b[$i][$j]->name ?>">
<div class="used-box" style="border-color: #color; background-color: #<?php echo $background_colors[$a][$b][$i][$j] ?>; width: <?php echo $lengths[$a][$b][$i][$j]*7.5 ?>px">
<div class="subnet-name"><?php echo $arr_b[$i][$j]->name ?></div>
</div>
</a><?php
$j += $lengths[$a][$b][$i][$j];
}
else
{
?>
<div class="unused-box"></div>
<?php
$j += 4;
}
}
?>
</div>
<?php
}
?>
<br clear="all">
<?php
}
}
?>
<div id="footer"></div>
</body>
</html>

Také k dispozici: Unified diff