_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $session = new Application_Model_Session(); $sm = new Application_Model_SessionMapper(); $bootmenuentryID = $this->_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() { $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() { $bootmenuentryID = $this->thisSession->getBootmenuentryID(); $bootmenuentry = new Application_Model_BootMenuEntries(); $bmm = new Application_Model_BootMenuEntriesMapper(); $bmm->find($bootmenuentryID,$bootmenuentry); $configID = $bootmenuentry->getConfigID(); if(is_dir("../resources/config/$configID/") && 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="default.tgz"'); // header('Pragma: no-cache'); // header('Expires: 0'); // // create the gzipped tarfile. chdir("../resources/config/$configID/"); echo getcwd(); passthru( "tar cz ./"); } } public function getkernelAction() { $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() { $bmeID = $this->thisSession->getBootmenuentryID(); if(is_numeric($bmeID)){ $bmemapper = new Application_Model_BootMenuEntriesMapper(); $bme = new Application_Model_BootMenuEntries(); $bootosmapper = new Application_Model_BootOsMapper(); $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()){ $kcl = $bootosmapper->find($bme->getBootosID())->getDefaultkcl(); $result = $kcl . " alpha=" . $this->_request->getParam('alpha') . " file=http://".$_SERVER['HTTP_HOST']."/resource/getconfig/alpha/".$this->_request->getParam('alpha')."/file/default.tgz ".$bme->getKclappend(); }else{ $result = "alpha=" . $this->_request->getParam('alpha') . " file=http://".$_SERVER['HTTP_HOST']."/resource/getconfig/alpha/".$this->_request->getParam('alpha')."/file/default.tgz ".$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() ); $result = $return_val; $result2 = ""; $result2 .= ""; $result2 .= ""; $result2 .= ""; $result2 .= ""; $result2 .= ""; $result2 .= "
info: ".$result['info']."
kernel: ".$result['kernel']."
initramfs: ".$result['initramfs']."
kcl: ".$result['kcl']."
config: ".$result['config']."
"; echo $result2; } private function generateURL($action, $varname, $varvalue, $filename){ $path = '/resource/'. $action .'/' . $varname .'/' . $varvalue .'/file/' . $filename ; $path = "http://" . $_SERVER['SERVER_NAME'] . $path; return $path; } }