Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 1414

Přidáno uživatelem Michal Kliment před asi 12 roky(ů)

Upravy:
- dalsi pokracovani praci na #185 - opraveno zobrazeni zarizeni (jeste zbyva doladit)

Zobrazit rozdíly:

freenetis/branches/network/media/css/style.css
#tabs {
border-width: 0px ! important;
border-bottom: 1px solid #CCCCCC ! important;
}
.ui-corner-all {
freenetis/branches/network/application/i18n/cs_CZ/texts.php
'add new device admin' => 'Přidat nového správce zařízení',
'add new device engineer' => 'Přidat nového technika zařízení',
'add new enum type' => 'Přidat nový výčet',
'add new ethernet interface' => 'Přidat nové ethernetové rozhraní',
'add new fee' => 'Přidat nový poplatek',
'add new filter' => 'Přidat nový filter',
'add new group' => 'Přidat novou skupinu',
......
'add new voip transfer' => 'Přidat nový VoIP převod',
'add new whole device' => 'Přidat nové celé zařízení',
'add new whole device for user' => 'Přidat nové celé zařízení pro uživatele',
'add new wireless interface' => 'Přidat nové bezdrátové rozhraní',
'add new work' => 'Přidat novou práci',
'add new work report' => 'Přidat nový pracovní výkaz',
'add own records' => 'Přidávat vlastní záznamy',
......
'confirmed time' => 'Čas potvrzení',
'confirmed works' => 'Potvrzené práce',
'connected to' => 'Připojeno k',
'connected to device' => 'Připojeno k zařízení',
'connecting place' => 'Přípojné místo',
'connections' => 'Připojení',
'constant symbol' => 'Konstantní symbol',
......
'error: parameter ID is required!' => 'Chyba: parametr ID je povinný!',
'etc' => 'apod',
'ethernet' => 'ethernetové',
'ethernet interfaces' => 'Ethernetová rozhraní',
'example' => 'Příklad',
'exclude numbers' => 'Vynechaná čísla',
'execution time' => 'Doba provádění',
......
'interface name' => 'Název rozhraní',
'interfaces' => 'Rozhraní',
'internal' => 'vnitřní',
'internal interfaces' => 'Vnitřní rozhraní',
'inteligent select' => 'Inteligentní výběr',
'interface detail' => 'Detail rozhraní',
'interface has been successfully saved' => 'Rozhraní bylo úspěšně uloženo.',
......
'monthly member fee' => 'Měsíční členský příspěvek',
'monthly payment rate' => 'Měsíční splátka',
'monthly payment rate of devices' => 'Měsíční splátka zařízení',
'more devices' => 'Více zařízení',
'multiple choice' => 'Vícenásobná volba',
'must be logged in' => 'Musíte se přihlásit.',
'must pay regular fee' => 'Platí pravidelný příspěvek',
freenetis/branches/network/application/helpers/callback.php
}
/**
* Prints value only if it is not empty, else prints dash (or given string)
*
* @author Michal Kliment
* @param type $item
* @param type $name
* @param type $args
*/
public function not_empty($item, $name, $args = array())
{
if ($item->$name === NULL)
{
echo (isset($args[0])) ? $args[0] : '-';
}
else
echo $item->$name;
}
/**
* Callback for percents.
*
* @author Ondrej Fibich
......
*/
public static function bitrate_field ($item, $name, $args = array())
{
$byte = TRUE;
if (isset($args[0]))
$byte = $args[0];
echo network::size($item->bitrate/1024, $byte);
if($item->bitrate)
{
$byte = TRUE;
if (isset($args[0]))
$byte = $args[0];
echo network::size($item->bitrate/1024, $byte);
}
else
echo '-';
}
/**
......
* @param type $item
* @param type $name
*/
public static function connected_device_field ($item, $name)
{
if ($item->device_id)
public static function connected_to_device ($item, $name)
{
if ($item->connected_to_device_id)
{
$class = $title = '';
if ($item->devices_count > 1)
if ($item->connected_to_devices_count == 1)
{
$class = 'more';
$title = $item->devices;
}
echo html::anchor(
url_lang::base().'devices/show/'.$item->device_id,
$item->device_name, array
(
'class' => $class,
'title' => $title
)
);
echo html::anchor(
url_lang::base().'devices/show/'.$item->connected_to_device_id,
$item->connected_to_device_name
);
}
else
{
echo "<span class='more' title='".$item->connected_to_devices."'>".__('More devices')."</span>";
}
}
else
echo "<span style='color: red'>".__('Not connected')."</span>";
{
if (Iface_Model::type_has_link($item->type))
echo "<span style='color: green'>".__('Not connected')."</span>";
else
echo '-';
}
}
/**
......
}
/**
* Callback function to print mode of wireless interface
*
* @author Michal Kliment
* @param object $item
* @param string $name
*/
public static function wireless_mode ($item, $name)
{
echo Iface_Model::get_wireless_mode($item->$name);
}
/**
* Callback function to print frequence of wireless segment
*
* @author Michal Kliment
......
}
/**
* Callback function to print mode of wireless interface
*
* @author Michal Kliment
* @param object $item
* @param string $name
*/
public static function wireless_mode ($item, $name)
{
echo Link_Model::get_wireless_norm($item->wireless_mode);
}
/**
* Callback for true false values.
*
* @author Ondrej Fibich
freenetis/branches/network/application/models/iface.php
);
/**
* Human format for modes
* Human format for port modes
*
* @var array
*/
......
);
/**
* Boolean value if iface type can have link
*
* @var array
*/
private static $type_has_link = array
(
self::TYPE_WIRELESS => TRUE,
self::TYPE_ETHERNET => TRUE,
self::TYPE_PORT => TRUE,
self::TYPE_BRIDGE => FALSE,
self::TYPE_VLAN => FALSE,
self::TYPE_INTERNAL => FALSE
);
/**
* Boolean value if iface type can have mac address
*
* @var array
*/
private static $type_has_mac_address = array
(
self::TYPE_WIRELESS => TRUE,
self::TYPE_ETHERNET => TRUE,
self::TYPE_PORT => FALSE,
self::TYPE_BRIDGE => TRUE,
self::TYPE_VLAN => FALSE,
self::TYPE_INTERNAL => TRUE
);
/**
* Tests if type can have link
*
* @author Michal Kliment
* @param type $type
* @return boolean
*/
public static function type_has_link($type)
{
if (isset(self::$type_has_link[$type]))
return self::$type_has_link[$type];
else
return FALSE;
}
/**
* Tests if type can have mac address
*
* @author Michal Kliment
* @param type $type
* @return boolean
*/
public static function type_has_mac_address($type)
{
if (isset(self::$type_has_mac_address[$type]))
return self::$type_has_mac_address[$type];
else
return FALSE;
}
/**
* Returns type of current interface
*
* @author Michal Kliment
......
* @param int $device_id
* @return Mysql_Result object
*/
public function get_all_ifaces_of_device($device_id, $duplicates = FALSE, $type = NULL)
{
$group_by = '';
// removes duplicates
if (!$duplicates)
$group_by = 'GROUP BY i.id';
public function get_all_ifaces_of_device($device_id, $type = NULL)
{
$where = '';
if ($type)
$where = 'AND i.type = '.intval($type);
return $this->db->query("
SELECT i.id, i.id AS iface_id, i.link_id, l.name AS link_name,
i.mac, i.name, i.comment, ip.subnet_id, sb.name as subnet_name,
ip.id AS ip_address_id, ip.ip_address,
32-log2((~INET_ATON(sb.netmask) & 0xffffffff) + 1) AS subnet_range,
i.type, number, port_mode, bitrate
SELECT
i.id, i.id AS iface_id, i.link_id, l.name AS link_name,
i.mac, i.name, i.comment, i.type, i.number, i.port_mode, l.bitrate,
cd.id AS connected_to_device_id, cd.name AS connected_to_device_name,
COUNT(*) AS connected_to_devices_count,
GROUP_CONCAT(cd.name SEPARATOR ', \\n') AS connected_to_devices
FROM ifaces i
LEFT JOIN ip_addresses ip ON ip.iface_id = i.id
LEFT JOIN links l ON i.link_id = l.id
LEFT JOIN subnets sb ON ip.subnet_id = sb.id
LEFT JOIN ifaces ci ON ci.link_id = l.id AND ci.id <> i.id AND
(
i.type <> ? OR
(
i.type = ? AND
(
i.wireless_mode = ? AND ci.wireless_mode = ?
) OR i.wireless_mode = ?
)
)
LEFT JOIN devices cd ON ci.device_id = cd.id
WHERE i.device_id = ? $where
$group_by
GROUP BY i.id
ORDER BY i.number, i.type, i.name
", array($device_id));
", array
(
self::TYPE_WIRELESS,
self::TYPE_WIRELESS,
self::WIRELESS_MODE_CLIENT,
self::WIRELESS_MODE_AP,
self::WIRELESS_MODE_AP,
$device_id
));
}
/**
......
JOIN vlans v ON iv.vlan_id = v.id
WHERE vi.device_id = ? AND vi.type = ?
ORDER BY tag_802_1q
", array($device_id, Iface_Model::TYPE_VLAN));
", array($device_id, self::TYPE_VLAN));
}
/**
* Returns all wireless interfaces of device
*
* @author Michal Kliment
* @param type $device_id
* @return type
*/
public function get_all_wireless_ifaces_of_device($device_id)
{
return $this->db->query("
SELECT
wi.id, wi.name, wi.mac, wi.link_id, l.name AS link_name,
l.wireless_ssid, wi.wireless_mode, wi.type,
cd.id AS connected_to_device_id, cd.name AS connected_to_device_name,
COUNT(*) AS connected_to_devices_count,
GROUP_CONCAT(cd.name SEPARATOR ', \\n') AS connected_to_devices
FROM ifaces wi
LEFT JOIN links l ON wi.link_id = l.id
LEFT JOIN ifaces ci ON ci.link_id = l.id AND ci.id <> wi.id AND
(
(wi.wireless_mode = ? AND ci.wireless_mode = ?) OR
wi.wireless_mode = ?
)
LEFT JOIN devices cd ON ci.device_id = cd.id
WHERE wi.device_id = ? AND wi.type = ?
GROUP BY wi.id
", array
(
self::WIRELESS_MODE_CLIENT,
self::WIRELESS_MODE_AP,
self::WIRELESS_MODE_AP,
$device_id,
self::TYPE_WIRELESS
));
}
/**
* Returns all ifaces of device with IP address as gateway
freenetis/branches/network/application/controllers/devices.php
'grids' => array()
);
$ifaces = $iface_model->get_all_ifaces_of_device($device->id, TRUE);
/**
* @todo Write new function
*/
//$ifaces = $iface_model->get_all_ifaces_of_device($device->id, TRUE);
$grid = new Grid(url_lang::base().'devices', null, array
(
......
$grid_ifaces->field('name')
->label(__('name'));
/*$grid_ifaces->field('mac')
->label(__('MAC'));*/
$grid_ifaces->callback_field('mac')
->callback('callback::not_empty')
->label(__('MAC'))
->class('center');
/*$grid_ifaces->link_field('link_id')
->link('links/show', 'link_name')
->label('Link');*/
$grid_ifaces->callback_field('connected_to_device')
->callback('callback::connected_to_device')
->class('center');
$actions = $grid_ifaces->grouped_action_field();
......
}
$grid_ifaces->datasource($ifaces);
// internal interfaces of device
$internal_ifaces = $iface_model->get_all_ifaces_of_device(
$device_id, Iface_Model::TYPE_INTERNAL
);
// grid
$grid_internal_ifaces = new Grid(url_lang::base().'devices', null, array
(
'use_paginator' => false,
'use_selector' => false,
'total_items' => count($internal_ifaces)
));
if ($this->acl_check_new(get_class($this),'iface',$member_id))
{
$grid_internal_ifaces->add_new_button(
url_lang::base().'ifaces/add/'.$device_id.'/'.Iface_Model::TYPE_INTERNAL,
__('Add new internal interface')
);
}
$grid_internal_ifaces->field('name')
->label(__('name'));
$grid_internal_ifaces->field('mac')
->label(__('MAC'));
$actions = $grid_internal_ifaces->grouped_action_field();
if ($this->acl_check_view(get_class($this),'iface',$member_id))
{
$actions->add_action('id')
->icon_action('show')
->url('devices/show_iface')
->class('popup_link');
}
if ($this->acl_check_edit(get_class($this),'iface',$member_id))
{
$actions->add_action('id')
->icon_action('edit')
->url('ifaces/edit')
->class('popup_link');
}
if ($this->acl_check_delete('Devices_Controller', 'iface', $member_id))
{
$actions->add_action('id')
->icon_action('delete')
->url('ifaces/delete')
->class('delete_link popup_link');
}
$grid_internal_ifaces->datasource($internal_ifaces);
// ethernet interfaces of device
$ethernet_ifaces = $iface_model->get_all_ifaces_of_device(
$device_id, Iface_Model::TYPE_ETHERNET
);
// grid
$grid_ethernet_ifaces = new Grid(url_lang::base().'devices', null, array
(
'use_paginator' => false,
'use_selector' => false,
'total_items' => count($ethernet_ifaces)
));
if ($this->acl_check_new(get_class($this),'iface',$member_id))
{
$grid_ethernet_ifaces->add_new_button(
url_lang::base().'ifaces/add/'.$device_id.'/'.Iface_Model::TYPE_ETHERNET,
__('Add new ethernet interface')
);
}
$grid_ethernet_ifaces->field('name')
->label(__('name'));
$grid_ethernet_ifaces->field('mac')
->label(__('MAC'));
$grid_ethernet_ifaces->callback_field('connected_to_device')
->callback('callback::connected_to_device');
$actions = $grid_ethernet_ifaces->grouped_action_field();
if ($this->acl_check_view(get_class($this),'iface',$member_id))
{
$actions->add_action('id')
->icon_action('show')
->url('devices/show_iface')
->class('popup_link');
}
if ($this->acl_check_edit(get_class($this),'iface',$member_id))
{
$actions->add_action('id')
->icon_action('edit')
->url('ifaces/edit')
->class('popup_link');
}
if ($this->acl_check_delete('Devices_Controller', 'iface', $member_id))
{
$actions->add_action('id')
->icon_action('delete')
->url('ifaces/delete')
->class('delete_link popup_link');
}
$grid_ethernet_ifaces->datasource($ethernet_ifaces);
// wireless interfaces of device
$wireless_ifaces = $iface_model->get_all_wireless_ifaces_of_device($device->id);
// grid
$grid_wireless_ifaces = new Grid(url_lang::base().'devices', null, array
(
'use_paginator' => false,
'use_selector' => false,
'total_items' => count($wireless_ifaces)
));
if ($this->acl_check_new(get_class($this),'iface',$member_id))
{
$grid_wireless_ifaces->add_new_button(
url_lang::base().'ifaces/add/'.$device_id.'/'.Iface_Model::TYPE_WIRELESS,
__('Add new wireless interface')
);
}
$grid_wireless_ifaces->callback_field('wireless_mode')
->callback('callback::wireless_mode')
->label(__('Mode'));
$grid_wireless_ifaces->field('name')
->label(__('name'));
$grid_wireless_ifaces->field('wireless_ssid')
->label(__('SSID'));
$grid_wireless_ifaces->field('mac')
->label(__('MAC'));
$grid_wireless_ifaces->callback_field('connected_to_device')
->callback('callback::connected_to_device');
$actions = $grid_wireless_ifaces->grouped_action_field();
if ($this->acl_check_view(get_class($this),'iface',$member_id))
{
$actions->add_action('id')
->icon_action('show')
->url('devices/show_iface')
->class('popup_link');
}
if ($this->acl_check_edit(get_class($this),'iface',$member_id))
{
$actions->add_action('id')
->icon_action('edit')
->url('ifaces/edit')
->class('popup_link');
}
if ($this->acl_check_delete('Devices_Controller', 'iface', $member_id))
{
$actions->add_action('id')
->icon_action('delete')
->url('ifaces/delete')
->class('delete_link popup_link');
}
$grid_wireless_ifaces->datasource($wireless_ifaces);
// vlans
$vlan_ifaces = $iface_model->get_all_vlan_ifaces_of_device($device->id);
......
if ($this->acl_check_new(get_class($this),'vlan_iface',$member_id))
{
$grid_vlan_ifaces->add_new_button(
url_lang::base().'vlan_ifaces/add/0/'.$device_id,
url_lang::base().'ifaces/add/'.$device_id.'/'.Iface_Model::TYPE_VLAN,
__('Add new VLAN interface')
);
}
......
$grid_vlan_ifaces->datasource($vlan_ifaces);
// ip addresses of device
$ip_address_model = new Ip_address_Model();
$ips = $ip_address_model->get_ip_addresses_of_device($device_id);
$grid_ips = new Grid(url_lang::base().'devices', null, array
(
'use_paginator' => false,
'use_selector' => false,
'total_items' => count($ips)
));
if ($this->acl_check_new(get_class($this), 'ip_address', $member_id))
{
$grid_ips->add_new_button(
url_lang::base().'ip_addresses/add/'.$device_id,
__('Add new ip address'),
array
(
'title' => __('Add new ip address'),
'class' => 'popup_link'
)
);
}
$grid_ips->callback_field('ip_address')
->label(__('IP address'))
->callback('callback::ip_address_field', TRUE, FALSE, FALSE);
$grid_ips->link_field('subnet_id')
->link('subnets/show', 'subnet_name')
->label('Subnet');
$grid_ips->callback_field('id')
->label(__('Interface').' / '.__('VLAN Interface'))
->callback('callback::iface_vlan_iface_field');
$actions = $grid_ips->grouped_action_field();
if ($this->acl_check_view('Devices_Controller', 'ip_address', $member_id))
{
$actions->add_action('id')
->icon_action('show')
->url('ip_addresses/show')
->class('popup_link');
}
if ($this->acl_check_edit('Devices_Controller', 'ip_address', $member_id))
{
$actions->add_action('id')
->icon_action('edit')
->url('ip_addresses/edit')
->class('popup_link');
}
if ($this->acl_check_delete('Devices_Controller', 'ip_address', $member_id))
{
$actions->add_action('id')
->icon_action('delete')
->url('ip_addresses/delete')
->class('delete_link popup_link');
}
$grid_ips->datasource($ips);
// ports of device
$ports = $iface_model->get_all_ifaces_of_device($device->id, FALSE, Iface_Model::TYPE_PORT);
$ports = $iface_model->get_all_ifaces_of_device(
$device->id, Iface_Model::TYPE_PORT
);
$grid_ports = new Grid('devices', null, array
(
......
if ($this->acl_check_new(get_class($this),'port',$member_id))
{
$grid_ports->add_new_button(
url_lang::base().'ports/add/'.$device_id,
url_lang::base().'ifaces/add/'.$device_id.'/'.Iface_Model::TYPE_PORT,
__('Add new port'),
array
(
......
->class('center');
$grid_ports->field('name')
->label('Port name')
->label('Name')
->class('center');
$grid_ports->callback_field('mode')
......
->callback('callback::bitrate_field', FALSE)
->class('center');
$grid_ports->link_field('link_id')
->link('links/show', 'link_name')
->label('Link');
$grid_ports->callback_field('connected_to_device')
->callback('callback::connected_to_device');
/*$grid_ports->field('vlan_count')
->label('Vlans')
......
}
$grid_ports->datasource($ports);
// ip addresses of device
$ip_address_model = new Ip_address_Model();
$ips = $ip_address_model->get_ip_addresses_of_device($device_id);
$grid_ips = new Grid(url_lang::base().'devices', null, array
(
'use_paginator' => false,
'use_selector' => false,
'total_items' => count($ips)
));
if ($this->acl_check_new(get_class($this), 'ip_address', $member_id))
{
$grid_ips->add_new_button(
url_lang::base().'ip_addresses/add/'.$device_id,
__('Add new ip address'),
array
(
'title' => __('Add new ip address'),
'class' => 'popup_link'
)
);
}
$grid_ips->callback_field('ip_address')
->label(__('IP address'))
->callback('callback::ip_address_field', TRUE, FALSE, FALSE);
$grid_ips->link_field('subnet_id')
->link('subnets/show', 'subnet_name')
->label('Subnet');
$grid_ips->callback_field('id')
->label(__('Interface').' / '.__('VLAN Interface'))
->callback('callback::iface_vlan_iface_field');
$actions = $grid_ips->grouped_action_field();
if ($this->acl_check_view('Devices_Controller', 'ip_address', $member_id))
{
$actions->add_action('id')
->icon_action('show')
->url('ip_addresses/show')
->class('popup_link');
}
if ($this->acl_check_edit('Devices_Controller', 'ip_address', $member_id))
{
$actions->add_action('id')
->icon_action('edit')
->url('ip_addresses/edit')
->class('popup_link');
}
if ($this->acl_check_delete('Devices_Controller', 'ip_address', $member_id))
{
$actions->add_action('id')
->icon_action('delete')
->url('ip_addresses/delete')
->class('delete_link popup_link');
}
$grid_ips->datasource($ips);
$gps = "";
if (!empty($device->address_point->gps))
......
$view->content->table_device_engineers = $grid_device_engineers;
$view->content->table_device_admins = $grid_device_admins;
$view->content->ifaces = $grid_ifaces;
$view->content->vlan_ifaces = $grid_vlan_ifaces;
$view->content->vlan_ifaces = (count($vlan_ifaces)) ? $grid_vlan_ifaces : '';
$view->content->port_ifaces = (count($ports)) ? $grid_ports : '';
$view->content->table_ip_addresses = $grid_ips;
$view->content->wireless_ifaces = ''; ////// FIX ME !!!!!!!!!!!!!
$view->content->ethernet_ifaces = '';
$view->content->ethernet_ifaces = (count($ethernet_ifaces)) ? $grid_ethernet_ifaces : '';
$view->content->internal_ifaces = (count($internal_ifaces)) ? $grid_internal_ifaces : '';
$view->content->wireless_ifaces = (count($wireless_ifaces)) ? $grid_wireless_ifaces : '';
$view->content->bridge_ifaces = '';
$view->content->gps = $gps;
$view->content->gpsx = !empty($gps) ? $gps_result->gpsx : '';
freenetis/branches/network/application/upgrade_sql/upgrade_sql.php
"ALTER TABLE `links` CHANGE `medium_id` `medium` INT( 11 ) NOT NULL",
"ALTER TABLE `links`
ADD `wireless_ssid` INT( 11 ) NULL DEFAULT NULL AFTER `duplex` ,
ADD `wireless_ssid` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `duplex`,
ADD `wireless_norm` INT( 11 ) NULL DEFAULT NULL AFTER `wireless_ssid` ,
ADD `wireless_frequency` INT( 11 ) NULL DEFAULT NULL AFTER `wireless_norm` ,
ADD `wireless_channel` INT( 11 ) NULL DEFAULT NULL AFTER `wireless_frequency` ,
......
"ALTER TABLE `ifaces_vlans`
ADD FOREIGN KEY ( `vlan_id` )
REFERENCES `vlans` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT ;"
REFERENCES `vlans` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT ;",
"ALTER TABLE `ip_addresses` DROP `redirect`"
);
freenetis/branches/network/application/views/devices/show.php
<br class="clear" />
<br />
<br />
<?php echo $sec_links ?>
<br />
<div id="tabs">
<ul class="tabs" style="font-size: 12px;">
<li class="ui-corner-all"><a href="#interfaces"><?php echo __('Interfaces') ?></a></li>
<?php if ($wireless_ifaces != ''): ?>
<li class="ui-corner-all"><a href="#wireless_interfaces"><?php echo __('Wireless interfaces') ?></a></li>
<?php if ($internal_ifaces != ''): ?>
<li class="ui-corner-all"><a href="#internal_interfaces"><?php echo __('Internal interfaces') ?></a></li>
<?php endif ?>
<?php if ($ethernet_ifaces != ''): ?>
<li class="ui-corner-all"><a href="#ethernet_interfaces"><?php echo __('Ethernet interfaces') ?></a></li>
<?php endif ?>
<?php if ($wireless_ifaces != ''): ?>
<li class="ui-corner-all"><a href="#wireless_interfaces"><?php echo __('Wireless interfaces') ?></a></li>
<?php endif ?>
<?php if ($vlan_ifaces != ''): ?>
<li class="ui-corner-all"><a href="#vlan_interfaces"><?php echo __('Vlan interfaces') ?></a></li>
<?php endif ?>
......
</div>
<?php } ?>
<!-- wireless interfaces -->
<!-- internal interfaces -->
<?php if ($this->acl_check_view(get_class($this),'iface',$device->user->member_id)) { ?>
<div id="wireless_interfaces">
<?php echo $wireless_ifaces ?>
<div id="internal_interfaces">
<?php echo $internal_ifaces ?>
</div>
<?php } ?>
<!-- ethernet interfaces -->
<?php if ($this->acl_check_view(get_class($this),'iface',$device->user->member_id)) { ?>
<div id="ethernet_interfaces">
<?php echo $ethernet_ifaces ?>
</div>
<?php } ?>
<!-- wireless interfaces -->
<?php if ($this->acl_check_view(get_class($this),'iface',$device->user->member_id)) { ?>
<div id="wireless_interfaces">
<?php echo $wireless_ifaces ?>
</div>
<?php } ?>
<!-- vlan interfaces -->
<?php if ($this->acl_check_view(get_class($this),'iface',$device->user->member_id)) { ?>
<div id="vlan_interfaces">
......
<!-- bridge interfaces -->
<?php if ($this->acl_check_view(get_class($this),'iface',$device->user->member_id)) { ?>
<div id="bridge_interfaces">
<?php echo $bridge_ifaces ?>
</div>
<?php } ?>

Také k dispozici: Unified diff