. if (!defined('EG')) die('Direct access not allowed!'); class DownloadController extends BaseController { public function __construct($model, $controller, $queryString) { $this->_topMenuClasses['download'] = " class='currentitem'"; parent::__construct($model, $controller, $queryString); $this->model('HardwareModel'); $data['title'] = 'download - '.Website::$generalName; $this->append($data); } public function index($lang = 'en') { $this->cleverLoad('index'); $this->right($lang); } //get the xml of the archive private function getXml($res) { $xml = null; $xml = "\n"; $xml .= "\n"; $xml .= "\t\n"; $xml .= "\t\th-node project\n"; $xml .= "\t\t".Website::$generalName."\n"; $xml .= "\t\t".date("Y-m-d H:i:s")."\n"; $xml .= "\t\t".License::getInsideXml()."\n"; $xml .= "\t\n"; foreach ($res as $row) { $type = $row['hardware']['type']; $xml .= "\t\n"; $xml .= "\t\t".$row['hardware']['id_hard']."\n"; $xml .= "\t\t".$row['hardware']['type']."\n"; if ($type === 'notebook' or $type === 'printer' or $type === 'host-controller' ) { $xml .= "\t\t".$row['hardware']['subtype']."\n"; } if ($type === 'notebook') { $xml .= "\t\t".translate($row['hardware']['architecture'])."\n"; $xml .= "\t\t".$row['hardware']['bios']."\n"; $xml .= "\t\t".$row['hardware']['can_free_systems_be_installed']."\n"; $xml .= "\t\t".$row['hardware']['prevent_wifi']."\n"; } $xml .= "\t\t".$row['hardware']['model']."\n"; if ($type !== 'notebook') { $xml .= "\t\t\n"; $xml .= "\t\t".$row['hardware']['pci_id']."\n"; } $xml .= "\t\t".$row['hardware']['vendor']."\n"; $xml .= "\t\t".$row['hardware']['kernel']."\n"; $xml .= "\t\t".$row['hardware']['distribution']."\n"; $xml .= "\t\t".$row['hardware']['comm_year']."\n"; if ($type !== 'notebook') { $xml .= "\t\t".$row['hardware']['interface']."\n"; } if ($type === 'notebook' or $type === 'printer' or $type === 'scanner') { $xml .= "\t\t".$row['hardware']['compatibility']."\n"; } else if ($type === '3G-card' or $type === 'wifi') { $xml .= "\t\t".$row['hardware']['wifi_works']."\n"; } else if ($type === 'soundcard') { $xml .= "\t\t".$row['hardware']['sound_card_works']."\n"; } else if ($type === 'bluetooth') { $xml .= "\t\t".$row['hardware']['bluetooth_works']."\n"; } else if ($type === 'webcam') { $xml .= "\t\t".$row['hardware']['webcam_works']."\n"; } else if ($type === 'videocard') { $xml .= "\t\t".$row['hardware']['video_card_works']."\n"; } else if ($type === 'acquisition-card' or $type === 'modem' or $type === 'RAID-adapter' or $type === 'host-controller') { $xml .= "\t\t".$row['hardware']['compatibility']."\n"; } else if ($type === 'fingerprint-reader') { $xml .= "\t\t".$row['hardware']['fingerprint_works']."\n"; } else if ($type === 'ethernet-card') { $xml .= "\t\t".$row['hardware']['ethernet_card_works']."\n"; } else if ($type === 'sd-card-reader') { $xml .= "\t\t".$row['hardware']['sd_card_works']."\n"; } if ($type === 'printer') { $xml .= "\t\t".$row['hardware']['it_tracks_users']."\n"; } if ($type === 'notebook') { $xml .= "\t\t".$row['hardware']['wifi_type']."\n"; $xml .= "\t\t".$row['hardware']['video_card_type']."\n"; $xml .= "\t\t".$row['hardware']['webcam_type']."\n"; $xml .= "\t\t".$row['hardware']['wifi_works']."\n"; $xml .= "\t\t".$row['hardware']['video_card_works']."\n"; $xml .= "\t\t".$row['hardware']['webcam_works']."\n"; } if ($type !== "notebook") { $xml .= "\t\t".$row['hardware']['driver']."\n"; } $xml .= "\t\t\n"; $xml .= "\t\t".$this->baseUrl."/".Hardware::getControllerFromType($type)."/view/".$this->lang."/".$row['hardware']['id_hard']."/".encodeUrl($row['hardware']['model'])."\n"; $xml .= "\t\t".$this->baseUrl."/".Hardware::getControllerFromType($type)."/view/".$this->lang."/".$row['hardware']['id_hard']."\n"; $xml .= "\t\t".$this->baseUrl."/".Hardware::getControllerFromType($type)."/history/".$this->lang."/".$row['hardware']['id_hard']."\n"; $xml .= "\t\n"; } $xml .= "\n"; return $xml; } protected function printXml($lang = 'en', $whereArray) { header ("Content-Type:text/xml"); // header("Content-Type: application/force-download"); // header("Content-Type: application/octet-stream"); // header("Content-Type: application/download"); $filename = array_key_exists('type',$whereArray) ? $whereArray['type'] : "all"; header("Content-Disposition: attachment; filename=h-node-".$filename.".xml;"); $res = $this->m['HardwareModel']->clear()->select()->where($whereArray)->aWhere(array("cleared"=>"no"))->orderBy("type,hardware.id_hard")->send(); $data['xml'] = $this->getXml($res); $this->append($data); $this->clean(); $this->load('xml'); } public function all($lang = 'en') { $this->printXml($lang, array('-deleted'=>'no')); } public function notebooks($lang = 'en') { $this->printXml($lang, array('type'=>'notebook','-deleted'=>'no')); } public function wifi($lang = 'en') { $this->printXml($lang, array('type'=>'wifi','-deleted'=>'no')); } public function videocards($lang = 'en') { $this->printXml($lang, array('type'=>'videocard','-deleted'=>'no')); } public function printers($lang = 'en') { $this->printXml($lang, array('type'=>'printer','-deleted'=>'no')); } public function scanners($lang = 'en') { $this->printXml($lang, array('type'=>'scanner','-deleted'=>'no')); } public function threegcards($lang = 'en') { $this->printXml($lang, array('type'=>'3G-card','-deleted'=>'no')); } public function soundcards($lang = 'en') { $this->printXml($lang, array('type'=>'soundcard','-deleted'=>'no')); } public function webcams($lang = 'en') { $this->printXml($lang, array('type'=>'webcam','-deleted'=>'no')); } public function bluetooth($lang = 'en') { $this->printXml($lang, array('type'=>'bluetooth','-deleted'=>'no')); } public function acquisitioncards($lang = 'en') { $this->printXml($lang, array('type'=>'acquisition-card','-deleted'=>'no')); } public function fingerprintreaders($lang = 'en') { $this->printXml($lang, array('type'=>'fingerprint-reader','-deleted'=>'no')); } public function ethernetcards($lang = 'en') { $this->printXml($lang, array('type'=>'ethernet-card','-deleted'=>'no')); } public function sdcardreaders($lang = 'en') { $this->printXml($lang, array('type'=>'sd-card-reader','-deleted'=>'no')); } public function modems($lang = 'en') { $this->printXml($lang, array('type'=>'modem','-deleted'=>'no')); } public function raidadapters($lang = 'en') { $this->printXml($lang, array('type'=>'RAID-adapter','-deleted'=>'no')); } public function hostcontrollers($lang = 'en') { $this->printXml($lang, array('type'=>'host-controller','-deleted'=>'no')); } }