public function __construct()
 {
     parent::__construct();
     $this->sdb = HBLoader::LoadComponent('SimpleDevkit/SimpleDB');
     $this->moduledir = MAINDIR . 'includes' . DS . 'modules' . DS . 'Other' . DS . 'styleswitcher' . DS;
     $this->_header();
 }
 * }
 *
 * Under $port variable HostBill will load port in question.
 * For instance: $port = '1/g2';
 * So cycle power of port 1/g2:
 *
 *
 * Connection details loaded from related App are available in $app array.
 * $app['ip'] - holds PDU ip address
 * $app['username'] - holds switch telnet username
 * $app['password'] - holds switch telnet password
 *
 * If you wish to return error, throw new Exception.
 * like: throw new Exception('Something unexpected happen');
 */
$telnet = HBLoader::LoadComponent('Net/Telnet');
$telnet->SetConnection(array('host' => $app['ip'], 'timeout' => 20, 'debug' => true));
$telnet->connect();
$telnet->login(array('login' => $app['username'], 'password' => $app['password'], 'login_prompt' => "\r\nUser:", 'password_prompt' => 'Password:'******'login_success' => 'console>', 'login_fail' => '', 'prompt' => 'console>'));
$telnet->prompt('console#');
$telnet->cmd('enable');
$telnet->prompt('console(config)#');
$telnet->cmd('configure');
$telnet->prompt('console(config-if-' . $port . ')#');
$telnet->cmd('interface ethernet ' . $port);
if ($state) {
    $telnet->cmd('no shutdown');
} else {
    $telnet->cmd('shutdown');
}
$telnet->disconnect();
 *
 * Load available ports into $ports array - HostBill will read from it.
 * I.e.:
 * $ports = array(
 *  "1" => "Port name #1",
 *  "2" => "Port name #2"
 * );
 *
 * Connection details loaded from related App are available in $app array.
 * $app['ip'] - holds Switch ip address
 * $app['read'] - holds SNMP read community, default "public"
 * $app['write'] - holds SNMP write community, default "private"
 *
 *
 * If you wish to return error, throw new Exception.
 * like: throw new Exception('Something unexpected happen');
 */
$ports = array();
/**
 * We're using helper here, but you can use default snmp functions for php
 * http://www.php.net/manual/en/ref.snmp.php
 */
$snmp = HBLoader::LoadComponent('Net/SNMP_wrapper');
$snmp->Connect($app['ip'], 161, $app['read'], 10, 0);
//set timeout to 10sec., retries to 0
$tree = $snmp->GetTree('.1.3.6.1.2.1.2.2.1.2');
if (is_array($tree) && !empty($tree)) {
    foreach ($tree as $k => $itm) {
        $ports[str_ireplace('IF-MIB::ifDescr.', '', $k)] = str_ireplace(array('STRING: ', '"'), '', $itm);
    }
}