From 3d04fb75a980dba20e51dc91afd49f0eb9ee43fe Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 9 Mar 2011 16:31:58 +0100 Subject: Form-Verhalten geändert & Datenbank korrigiert --- application/controllers/FilterController.php | 78 +++++++++++----------------- 1 file changed, 29 insertions(+), 49 deletions(-) (limited to 'application/controllers/FilterController.php') diff --git a/application/controllers/FilterController.php b/application/controllers/FilterController.php index 54bcb19..2853706 100644 --- a/application/controllers/FilterController.php +++ b/application/controllers/FilterController.php @@ -19,27 +19,27 @@ class FilterController extends Zend_Controller_Action public function indexAction() { try{ - $this->_filtermapper = new Application_Model_FilterMapper(); - $this->view->filters = $this->_filtermapper->fetchAll(); + $this->_filtermapper = new Application_Model_FilterMapper(); + $this->view->filters = $this->_filtermapper->fetchAll(); }catch (Zend_Exception $e) { - echo "Error message 2: " . $e->getMessage() . "\n"; + echo "Error message 2: " . $e->getMessage() . "\n"; } } public function addfilterAction() { - if (!isset($_POST["add"])){ - $addfilterform = new Application_Form_FilterAdd(); - $this->view->addfilterform = $addfilterform; + $bmmapper = new Application_Model_BootMenuMapper(); + //TODO get bootmenu by group + $bootmenus = $bmmapper->fetchAll(); + if (!isset($_POST["add"])){ + $addfilterform = new Application_Form_FilterAdd(array('bootmenus'=>$bootmenus)); + $this->view->addfilterform = $addfilterform; }else { - $addfilterform = new Application_Form_FilterAdd($_POST); + $addfilterform = new Application_Form_FilterAdd(array('bootmenus'=>$bootmenus),$_POST); if ($addfilterform->isValid($_POST)) { try{ - $newfilter = new Application_Model_Filter(); - $newfilter->setTitle($_POST['title']); + $newfilter = new Application_Model_Filter($_POST); $newfilter->setCreated(time()); - $newfilter->setDescription($_POST['description']); - $newfilter->setPriority($_POST['priority']); // TODO: Ändere mit ACL $newfilter->setGroupID('1'); @@ -54,6 +54,7 @@ class FilterController extends Zend_Controller_Action echo "Error message 2: " . $e->getMessage() . "\n"; } } + $this->view->addfilterform = $addfilterform; } } @@ -73,6 +74,9 @@ class FilterController extends Zend_Controller_Action public function editfilterAction() { + $bmmapper = new Application_Model_BootMenuMapper(); + //TODO get bootmenu by group + $bootmenus = $bmmapper->fetchAll(); if (!isset($_POST["add"])){ // TODO: ACL implementieren ob er editieren darf $filterID = $this->_request->getParam('filterID'); @@ -83,7 +87,7 @@ class FilterController extends Zend_Controller_Action $filtermapper->find($filterID,$filter); $filter2 = $filter->toArray(); - $editfilterform = new Application_Form_FilterAdd(); + $editfilterform = new Application_Form_FilterAdd(array('bootmenus'=>$bootmenus)); $editfilterform->populate($filter2); $this->view->editfilterform = $editfilterform; @@ -91,7 +95,7 @@ class FilterController extends Zend_Controller_Action try{ $filterID = $this->_request->getParam('filterID'); - $editfilterform = new Application_Form_FilterAdd($_POST); + $editfilterform = new Application_Form_FilterAdd(array('bootmenus'=>$bootmenus),$_POST); //TODO: ACL integrieren $_POST['groupID'] = 1; $_POST['membershipID'] = 1; @@ -102,16 +106,13 @@ class FilterController extends Zend_Controller_Action $newfilterenty->setID($this->_request->getParam('filterID')); $newfilter2 = new Application_Model_FilterMapper(); $newfilter2->save($newfilterenty); - echo 'valid'; - } - else - { - echo 'not valid'; - } + echo 'valid'; + $this->_redirect('/filter'); + } + $this->view->editfilterform = $editfilterform; }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; } - $this->_redirect('/filter'); } } @@ -120,23 +121,15 @@ class FilterController extends Zend_Controller_Action // TODO: ACL implementieren ob er editieren darf if (!isset($_POST["add"])){ - echo "case1"; try{ $editfilterform = new Application_Form_FilterEntriesAdd(array('filterID' => $this->_request->getParam('filterID'))); $this->view->editfilterform = $editfilterform; - echo "
";
- print_r(array('debug','case1'));
- echo "";
-
}catch (Zend_Exception $e) {
echo "Error message 2: " . $e->getMessage() . "\n";
}
} else{
- $editfilterform = new Application_Form_FilterEntriesAdd($_POST);
- echo "case2"; - - if ($editfilterform->isValid($_POST)) { - echo "
case 2.2"; + $editfilterform = new Application_Form_FilterEntriesAdd($_POST); + if ($editfilterform->isValid($_POST)) { $newfilterenty = new Application_Model_FilterEntries(); $newfilterenty->setFilterID($_POST['filterID']); $newfilterenty->setFiltertypeID($_POST['filtertypeID']); @@ -151,12 +144,10 @@ class FilterController extends Zend_Controller_Action } $newfilter2 = new Application_Model_FilterEntriesMapper(); - echo "
"; - print_r($newfilterenty); - echo ""; $newfilter2->save($newfilterenty); + $this->_redirect('/filter'); } - $this->_redirect('/filter'); + $this->view->editfilterform = $editfilterform; } } public function editfilterentryAction() @@ -174,13 +165,9 @@ class FilterController extends Zend_Controller_Action $editfilterform = new Application_Form_FilterEntriesAdd(); - echo "
"; - print_r($filterentry->toArray()); - echo ""; $editfilterform->populate($filterentry->toArray()); $editfilterform->setFilterID($filterID); $this->view->editfilterform = $editfilterform; - echo "case 1.1"; }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; @@ -189,8 +176,7 @@ class FilterController extends Zend_Controller_Action try{ $filterentriesID = $this->_request->getParam('filterentriesID'); $editfilterform = new Application_Form_FilterEntriesAdd($_POST); - if ($editfilterform->isValid($_POST)) { - echo "valid\n"; + if ($editfilterform->isValid($_POST)) { $newfilterenty = new Application_Model_FilterEntries($_POST); $newfilterenty->setID($filterentriesID); if($_POST['filtertypeID'] == 1){ @@ -201,20 +187,15 @@ class FilterController extends Zend_Controller_Action $newfilterenty->setFiltervalue($_POST['filtervalue']); $newfilterenty->setFiltervalue2($_POST['filtervalue2']); } - echo "
"; - print_r($newfilterenty); - echo ""; $newfilter2 = new Application_Model_FilterEntriesMapper(); $newfilter2->save($newfilterenty); + $this->_redirect('/filter'); } - else{ - echo 'nö'; - } + $this->view->editfilterform = $editfilterform; }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; } - $this->_redirect('/filter'); } } public function removefilterentryAction() @@ -260,8 +241,7 @@ class FilterController extends Zend_Controller_Action public function evaluateAction(){ $db = $this->db; $showPartResults = false; - try{ - + try{ $mysession = '1'; $filtertypID = 8; -- cgit v1.2.3-55-g7522 From 431b51eba154912c7a636f54cf8de918c7c09147 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 9 Mar 2011 18:37:34 +0100 Subject: Testen der Filter mit Dummywerten über Formular möglich --- .zfproject.xml | 5 + application/controllers/FilterController.php | 400 +++++++++++++-------- application/forms/FilterEvaluate.php | 123 +++++++ application/layouts/main.phtml | 1 + application/views/scripts/filter/index.phtml | 3 + .../views/scripts/filter/testevaluate.phtml | 4 + pbs-data.sql | 1 + public/media/css/style.css | 1 + 8 files changed, 392 insertions(+), 146 deletions(-) create mode 100644 application/forms/FilterEvaluate.php create mode 100644 application/views/scripts/filter/testevaluate.phtml (limited to 'application/controllers/FilterController.php') diff --git a/.zfproject.xml b/.zfproject.xml index 1147d7a..4ff354b 100644 --- a/.zfproject.xml +++ b/.zfproject.xml @@ -33,6 +33,7 @@
"; - print_r($deletefilterentry); - echo ""; - $filterentriesmapper = new Application_Model_FilterEntriesMapper(); - $filterentriesmapper->delete($deletefilterentry); - echo "ok"; + public function removefilterentryAction() + { + try{ + $filterentriesID = $this->_request->getParam('filterentriesID'); + + // TODO: ACL implementieren ob er den filter löschen darf + if(is_numeric($filterentriesID)){ + $deletefilterentry = new Application_Model_FilterEntries(); + $deletefilterentry->setID($filterentriesID); + echo "
"; + print_r($deletefilterentry); + echo ""; + + $filterentriesmapper = new Application_Model_FilterEntriesMapper(); + $filterentriesmapper->delete($deletefilterentry); + echo "ok"; + } + $this->_redirect('/filter'); + }catch (Zend_Exception $e) { + echo "Error message 2: " . $e->getMessage() . "\n"; } -# echo "ready"; - $this->_redirect('/filter'); - }catch (Zend_Exception $e) { - echo "Error message 2: " . $e->getMessage() . "\n"; - } } - private function fillIP($ip){ - $ar = explode(".",$ip); - $representation = array(); - foreach($ar as $part){ - $representation[] = sprintf("%03s",$part); - } - return implode(".",$representation); - } - private function fillMac($ip){ - $ar = explode(":",$ip); - $representation = array(); - foreach($ar as $part){ - $representation[] = sprintf("%02s",$part); + + private function fillIP($ip) + { + $ar = explode(".",$ip); + $representation = array(); + foreach($ar as $part){ + $representation[] = sprintf("%03s",$part); + } + return implode(".",$representation); + } + + private function fillMac($ip) + { + $ar = explode(":",$ip); + $representation = array(); + foreach($ar as $part){ + $representation[] = sprintf("%02s",$part); + } + return implode(":",$representation); + } + + public function evaluateAction() + { + $db = $this->db; + $showPartResults = false; + // For Testing Filters + + + $testFilter = (isset($_POST['submit']))?true:false; + + if($testFilter){ + $ipAdress = $_POST['ip']; + $macAdress = $_POST['mac']; + $poolID = $_POST['poolID']; + $bootisoID = $_POST['bootisoID']; + $membershipID = $_POST['membershipID']; + $groupID = $_POST['groupID']; + $time = strtotime($_POST['time']); + $clientID = $_POST['clientID']; + print_a('Input', + array('ipAdress'=>$ipAdress, + 'macAdress'=>$macAdress, + 'poolID' => $poolID, + 'bootisoID' => $bootisoID, + 'membershipID'=>$membershipID, + 'groupID'=>$groupID, + 'time'=>$time." - ".date('d.m.Y H:i:s',$time), + 'clientID' => $clientID)); } - return implode(":",$representation); - } - public function evaluateAction(){ - $db = $this->db; - $showPartResults = false; + + try{ $mysession = '1'; + $set = array(); $filtertypID = 8; $session = new Application_Model_Session(); @@ -252,31 +285,37 @@ class FilterController extends Zend_Controller_Action // IP Adress $filtertypID = 1; // get it from session_table with session_id from the session - $ipAdress = $session->getIp(); + if(!$testFilter){ + $ipAdress = $session->getIp(); + } $ipAdress = str_replace(".","",$this->fillIP($ipAdress)); + $select = $db->select() - ->from(array('pbs_filterentries') + ->from(array('pbs_filterentries') ) ->where('filtertypeID = ?',$filtertypID) ->where('REPLACE(filtervalue,".","") <= ?',$ipAdress) ->where('? <= REPLACE(filtervalue2,".","")',$ipAdress); - + $stmt = $select->query(); $result = $stmt->fetchAll(); foreach($result as $r){ $set[$filtertypID][] = $r['filterID']; } + if($showPartResults) print_a('ipAdress',$result,$set[$filtertypID]); + ######################################################### // Mac range $filtertypID = 2; // get it from session_table with session_id from the session - $client = new Application_Model_Client(); - $clientmapper = new Application_Model_ClientMapper(); - $clientmapper->find($session->getClientID(),$client); - - $macAdress = $client->getMacadress(); + if(!$testFilter){ + $client = new Application_Model_Client(); + $clientmapper = new Application_Model_ClientMapper(); + $clientmapper->find($session->getClientID(),$client); + $macAdress = $client->getMacadress(); + } $macAdress = str_replace(":","",$this->fillMac($ipAdress)); $stmt = $db->query("SELECT * FROM pbs_filterentries WHERE filtertypeID = ".$filtertypID." AND @@ -288,44 +327,60 @@ class FilterController extends Zend_Controller_Action } if($showPartResults) print_a('macAdress',$result,$set[$filtertypID]); + ######################################################### // PoolID $filtertypID = 3; // get PoolID from client_ID from session_id from the session - $poolentry = new Application_Model_PoolEntries(); - $poolentrymapper = new Application_Model_PoolEntriesMapper(); - $poolentry = $poolentrymapper->findby('clientID',$client->getID()); - $poolentry = $poolentry[0]; + if(!$testFilter){ + $poolentry = new Application_Model_PoolEntries(); + $poolentrymapper = new Application_Model_PoolEntriesMapper(); + $poolentry = $poolentrymapper->findby('clientID',$client->getID()); + $poolentry = $poolentry[0]; + + $poolID = $poolentry['poolID']; + } + - $poolID = $poolentry['poolID']; - print_a($poolentry); $stmt = $db->query("SELECT * FROM pbs_filterentries WHERE filtertypeID = ".$filtertypID." AND - filtervalue = ".$poolID." "); + filtervalue = ".$poolID." "); $result = $stmt->fetchAll(); - foreach($result as $r){ - $set[$filtertypID][] = $r['filterID']; + if(count($result)>0){ + foreach($result as $r){ + $set[$filtertypID][] = $r['filterID']; + } } + if($showPartResults) print_a('poolID',$result,$set[$filtertypID]); ######################################################### // ClientID $filtertypID = 8; // get client_ID from session_id from the session + + if(!$testFilter){ + $clientID = $session->getClientID(); + } + $stmt = $db->query("SELECT * FROM pbs_filterentries WHERE filtertypeID = ".$filtertypID." AND - filtervalue = ".$session->getClientID()." "); + filtervalue = ".$clientID." "); $result = $stmt->fetchAll(); foreach($result as $r){ $set[$filtertypID][] = $r['filterID']; } + if($showPartResults) print_a('clientID',$result,$set[$filtertypID]); ######################################################### // BootIsoID $filtertypID = 4; - // get BootIsoID from client_ID from session_id from the session - $bootisoID = $session->getBootisoID(); + // get BootIsoID from client_ID from session_id from the session + if(!$testFilter){ + $bootisoID = $session->getBootisoID(); + } + $stmt = $db->query("SELECT * FROM pbs_filterentries WHERE filtertypeID = ".$filtertypID." AND filtervalue = ".$bootisoID." "); @@ -333,14 +388,18 @@ class FilterController extends Zend_Controller_Action foreach($result as $r){ $set[$filtertypID][] = $r['filterID']; } + if($showPartResults) print_a('bootisoID',$result,$set[$filtertypID]); ######################################################### // MembershipID $filtertypID = 5; + + if(!$testFilter){ // get membership from the session - //TODO: GET MEMBERSHIP from SESSION - $membershipID = 1; + //TODO: GET MEMBERSHIP from SESSION + $membershipID = 1; + } $stmt = $db->query("SELECT * FROM pbs_filterentries WHERE filtertypeID = ".$filtertypID." AND @@ -349,14 +408,18 @@ class FilterController extends Zend_Controller_Action foreach($result as $r){ $set[$filtertypID][] = $r['filterID']; } + if($showPartResults) print_a('membership',$result,$set[$filtertypID]); ######################################################### // GroupID $filtertypID = 6; + + if(!$testFilter){ // get membership from the session - //TODO: GET GROUP from SESSION - $groupID = 1; + //TODO: GET GROUP from SESSION + $groupID = 1; + } $stmt = $db->query("SELECT * FROM pbs_filterentries WHERE filtertypeID = ".$filtertypID." AND @@ -365,35 +428,41 @@ class FilterController extends Zend_Controller_Action foreach($result as $r){ $set[$filtertypID][] = $r['filterID']; } + if($showPartResults) print_a('membership',$result,$set[$filtertypID]); ######################################################### // Time $filtertypID = 7; - $nowShort = date('H-i',time()); - $nowLong = date('Y-m-d-H-i',time()); + if(!$testFilter){ + $time = time(); + } + + $nowShort = date('H-i',$time); + $nowLong = date('Y-m-d-H-i',$time); $nowShort = str_replace("-","",$nowShort); $nowLong = str_replace("-","",$nowLong); $select = $db->select() - ->from(array('pbs_filterentries') + ->from(array('pbs_filterentries') ) ->where('filtertypeID = ?',$filtertypID) ->where('REPLACE(filtervalue,"-","") <= ? AND ? <= REPLACE(filtervalue2,"-","")',$nowShort) ->orWhere('REPLACE(filtervalue,"-","") <= ? AND ? <= REPLACE(filtervalue2,"-","")',$nowLong); - + $stmt = $select->query(); $result = $stmt->fetchAll(); foreach($result as $r){ $set[$filtertypID][] = $r['filterID']; } + if($showPartResults) print_a('time',$result,$set[$filtertypID]); ######################################## // ErgebnisSet auswerten print_a('the result sets of the filtertypes',$set); - + // Merging of the resultsets of the filter $kk = array(); foreach($set as $myset){ @@ -401,18 +470,21 @@ class FilterController extends Zend_Controller_Action } $set = $kk; // counting how often a filter is evaluated at database + $a = array(); foreach($set as $k=> $s){ $a[$s] += 1; } - + print_a('Übereinstimmungen pro Filter',$a); // Get the number of filtertypes every filter has $stmt = $db->query('SELECT filterID, COUNT(filtertypeID) as num FROM pbs_filterentries GROUP BY filterID'); $resultset = $stmt->fetchAll(); foreach($resultset as $d){ $database[$d['filterID']] = $d['num']; } - + print_a('Anzahl Filterentries in Datenbank',$database); + // remove all filters from resultset, which to few filtertypes satisfied + $result = array(); foreach($a as $i=>$b){ if($a[$i] < $database[$i]){ unset($a[$i]); @@ -421,8 +493,8 @@ class FilterController extends Zend_Controller_Action $result[] = $i; } } - - print_a('result set of filterIDs',$result); + + print_a('True Filters',$result); // now selecting the filter with the highest priority $query = 'SELECT filterID, bootmenuID, priority FROM pbs_filter WHERE '; @@ -431,16 +503,50 @@ class FilterController extends Zend_Controller_Action } $query .= implode(" OR ", $queryTmp); $query .= 'ORDER BY priority DESC LIMIT 0,1'; - $stmt = $db->query($query); - $resultset = $stmt->fetchAll(); - print_a($resultset); - echo "