. if (!defined('EG')) die('Direct access not allowed!'); class Hardware { public static $controllers = array('notebooks','wifi','videocards','printers','scanners','threegcards','soundcards'); //used by UsersController::login() //classId => controller public static $deviceClasses = array( '0403' => 'soundcards', '0280' => 'wifi', '0300' => 'videocards', ); public static $icons = array( 'notebook' => 'H2O/computer-laptop_22.png', 'wifi' => 'H2O/network-wireless_22.png', 'videocard' => 'Crystal/1282042976_hardware.png', 'printer' => 'H2O/printer_22.png', 'scanner' => 'H2O/scanner_22.png', '3G-card' => 'Crystal/usb_22.png', 'soundcard' => 'H2O/audio-card_22.png', ); public static $typeToController = array( 'notebook' => 'notebooks', 'wifi' => 'wifi', 'videocard' => 'videocards', 'printer' => 'printers', 'scanner' => 'scanners', '3G-card' => 'threegcards', 'soundcard' => 'soundcards', ); public static function getControllerFromType($type) { if (array_key_exists($type,self::$typeToController)) { return self::$typeToController[$type]; } return null; } //get the type from the controller public static function getTypeFromController($controller) { $temp = array_flip(self::$typeToController); if (array_key_exists($controller,$temp)) { return $temp[$controller]; } return null; } public static function getTypeFromClass($class) { if (array_key_exists($class,self::$deviceClasses)) { return self::getTypeFromController(self::$deviceClasses[$class]); } return null; } public static function getIconFromType($type) { if (array_key_exists($type,self::$icons)) { return "http://".DOMAIN_NAME."/Public/Img/".self::$icons[$type]; } return null; } public static function getIconFromController($controller) { if ($type = self::getTypeFromController($controller)) { return self::getIconFromType($type); } return null; } public static function getIconFromClass($class) { if (array_key_exists($class,self::$deviceClasses)) { return self::getIconFromController(self::$deviceClasses[$class]); } return null; } public static $commYear = 'not-specified,2010,2009,2008,2007,2006,2005,2004,2003,2002,2001,2000,1999,1998,1997,1996,1995,1994,1993,1992'; } class Printer extends Hardware { public static $vendors = array( "brother" => "brother", "Canon" => "Canon", "EPSON" => "EPSON", "Lexmark" => "Lexmark", "KONICA-MINOLTA" => "KONICA-MINOLTA", "Hewlett-Packard" => "Hewlett-Packard", "Panasonic" => "Panasonic", "RICOH" => "RICOH", "SAMSUNG" => "SAMSUNG", "SHARP" => "SHARP", "TOSHIBA" => "TOSHIBA", "XEROX" => "XEROX", ); public static $compatibility = array( "A Full" => "A-Full", "B Partial" => "B-Partial", "C None" => "C-None", ); public static $interface = "not-specified,USB,Serial,Parallel,Firewire,SCSI,Ethernet"; public static $subtype = "not-specified,laser,inkjet,other"; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } public static function compatibilityList() { return implode(',',array_values(self::$compatibility)); } } class Wifi extends Hardware { public static $vendors = array( "A-LINK" => "A-LINK", "Airlink101" => "Airlink101", "Atheros" => "Atheros", "Belkin" => "Belkin", "Broadcom" => "Broadcom", "CANYON" => "CANYON", "D-Link" => "D-Link", "Hawking" => "Hawking", "Intel" => "Intel", "LevelOne" => "LevelOne", "Linksys" => "Linksys", "NEC" => "NEC", "Netgear" => "Netgear", "Ralink" => "Ralink", "Realtek" => "Realtek", "TOSHIBA" => "TOSHIBA", "TP-LINK" => "TP-LINK", ); public static $interface = array( "not-specified" => "not-specified", "USB" => "USB", "PCI" => "PCI", "PCI-E" => "PCI-E", "mini-PCI" => "mini-PCI", "mini-PCI-E" => "mini-PCI-E", "ExpressCard" => "ExpressCard", "PCMCIA/PC-Card" => "PC-Card", ); public static $interfaceReverse = array( "not-specified" => "not-specified", "USB" => "USB", "PCI" => "PCI", "PCI-E" => "PCI-E", "mini-PCI" => "mini-PCI", "mini-PCI-E" => "mini-PCI-E", "ExpressCard" => "ExpressCard", "PC-Card" => "PCMCIA/PC-Card", ); public static $wifiSelect = 'yes,no'; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } public static function interfaceList() { return implode(',',array_values(self::$interface)); } } class Videocard extends Hardware { public static $vendors = array( "ATI" => "ATI", "NVIDIA" => "NVIDIA", "Intel" => "Intel", ); public static $videoSelect = array( "works with 3D acceleration" => "works_with_3D", "works, but without 3D acceleration" => "works_without_3D", "it does not work" => "does_not_work", ); public static $videoReverse = array( "works_with_3D" => "works with 3D acceleration", "works_without_3D" => "works, but without 3D acceleration", "does_not_work" => "it does not work", ); public static $interface = "not-specified,PCI,AGP,PCI-E,ISA"; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } public static function videoList() { return implode(',',array_values(self::$videoSelect)); } } class Notebooks extends Hardware { public static $vendors = array( "Acer" => "Acer", "Apple" => "Apple", "Asus" => "Asus", "Compal Electronics" => "Compal-Electronics", "COMPAQ" => "COMPAQ", "Dell" => "Dell", "emachines" => "emachines", "FUJITSU" => "FUJITSU", "Gateway" => "Gateway", "Hewlett Packard" => "Hewlett-Packard", "IBM" => "IBM", "Lemote" => "Lemote", "Lenovo" => "Lenovo", "LG" => "LG", "msi" => "msi", "Philco" => "Philco", "Philips" => "Philips", "Panasonic" => "Panasonic", "Sony" => "Sony", "SAMSUNG" => "SAMSUNG", "Thomson" => "Thomson", "TOSHIBA" => "TOSHIBA", ); public static $compatibility = array( "A Platinum" => "A-platinum", "B Gold" => "B-gold", "C Silver" => "C-silver", "D Bronze" => "D-bronze", "E Garbage" => "E-garbage" ); public static $subtypeSelect = 'notebook,netbook,not-specified'; public static $biosSelect = 'not-specified,no,yes'; public static $videoSelect = array( "not specified" => 'not-specified', "yes, with 3D acceleration" => "yes_with_3D", "yes, but without 3D acceleration" => "yes_without_3D", "it does not work" => "no", ); public static $videoReverse = array( "yes_with_3D" => "works with 3D acceleration", "yes_without_3D" => "works but without 3D acceleration", "no" => "it does not work", 'not-specified' => "not specified how it works", "" => "" ); public static $wifiSelect = array( "not specified" => 'not-specified', 'yes' => 'yes', 'no' => 'no', 'there is no wifi card' => 'no-wifi-card', ); public static $wifiReverse = array( "yes" => "it works", "no" => "it does not work", 'not-specified' => "not specified how it works", 'no-wifi-card' => 'there is no wifi card', "" => "" ); public static $webcamSelect = array( 'not specified' => 'not-specified', 'it works' => 'yes', 'it does not work' => 'no', 'there is no webcam' => 'there-is-no-webcam', ); public static $webcamReverse = array( "yes" => "it works", "no" => "it does not work", 'not-specified' => "not specified how it works", 'there-is-no-webcam' => 'there is no webcam', ); public static function videoList() { return implode(',',array_values(self::$videoSelect)); } public static function wifiList() { return implode(',',array_values(self::$wifiSelect)); } public static function webcamList() { return implode(',',array_values(self::$webcamSelect)); } public static function vendorsList() { return implode(',',array_values(self::$vendors)); } public static function compatibilityList() { return implode(',',array_values(self::$compatibility)); } } class ThreeGcards extends Wifi { public static $vendors = array( "AT&T" => "AT-T", "BandRich" => "BandRich", "Franklin Wireless Corporation" => "Franklin-Wireless-Corporation", "Huawei" => "Huawei", "Novatel Wireless" => "Novatel-Wireless", "Option" => "Option", "Sierra Wireless" => "Sierra-Wireless", "T-Mobile" => "T-Mobile", "UTStarcom" => "UTStarcom", "verizon" => "verizon", "Vodafone" => "Vodafone", "ZTE" => "ZTE", ); public static $select = 'yes,no'; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } } class Soundcards extends Hardware { public static $vendors = array( "ALi Corporation" => "ALi-Corporation", "Advanced Micro Devices (AMD)" => "Advanced-Micro-Devices", "Analog Devices" => "Analog-Devices", "ATI Technologies Inc" => "ATI-Technologies-Inc", "Aureal Semiconductor" => "Aureal-Semiconductor", "Avance Logic Inc (ALI)" => "Avance-Logic-Inc", "Aztech System Ltd" => "Aztech-System-Ltd", "Brooktree Corporation" => "Brooktree-Corporation", "C-Media Electronics Inc" => "C-Media-Electronics-Inc", "Cirrus Logic" => "Cirrus-Logic", "Creative Labs" => "Creative-Labs", "Ensoniq" => "Ensoniq", "ESI" => "ESI", "ESS Technology" => "ESS-Technology", "ForteMedia Inc" => "ForteMedia-Inc", "Intel Corporation" => "Intel-Corporation", "Motorola" => "Motorola", "National Semiconductor Corporation" => "National-Semiconductor-Corporation", "Neomagic Corp" => "Neomagic-Corp", "nVidia Corporation" => "nVidia-Corporation", "Realtek" => "Realtek", "RME" => "RME", "S3 Inc" => "S3-Inc", "Silicon Integrated Systems (SiS)" => "Silicon-Integrated-Systems", "Trident Microsystems" => "Trident-Microsystems", "VIA Technologies Inc" => "VIA-Technologies-Inc", "Xilinx Corporation" => "Xilinx-Corporation", "Yamaha Corporation" => "Yamaha-Corporation", ); public static $audioSelect = 'yes,no'; public static $interface = "not-specified,PCI,ISA,USB,Firewire,Parallel,PCI-E,PCMCIA"; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } }