summaryrefslogblamecommitdiffstats
path: root/application/modules/user/controllers/BootmenuController.php
blob: 627d37c16c38b1afcd68754117bac4931b68a796 (plain) (tree)
1
2
3
4
5
6
7
8
9
10

     
                                                            
 





                                         

                          
                                                      





                                                                                       
                        




                                                                                                           


                                                                    
         


                                 























































































































































































































                                                                                                                                                                                                                                                                      

     







































                                                                                        


 











 
<?php

class user_BootmenuController extends Zend_Controller_Action
{
	
	protected $bootmenuMapper;
	protected $bootmenuentriesMapper;
	protected $membershipMapper;
	protected $membership;
	
    public function init()
    {
        if (Zend_Auth::getInstance()->hasIdentity()) {
			$userIDsNamespace = Zend_Session::namespaceGet('userIDs');
			if($userIDsNamespace['membershipID'] ==''){
				$this->_redirect('/user/index');
			}
			
			$this->bootmenuMapper = new Application_Model_BootMenuMapper();
			
			$this->membershipMapper = new Application_Model_MembershipMapper();
			$this->membership = new Application_Model_Membership();
			$this->membershipMapper->find($userIDsNamespace['membershipID'],$this->membership);

			$this->db = Zend_Db_Table::getDefaultAdapter();
		} else {
			$this->_helper->redirector('login', 'auth');
		}
   	}

    public function indexAction()
    {
    	$this->bootMenumapper = new Application_Model_BootMenuMapper();
	    $this->bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper();
	    $bootosMapper = new Application_Model_BootOsMapper();
	    $configMapper = new Application_Model_ConfigMapper();
	   
	    if(true){    		
	    	$bootmenu = $this->bootmenuMapper->findBy('groupID', $this->membership->getGroupID());
	    	foreach ($bootmenu as $bm){
		    	$bootmenuID = $bm->getID();
		    	$bootmenuentries[$bootmenuID] = $this->bootmenuentriesMapper->findBy('bootmenuID',$bootmenuID);
		    	foreach ($bootmenuentries[$bootmenuID] as $bootmenuentry){
		    		$bootmenuentry->setBootosID("[".$bootmenuentry->getBootosID()."] ".$bootosMapper->find($bootmenuentry->getBootosID())->getTitle());
					$bootmenuentry->setConfigID("[".$bootmenuentry->getConfigID()."] ".$configMapper->find($bootmenuentry->getConfigID())->gettitle());
		    	}
	    	}
	    }else{	

	    	$bootmenu = $this->bootmenuMapper->findBy('membershipID', $this->membership->getID());
	    	$bootmenuID = $bootmenu[0]->getID();
	    	$bootmenuentries[$bootmenuID] = $this->bootmenuentriesMapper->findBy('bootmenuID',$bootmenuID);
	    	foreach ($bootmenuentries[$bootmenuID] as $bootmenuentry){
	    		$bootmenuentry->setBootosID("[".$bootmenuentry->getBootosID()."] ".$bootosMapper->find($bootmenuentry->getBootosID())->getTitle());
				$bootmenuentry->setConfigID("[".$bootmenuentry->getConfigID()."] ".$configMapper->find($bootmenuentry->getConfigID())->gettitle());
	    	}
	    }	
	    	
	    	$this->view->bootmenulist = $bootmenu;
	    	$this->view->bootmenuentrylist = $bootmenuentries;
	    	
    }

    public function addbootmenuentryAction()
    {
    	$bootmenuID = $this->_request->getParam('bootmenuID');
    	$bootosmapper = new Application_Model_BootOsMapper();
    	$configmapper = new Application_Model_ConfigMapper();

    	if (!isset($_POST["addbootmenuentry"])){
    	    $addbootmenuentryForm = new user_Form_BootmenuEntriesAdd(array('bootoslist'=>$bootosmapper->fetchAll(), 'maxorder'=> $this->_request->getParam('maxorder'), 'configlist'=>$configmapper->fetchAll()));  
    	    $addbootmenuentryForm->populate(array('order' => $this->_request->getParam('maxorder')));
    	    unset($_POST['kcl']);
    	    unset($_POST['configID']);
    	    $addbootmenuentryForm->populate($_POST);
    	} else {
    			
    	        $addbootmenuentryForm = new user_Form_BootmenuEntriesAdd(array('bootoslist'=>$bootosmapper->fetchAll(), 'maxorder'=> $this->_request->getParam('maxorder'), 'configlist'=>$configmapper->fetchAll()),$_POST);
    	        
    		    if ($addbootmenuentryForm->isValid($_POST)) {
    		    	
    		    	$bootmenuentry = new Application_Model_BootMenuEntries($_POST);
    		    	$bootmenuentry->setBootmenuID($bootmenuID);
    		    	    		    	
    		        $bootmenuentrymapper = new Application_Model_BootMenuEntriesMapper();

    		    	try {  
    		    	    if($bootmenuentry->getOrder() < $this->_request->getParam('maxorder')){
    		    			$bootmenuentry->setOrder($bootmenuentry->getOrder());
 							$bootmenuentrymapper->order($bootmenuentry);
    		    		}

    		    		//print_a($bootmenuentry);
    		    		
    		            $bootmenuentrymapper->save($bootmenuentry);
    		        }catch(Zend_Exception $e)
    		        {
    		            echo "Caught exception: " . get_class($e) . "<br/>";
    					echo "Message: " . $e->getMessage() . "<br/>";
    					
    		        }
					$this->_redirect('/user/bootmenu');
    		     }
    		}
    
            $this->view->addbootmenuentryForm = $addbootmenuentryForm;
    	
    }

    public function createbootmenuAction()
    {
   		$groupmapper = new Application_Model_GroupMapper();
    	
            if (!isset($_POST["createbootmenu"])){
    	        $createbootmenuForm = new user_Form_BootmenuCreate(array('grouplist' => $groupmapper->fetchAll()));
    		} else {
    			
    	        $createbootmenuForm = new user_Form_BootmenuCreate(array('grouplist' => $groupmapper->fetchAll()),$_POST);
    			    			
    		    if ($createbootmenuForm->isValid($_POST)) {

    		    	$bootmenu = new Application_Model_BootMenu($_POST);
    		    	$bootmenu->setMembershipID('1');
    		    	$bootmenu->setCreated(time());
    		        $bootmenumapper = new Application_Model_BootMenuMapper();
    		        
    		    	try {  
    		            $bootmenumapper->save($bootmenu);
    		        }catch(Zend_Exception $e)
    		        {
    		            echo "Caught exception: " . get_class($e) . "<br/>";
    					echo "Message: " . $e->getMessage() . "<br/>";
    					
    		        }
					$this->_redirect('/user/bootmenu');
    		     }
    		}
    
            $this->view->createbootmenuForm = $createbootmenuForm;
    }

    public function editbootmenuAction()
    {
        $bootmenuID = $this->_request->getParam('bootmenuID');
        $groupmapper = new Application_Model_GroupMapper();
        
    	if (!isset($_POST["editbootmenu"])){
    		$bootmenuID = $this->_request->getParam('bootmenuID');
     		if (!isset($bootmenuID) || !is_numeric($bootmenuID)){
   				$this->_redirect('/bootmenu');
    		} else {
    		   $bootmenu = new Application_Model_BootMenu();
    		   $bootmenumapper = new Application_Model_BootMenuMapper();
    		   $bootmenumapper->find($bootmenuID, $bootmenu);
    		   
    		   $editbootmenuForm = new user_Form_BootmenuEdit(array('grouplist' => $groupmapper->fetchAll()));
    		   $editbootmenuForm->populate($bootmenu->toArray()); 
    		}
    	}else{
    		$editbootmenuForm = new user_Form_BootmenuEdit(array('grouplist' => $groupmapper->fetchAll()),$_POST);
    			    			
    		if ($editbootmenuForm->isValid($_POST)) {

    			$bootmenu = new Application_Model_BootMenu($_POST);
    			$bootmenu->setMembershipID('1');
    		   	$bootmenu->setCreated(time());
    		    $bootmenumapper = new Application_Model_BootMenuMapper();
    		    
    		    $bootmenu->setID($bootmenuID);
    		        
    		   	try {  
    		   		
    		       	$bootmenumapper->save($bootmenu);
    		    }catch(Zend_Exception $e)
    		    {
    		    	echo "Caught exception: " . get_class($e) . "<br/>";
    				echo "Message: " . $e->getMessage() . "<br/>";	
    		    }
    		    
				$this->_redirect('/user/bootmenu');
    		}
    			
    	}
    	
    	$this->view->editbootmenuForm = $editbootmenuForm;
    }

    public function editbootmenuentryAction()
    {
        $bootmenuentryID = $this->_request->getParam('bootmenuentryID');
        $bootmenuID = $this->_request->getParam('bootmenuID');
        $bootosmapper = new Application_Model_BootOsMapper();
        $configmapper = new Application_Model_ConfigMapper();
    	$bootmenuentry = new Application_Model_BootMenuEntries();
    	$bootmenuentrymapper = new Application_Model_BootMenuEntriesMapper();
    	
    	if (!isset($_POST["editbootmenuentry"])){
    		$bootmenuentryID = $this->_request->getParam('bootmenuentryID');
     		if (!isset($bootmenuentryID) || !is_numeric($bootmenuentryID)){
   				$this->_redirect('/user/bootmenu');
    		} else {
    		   	
    		   	$bootmenuentrymapper->find($bootmenuentryID, $bootmenuentry);
    		       		   	
    		  	$editbootmenuentryForm = new user_Form_BootmenuEntriesEdit(array('bootoslist'=>$bootosmapper->fetchAll(), 'maxorder' => $this->_request->getParam('maxorder'), 'configlist'=>$configmapper->fetchAll(), 'kcl' => $bootmenuentry->getKcl()));  

    		  	if(!isset($_POST['configID'])){	
    		  		$editbootmenuentryForm->populate($bootmenuentry->toArray()); 
				}
    		  	else{ 
    		  		unset($_POST['kcl']);
    		  		unset($_POST['configID']);
    		  		$editbootmenuentryForm->populate($_POST);
    		  	}
    		}
    	}else{
    		$editbootmenuentryForm = new user_Form_BootmenuEntriesEdit(array('bootoslist'=>$bootosmapper->fetchAll(), 'maxorder'=> $this->_request->getParam('maxorder'), 'configlist'=>$configmapper->fetchAll(), 'kcl' => $bootmenuentry->getKcl()),$_POST);
    			    			
    		if ($editbootmenuentryForm->isValid($_POST)) {
    			
    			$bootmenuentry = new Application_Model_BootMenuEntries($_POST);
    			
    			$bootmenuentry->setBootmenuID($bootmenuID);
    			$bootmenuentry->setID($bootmenuentryID);
 
    		    $bootmenuentrymapper = new Application_Model_BootMenuEntriesMapper();
    		        
    		   	try {  
    		   		if($bootmenuentry->getOrder() < $this->_request->getParam('oldorder'))
    		   			$bootmenuentrymapper->orderbefore($bootmenuentry, $this->_request->getParam('oldorder'));
    		   		else 
    		   			$bootmenuentrymapper->orderafter($bootmenuentry, $this->_request->getParam('oldorder'));
    		   			
    		       	$bootmenuentrymapper->save($bootmenuentry);
    		       	
    		    }catch(Zend_Exception $e)
    		    {
    		    	echo "Caught exception: " . get_class($e) . "<br/>";
    				echo "Message: " . $e->getMessage() . "<br/>";	
    		    }
    		    
				$this->_redirect('/user/bootmenu');
    		}
    			
    	}
    	
    	$this->view->editbootmenuentryForm = $editbootmenuentryForm;
    	
    }

    public function removebootmenuentryAction()
    {
        $bootmenuentryID = $this->_request->getParam('bootmenuentryID');
     	if (!isset($bootmenuentryID) || !is_numeric($bootmenuentryID)){
   			$this->_redirect('/bootmenu');
    	} else {
    		   $bootmenuentry = new Application_Model_BootMenuEntries();
    		   $bootmenuentrymapper = new Application_Model_BootMenuEntriesMapper();
    		   $bootmenuentrymapper->find($bootmenuentryID, $bootmenuentry);
    		   $bootmenuentrymapper->delete($bootmenuentry);
    		   $bootmenuentrymapper->orderremove($bootmenuentry);
    	}
    	$this->_redirect('/user/bootmenu');
    }

    public function deletebootmenuAction()
    {
    	$bootmenuID = $this->_request->getParam('bootmenuID');
     	if (!isset($bootmenuID) || !is_numeric($bootmenuID)){
   			$this->_redirect('/user/bootmenu');
    	} else {
    		   $bootmenu = new Application_Model_BootMenu();
    		   $bootmenu->setID($bootmenuID);
    		   $bootmenumapper = new Application_Model_BootMenuMapper();
    		   $bootmenumapper->delete($bootmenu);
    	}
    	$this->_redirect('/user/bootmenu');
    }

    private function arrayDiff($a, $b){
		foreach($a as $k1 => $i1){
			foreach($b as $k2 => $i2){
				if($i1->getID() == $i2->getBootosID()){
					unset($a[$k1]);
				}
			}
		}
		return $a;
	}
	

}