_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); // $session = new Application_Model_Session(); // $sm = new Application_Model_SessionMapper(); // // //TODO Error Messages if something failed // $alphaID = $this->_request->getParam('alpha'); // // if($alphaID != ""){ // $alphasessionID = $alphaID; // $result = $sm->findBy(array('alphasessionID' => $alphasessionID),true); // # print_a($result); // $this->thisSession = $session->setOptions($result[0]); // $this->thisSession->setID($result[0]['sessionID']); // } } public function getvesamenuAction(){ if(is_dir("../resources/ipxe/")){ header('Content-Type: application/octet-stream'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="vesamenu.c32"'); header('Pragma: no-cache'); header('Expires: 0'); chdir("../resources/ipxe/"); header("Content-Length: ".filesize(getcwd()."/vesamenu.c32")); passthru( "cat vesamenu.c32"); }else{ header('HTTP/1.0 404 Not Found'); } } public function getvesamenuconfigAction(){ 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="vesamenu.conf"'); header('Pragma: no-cache'); header('Expires: 0'); $vesamenuView = new Zend_View(); $vesamenuView->addScriptPath(APPLICATION_PATH.'/modules/ipxe/views/scripts/resource/'); $vesamenuView->host = $_SERVER['HTTP_HOST']; // // Request Bootmenu // $pbsFilter = new Pbs_Filter(); // $bootmenuID = $pbsFilter->evaluate(); // // if($bootmenuID != null){ // $vesamenuView->alphaID = $this->thisSession->getAlphasessionID(); // // $bootmenuMapper = new Application_Model_BootMenuMapper(); // $bm = $bootmenuMapper->find($bootmenuID); // $vesamenuView->title = $bm->getTitle(); //// $this->view->startcounter = $bm->getStartcounter(); // // $bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper(); // $res = $bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID),false); // $vesamenuView->bmelist = $res; // // } // else{ // // $vesamenuView->error = "You have no BootMenu."; // } $vesamenu = $vesamenuView->render('getvesamenu.phtml'); header("Content-Length: ".(strlen($vesamenu))); echo $vesamenu; } public function ipxeAction(){ header('Content-Type: text/plain'); $result = "#!ipxe\n"; $result .= "imgfree\n"; $result .= "chain http://".$_SERVER['HTTP_HOST']."/ipxe/resource/getvesamenu/alpha/".$this->thisSession->getAlphasessionID()." http://".$_SERVER['HTTP_HOST']."/ipxe/resource/getvesamenuconfig/alpha/".$this->thisSession->getAlphasessionID(); header("Content-Length: ".(strlen($result))); echo $result; } public function startAction(){ $bootmenuntryID = $this->_request->getParam('bme'); $a = $_SESSION['alphasessionID']; $bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper(); $bootmenuentry = new Application_Model_BootMenuEntries(); $bootmenuentriesMapper->find($bootmenuntryID,$bootmenuentry); $sessionMapper = new Application_Model_SessionMapper(); $session_k = $sessionMapper->findBy(array('alphasessionID' => $a),true); $session = new Application_Model_Session(); $session->setOptions($session_k[0]); $session->setID($session_k[0]['sessionID']); $session->setBootmenuentryID($bootmenuntryID); $session->setBootosID($bootmenuentry->getBootosID()); $sessionMapper->save($session); $this->_redirect('/resource/getkernel/alpha/'.$session->getAlphasessionID()); } }