_request->getParam('bootmenuentryID'); //TODO Error Messages if something failed if(!isset($bootmenuentryID)){ $alphasessionID = $this->_request->getParam('alpha'); $result = $sm->findBy(array('alphasessionID' => $alphasessionID),true); # print_a($result); $this->thisSession = $session->setOptions($result[0]); $this->thisSession->setID($result[0]['sessionID']); } else{ $this->page = $this->_request->getParam('page'); $bootmenuentryID = $this->_request->getParam('bootmenuentryID'); if(!is_numeric($bootmenuentryID)) $this->_redirect('/user/bootmenu/index/page/'.$this->page.'/json/error'); $bootmenuentry = new Application_Model_BootMenuEntries(); $bootmenuentryMapper = new Application_Model_BootMenuEntriesMapper(); $bootmenuentryMapper->find($bootmenuentryID, $bootmenuentry); $n = new Pbs_Session(); $session->setBootosID($bootmenuentry->getBootosID()) ->setBootmenuentryID($bootmenuentry->getID()) ->setTime(time()) ->setIp($_SERVER['REMOTE_ADDR']); $this->thisSession = $n->createSession($session); } } public function indexAction() { } public function getinitramfsAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $bootosID = $this->thisSession->getBootosID(); if(is_dir("../resources/bootos/$bootosID/initramfs/") && is_numeric($bootosID)){ header('Content-Type: application/x-gzip'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="initramfs"'); header('Pragma: no-cache'); header('Expires: 0'); // create file. chdir("../resources/bootos/$bootosID/initramfs/"); $initname = array_pop(scandir("./")); passthru( "cat ".$initname); } } public function getconfigAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $bootmenuentryID = $this->thisSession->getBootmenuentryID(); $bootmenuentry = new Application_Model_BootMenuEntries(); $bmm = new Application_Model_BootMenuEntriesMapper(); $bmm->find($bootmenuentryID,$bootmenuentry); # print_a($bootmenuentry); $configID = $bootmenuentry->getConfigID(); if(is_dir("../resources/config/$configID/config/") && is_numeric($configID)){ header('Content-Type: application/x-gzip'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="config.tgz"'); header('Pragma: no-cache'); header('Expires: 0'); // create the gzipped tarfile. chdir("../resources/config/$configID/config/"); passthru( "tar cz ./"); } } public function getkernelAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $bootosID = $this->thisSession->getBootosID(); if(is_dir("../resources/bootos/$bootosID/kernel/") && is_numeric($bootosID)){ header('Content-Type: application/x-gzip'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="kernel"'); header('Pragma: no-cache'); header('Expires: 0'); // create the gzipped tarfile. chdir("../resources/bootos/$bootosID/kernel/"); $kernelname = array_pop(scandir("./")); passthru( "cat ". $kernelname); } } public function getkclAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $bmeID = $this->thisSession->getBootmenuentryID(); if(is_numeric($bmeID)){ $bmemapper = new Application_Model_BootMenuEntriesMapper(); $bme = new Application_Model_BootMenuEntries(); $bmemapper->find($bmeID,$bme); header('Content-Type: text/html'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="kcl.txt"'); header('Pragma: no-cache'); header('Expires: 0'); if($bme->getKcl() != null) $result = $bme->getKcl() . " alpha=" . $this->_request->getParam('alpha') . " " . $bme->getKclappend(); else $result = "alpha=" . $this->_request->getParam('alpha') . " " .$bme->getKclappend(); echo $result; } } public function getbootmenuentryAction() { // obsolete function (now only for debugging) // after selecting the BootOS it will be saved in session // so getkclAction, getkernelAction, getconfigAction and getinitramfsAction // can be called with session-identifier $return_val = array( 'info' => 'This function is for debugging purpose only', 'kernel' => $this->generateURL('getkernel', 'alpha', $this->thisSession->getAlphasessionID(), "kernel"), 'initramfs' => $this->generateURL('getinitramfs', 'alpha', $this->thisSession->getAlphasessionID(), "initramfs"), 'kcl' => $this->generateURL('getkcl', 'alpha', $this->thisSession->getAlphasessionID(), "kcl.txt"), 'config' => $this->thisSession->getAlphasessionID() ); $ser = serialize($return_val); $this->_forward('index','bootmenu','user', array( 'page' => $this->page, 'json' => $ser )); } private function generateURL($action, $varname, $varvalue, $filename){ $path = '/resource/'. $action .'/' . $varname .'/' . $varvalue .'/file/' . $filename ; $path = "http://" . $_SERVER['SERVER_NAME'] . $path; return $path; } }