view->pools = $poolMapper->fetchAll(); $clientmapper = new Application_Model_ClientMapper(); $clients = $clientmapper->fetchAll(); foreach($clients as $c){ #$client = new Application_Model_Client($c); $clientsArray[] = $c->toArray(); } $assignedclientmapper = new Application_Model_PoolEntriesMapper(); $assignedclients = $assignedclientmapper->fetchAll(); foreach($assignedclients as $c){ $assignedclientsArray[] = $c->toArray(); } $freeclients = $this->arrayDiff($clientsArray,$assignedclientsArray); #print_a($freeclients); $this->view->freeclients = $freeclients; } public function createpoolAction() { if (!isset($_POST["add"])){ $addfilterform = new Application_Form_Pool(); $this->view->addpool = $addfilterform; }else { $addpoolform = new Application_Form_Pool($_POST); if ($addpoolform->isValid($_POST)) { try{ $pool = new Application_Model_Pool($_POST); $poolmapper = new Application_Model_PoolMapper(); $poolmapper->save($pool); $this->_redirect('/pool'); return; }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; } } } } public function deletepoolAction() { $poolID = $this->_request->getParam('poolID'); // TODO: ACL implementieren ob er den pool löschen darf if(is_numeric($poolID)){ $deletepool = new Application_Model_Pool(); $deletepool->setID($poolID); $poolmapper = new Application_Model_PoolMapper(); $poolmapper->delete($deletepool); } $this->_redirect('/pool'); } public function editpoolAction() { if (!isset($_POST["add"])){ $poolID = $this->_request->getParam('poolID'); $pool = new Application_Model_Pool(); $poolmapper = new Application_Model_PoolMapper(); $poolmapper->find($poolID,$pool); $poolArray = $pool->toArray(); $editpool = new Application_Form_Pool(); $editpool->populate($poolArray); $this->view->editpoolform = $editpool; }else { $addpoolform = new Application_Form_Pool($_POST); if ($addpoolform->isValid($_POST)) { try{ $pool = new Application_Model_Pool($_POST); $pool->setID($this->_request->getParam('poolID')); $poolmapper = new Application_Model_PoolMapper(); $poolmapper->save($pool); $this->_redirect('/pool'); }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; } } } } public function linkclientAction() { $clientID = $this->_request->getParam('clientID'); $poolID = $this->_request->getParam('poolID'); print_a($clientID,$poolID); if(!isset($_POST['clientID']) && ($clientID == '' && $poolID == '')){ print_a($_POST); $clientmapper = new Application_Model_ClientMapper(); $clients = $clientmapper->fetchAll(); foreach($clients as $c){ $clientsArray[] = $c->toArray(); } $assignedclientmapper = new Application_Model_PoolEntriesMapper(); $assignedclients = $assignedclientmapper->fetchAll(); foreach($assignedclients as $c){ $assignedclientsArray[] = $c->toArray(); } $freeclients = $this->arrayDiff($clientsArray,$assignedclientsArray); $poolclient = new Application_Form_PoolClient(array('clients'=> $freeclients)); $this->view->poolclient = $poolclient; }else { #$_POST['poolID'] = $this->_request->getParam('poolID'); $poolclientform = new Application_Form_PoolClient($_POST); try{ $pool = new Application_Model_PoolEntries($_POST); $pool->setPoolID($this->_request->getParam('poolID')); if($pool->getClientID() == ''){ $pool->setClientID($this->_request->getParam('clientID')); } $poolmapper = new Application_Model_PoolEntriesMapper(); $poolmapper->save($pool); $this->_redirect('/pool'); }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; } } } private function arrayDiff($a, $b){ foreach($a as $k1 => $i1){ foreach($b as $k2 => $i2){ if($i1['clientID'] == $i2['clientID']){ unset($a[$k1]); } } } return $a; } public function unlinkclientAction() { $poolentriesID = $this->_request->getParam('poolentriesID'); // TODO: ACL implementieren ob er den filter löschen darf if(is_numeric($poolentriesID)){ $deletepoolentries = new Application_Model_PoolEntries(); $deletepoolentries->setID($poolentriesID); echo "
";
				print_r($deletepoolentries);
				echo "
"; $deletepoolentriesmapper = new Application_Model_PoolEntriesMapper(); $deletepoolentriesmapper->delete($deletepoolentries); echo "ok"; } # echo "ready"; $this->_redirect('/pool'); } }