buttontext = $v; } public function setData($v){ $this->data = $v; } public function setFilterID($v){ $this->filterID = $v; } public function setSelectData($v){ $this->selectData = $v; } public function setPage($page){ $this->page = $page; } public function init() { $this->setName("Add Filterentry"); $this->setMethod('post'); $this->setAttrib('id','filterentryform'); #print_a($this->data); #print_a($this->selectData); try{ $filtertypemapper = new Application_Model_FilterTypeMapper(); $filtertype = $filtertypemapper->fetchAll(); $filtertypes = $this->createElement('select','filtertypeID'); $filtertypes ->setLabel('Type:'); $filtertypes ->setAttrib('id','filtertype'); $filtertypes->addMultiOption('',''); foreach($filtertype as $f){ $filtertypes->addMultiOption($f->getID(),$f->getFiltertypename()); } $filterentry = $filtertypes->getMultiOption($this->data['filtertypeID']); $filterentryID = $this->data['filtertypeID']; }catch (Zend_Exception $e) { echo "Error message 1: " . $e->getMessage() . "\n"; } switch($filterentryID){ default: $desc = "Select the filtertype"; $label1 = 'Value 1:'; $label2 = 'Value 2:'; $filtervalue1 = $this->createElement('text', 'filtervalue', array( 'label' => $label1, 'id' => 'val1' )); $filtervalue2 = $this->createElement('text', 'filtervalue2', array( 'label' => $label2, 'id' => 'val2' )); break; case "1": $desc = "You can set one IP or an IP-Range"; $label1 = 'Start:'; $label2 = 'End:'; $filtervalue1 = $this->createElement('text', 'filtervalue', array( 'label' => $label1, 'validators' => array( array( 'regex', false, array( '/^(([0-9]|[1-9][0-9]|0[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([[0-9]|[1-9][0-9]|0[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/i', 'messages' => array( Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid IP-Adress", Zend_Validate_Regex::INVALID => 'IP-Adress contains invalid characters.' ) ) ) ), 'required' => true, 'id' => 'val1' )); $filtervalue2 = $this->createElement('text', 'filtervalue2', array( 'label' => $label2, 'validators' => array( array( 'regex', false, array( '/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/i', 'messages' => array( Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid IP-Adress", Zend_Validate_Regex::INVALID => 'IP-Adress contains invalid characters.' ) ) ) ), 'required' => true, 'id' => 'val2' )); break; case "2": $desc = "You can set one Mac-Adress or an Mac-Range"; $label1 = 'Start:'; $label2 = 'End:'; $filtervalue1 = $this->createElement('text', 'filtervalue', array( 'label' => $label1, 'validators' => array( array( 'regex', false, array( '/^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$/i', 'messages' => array( Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid Mac-Adress", Zend_Validate_Regex::INVALID => 'Mac-Adress contains invalid characters.' ) ) ) ), 'required' => true, 'id' => 'val1' )); $filtervalue2 = $this->createElement('text', 'filtervalue2', array( 'label' => $label2, 'validators' => array( array( 'regex', false, array( '/^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$/i', 'messages' => array( Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid Mac-Adress", Zend_Validate_Regex::INVALID => 'Mac-Adress contains invalid characters.' ) ) ) ), 'required' => true, 'id' => 'val2' )); break; case "3": $desc = "Select your Pool"; $label1 = 'PoolID:'; $filtervalue1 = $this->createElement('select','filtervalue'); $filtervalue1 ->setLabel($label1); if(count($this->selectData['pools'])>0){ foreach($this->selectData['pools'] as $id => $g){ $filtervalue1->addMultiOption($g['poolID'], $g['title']); } } $filtervalue1->setRegisterInArrayValidator(false); break; case "4": $desc = "Select your BootIso"; $label1 = 'BootIsoID:'; $filtervalue1 = $this->createElement('select','filtervalue'); $filtervalue1 ->setLabel($label1); if(count($this->selectData['bootisos'])>0){ foreach($this->selectData['bootisos'] as $id => $g){ $filtervalue1->addMultiOption($g['bootisoID'], $g['title']); } } $filtervalue1->setRegisterInArrayValidator(false); break; case "5": $desc = "Select a Membership"; $label1 = 'Membership:'; $filtervalue1 = $this->createElement('select','filtervalue'); $filtervalue1 ->setLabel($label1); if(count($this->selectData['memberships'])>0){ $personMapper = new Application_Model_PersonMapper(); foreach($this->selectData['memberships'] as $id => $g){ // Display full name of Person $person = new Application_Model_Person(); $personMapper->find($g['personID'],$person); $filtervalue1->addMultiOption($g['membershipID'], $person->getName().", ".$person->getFirstname()); } } $filtervalue1->setRegisterInArrayValidator(false); break; case "6": $desc = "For all members in this Group"; $label1 = 'Group:'; // TODO: insert the child Groups $filtervalue1 = $this->createElement('select','filtervalue'); $filtervalue1 ->setLabel($label1); if(count($this->selectData['groups'])>0){ foreach($this->selectData['groups'] as $id => $g){ $filtervalue1->addMultiOption($g['groupID'], $g['title']); } } $filtervalue1->setRegisterInArrayValidator(false); break; case "7": $desc = "Specify a time-range"; $label1 = 'Start:'; $label2 = 'End:'; $filtervalue1 = $this->createElement('text', 'filtervalue', array( 'label' => $label1, 'validators' => array( array( 'regex', false, array( '/^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/i', 'messages' => array( Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid Time-Format, It must be HH:MM", Zend_Validate_Regex::INVALID => 'Time contains invalid characters.' ) ) ) ), 'required' => true, 'id' => 'val1' )); $filtervalue2 = $this->createElement('text', 'filtervalue2', array( 'label' => $label2, 'validators' => array( array( 'regex', false, array( '/^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/i', 'messages' => array( Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid Time-Format, It must be HH:MM", Zend_Validate_Regex::INVALID => 'Time contains invalid characters.' ) ) ) ), 'required' => true, 'id' => 'val2' )); echo ''; break; case "8": $desc = "Select a Client"; $label1 = 'Client:'; $filtervalue1 = $this->createElement('select','filtervalue'); $filtervalue1 ->setLabel($label1); if(count($this->selectData['clients'])>0){ foreach($this->selectData['clients'] as $id => $g){ $filtervalue1->addMultiOption($g['clientID'], $g['macadress']." - ".$g['hardwarehash']); } } $filtervalue1->setRegisterInArrayValidator(false); break; case "9": $desc = "Define a Hardwarehash"; $label1 = 'Hardwarehash:'; $filtervalue1 = $this->createElement('text', 'filtervalue', array( 'label' => $label1, 'filters' => array('StringTrim'), 'validators' => array( array('StringLength', false, array(32, 32)), ), 'required' => true, 'id' => 'val1' )); break; case "10": $desc = "Specify the Weekday (Monday:1, Tuesday:2 ... Sunday:7) or a range"; $label1 = 'Start Day:'; $label2 = 'End Day:'; $filtervalue1 = $this->createElement('select','filtervalue', array( 'label' => $label1, 'validators' => array( array( 'regex', false, array( '/^([1-7])$/i', 'messages' => array( Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid Day-Format, It must be betweeen 1 and 7", Zend_Validate_Regex::INVALID => 'Day contains invalid characters.' ) ) ) ), 'required' => true, 'id' => 'val1' )); $filtervalue1->addMultiOption(1, "Monday") ->addMultiOption(2, "Tuesday") ->addMultiOption(3, "Wednesday") ->addMultiOption(4, "Thursday") ->addMultiOption(5, "Friday") ->addMultiOption(6, "Saturday") ->addMultiOption(7, "Sunday"); $filtervalue2 = $this->createElement('select', 'filtervalue2', array( 'label' => $label2, 'validators' => array( array( 'regex', false, array( '/^([1-7])$/i', 'messages' => array( Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid Day-Format, It must be betweeen 1 and 7", Zend_Validate_Regex::INVALID => 'Day contains invalid characters.' ) ) ) ), 'required' => true, 'id' => 'val2' )); $filtervalue2->addMultiOption(1, "Monday") ->addMultiOption(2, "Tuesday") ->addMultiOption(3, "Wednesday") ->addMultiOption(4, "Thursday") ->addMultiOption(5, "Friday") ->addMultiOption(6, "Saturday") ->addMultiOption(7, "Sunday"); break; case "11": $desc = "Specify the date or a day range of the filter"; $label1 = 'Start Date:'; $label2 = 'End Date:'; $filtervalue1 = $this->createElement('text', 'filtervalue', array( 'label' => $label1, 'required' => true, 'id' => 'val1' )); $filtervalue1->addValidator('Date',false, array('format'=>'dd.MM.yyyy')); $filtervalue2 = $this->createElement('text', 'filtervalue2', array( 'label' => $label2, 'required' => true, 'id' => 'val2' )); $filtervalue2->addValidator('Date',false, array('format'=>'dd.MM.yyyy')); echo ''; break; } $filtertypes->setDescription($desc); $this->addElement($filtertypes); $this->addElement($filtervalue1); if(isset($filtervalue2 )){ $this->addElement($filtervalue2); } $this->addElement('submit', 'add', array( 'required' => false, 'ignore' => true, 'label' => $this->buttontext, )); $this->addElement('button', 'Cancel', array( 'onclick' => 'self.location="/user/filter/index/page/'.$this->page.'"' )); $this->addElement('hidden', 'filterID', array( 'value' => $this->filterID )); } } ?>