action = $action; } public function setBootoslist($bootoslist) { $this->bootoslist = $bootoslist; } public function setBootosanzeige($bootosanzeige) { $this->bootosanzeige = $bootosanzeige; } public function setMaxorder($maxorder) { $this->maxorder = $maxorder; } public function setConfiglist($configlist) { $this->configlist = $configlist; } public function setType($type) { $this->type = $type; } public function setPage($page) { $this->page = $page; } public function init() { if(!isset($_POST['bootosID'])) { list($key) = array_keys($this->bootoslist); $firstbootos = $this->bootoslist[$key]; $_POST['bootosID'] = $firstbootos->getID(); } $this->setName($this->action); $this->setMethod('post'); if (!Pbs_Acl::checkRight('booee') && $this->action == 'editbootmenuentry') { $meta = true; } else { $meta = null; } $this->addElement('text', 'title', array( 'filters' => array('StringTrim'), 'validators' => array( array('StringLength', false, array(0, 50)), ), 'required' => true, 'label' => 'Title:', )); $bootosfield = $this->createElement('select', 'bootosID'); $bootosfield ->setLabel('BootOs:'); $bootosfield->setAttrib('onChange', "document.getElementById('".$this->action."').submit();"); $bootosfield->setAttrib('readOnly', $meta); $bootosfield->addMultiOptions($this->bootosanzeige); $bootosfield->setRegisterInArrayValidator(false); $this->addElement($bootosfield); $kclactive = $this->createElement('checkbox', 'kcl'); $kclactive->setAttrib('onChange', "document.getElementById('".$this->action."').submit();"); $kclactive->setLabel('Use default KCL:'); $kclactive->setValue($_POST['kcl']); $this->addElement($kclactive); if($_POST['kcl']) { $this->addElement('textarea', 'defaultkcl', array( 'filters' => array('StringTrim'), 'validators' => array( array('StringLength', false, array(0, 50)), ), 'required' => false, 'cols' => 50, 'rows' => 5, 'label' => 'KCL:', 'readOnly' => true, 'value' => $this->bootoslist[$_POST['bootosID']]->getDefaultkcl() )); } if($_POST['kcl']) { $kcllength = 175 - strlen($this->bootoslist[$_POST['bootosID']]->getDefaultkcl()); } else { $kcllength = 175; } $this->addElement('textarea', 'kclappend', array( 'filters' => array('StringTrim'), 'validators' => array( array('StringLength', false, array(0, $kcllength)), ), 'required' => false, 'cols' => 50, 'rows' => 5, 'label' => 'KCL-Append:', 'readOnly' => $meta, 'description' => 'Chars left: ' . $kcllength )); $configfield = $this->createElement('select', 'configID'); $configfield->setLabel('Config:'); $configfield->setAttrib('readOnly', $meta); $options = array('Preset' => array(), 'Custom' => array()); if(count($this->configlist) > 0) { foreach($this->configlist as $k => $v) { foreach($v[$_POST['bootosID']] as $c) $options[$k][$c->getID()] = $c->getTitle(); } } $configfield->addMultiOptions($options); $configfield->setRegisterInArrayValidator(false); $this->addElement($configfield); $orderfield = $this->createElement('select', 'order'); $orderfield ->setLabel('Position:'); $orderfield->setAttrib('readOnly', $meta); for ($i = 0; $i <= $this->maxorder; $i++) { $orderfield->addMultiOption($i, $i + 1); } $orderfield->setRegisterInArrayValidator(false); $this->addElement($orderfield); if($this->action == "addbootmenuentry") { $label = "Add Bootmenuentry"; } else { $label = "Edit Bootmenuentry"; } $this->addElement('submit', $this->action, array( 'required' => false, 'ignore' => true, 'label' => $label, )); $this->addElement('button', 'Cancel', array( 'onclick' => 'self.location="/user/bootmenu/index/type/'.$this->type.'/page/'.$this->page.'"' )); } }