/** * @return Application_Model_ServerSetting2Server[] */ public function getServerSettings() { if ($this->_serverSettings === null) { $serverSettings = $this->_getServerSetting2ServerMapper()->fetchAll(array('server_id = ?' => $this->getId())); $allPossibleServerSettings = $this->_getServerSettingMapper()->fetchAll(array('server_type_id = ? OR server_type_id IS NULL' => $this->getServerTypeId())); $allPossibleServerSettingIds = array_map(function ($serverSetting) { /** @var $serverSetting Application_Model_ServerSetting */ return $serverSetting->getId(); }, $allPossibleServerSettings); $serverSettingIds = array_map(function ($serverSetting) { /** @var $serverSetting Application_Model_ServerSetting2Server */ return $serverSetting->getSettingId(); }, $serverSettings); $missingServerSettingIds = array_diff($allPossibleServerSettingIds, $serverSettingIds); foreach ($missingServerSettingIds as $missingServerSettingId) { $serverSetting = new Application_Model_ServerSetting2Server(); $serverSetting->setFromArray(array('server_id' => $this->getId(), 'setting_id' => $missingServerSettingId)); $serverSettings[] = $serverSetting; } $this->_serverSettings = $serverSettings; } return $this->_serverSettings; }
protected function _getElementForServerSetting(Application_Model_ServerSetting2Server $serverSetting) { $name = $serverSetting->getSetting()->getName(); switch ($name) { case 'MaxUser': $element = new \SAP\Form\Element\Text($name); $element->setRequired(true)->setAllowEmpty(false)->addValidator(new Zend_Validate_Int(), true)->addValidator(new Zend_Validate_GreaterThan(0)); break; case 'Password': $element = new \SAP\Form\Element\Text($name); $element->setRequired(true)->setAllowEmpty(false)->addValidator(new Zend_Validate_Alnum(false)); break; case 'PortBase': $element = new \SAP\Form\Element\Text($name); $element->setRequired(true)->setAllowEmpty(false)->addValidator(new Zend_Validate_Int(), true)->addValidator(new Zend_Validate_GreaterThan(1024)); break; case 'ShowLastSongs': $element = new \SAP\Form\Element\Text($name); $element->setRequired(true)->setAllowEmpty(false)->addValidator(new Zend_Validate_Int(), true)->addValidator(new Zend_Validate_GreaterThan(0))->addValidator(new Zend_Validate_LessThan(21)); break; case 'SrcIP': $element = new \SAP\Form\Element\Text($name); $element->setRequired(true)->setAllowEmpty(false)->addValidator(new Zend_Validate_Callback(array($this, 'validateIpOrAny'))); break; case 'AdminPassword': $element = new \SAP\Form\Element\Text($name); $element->setRequired(true)->setAllowEmpty(false)->addValidator(new Zend_Validate_Alnum(false)); break; case 'AutoDumpUsers': $element = new Zend_Form_Element_Checkbox($name); $element->setRequired(true)->setAllowEmpty(false); break; case 'AutoDumpSourceTime': $element = new \SAP\Form\Element\Text($name); $element->setRequired(true)->setAllowEmpty(false)->addValidator(new Zend_Validate_Int())->addValidator(new Zend_Validate_GreaterThan(0)); break; case 'IntroFile': $element = new \SAP\Form\Element\Text($name); break; case 'BackupFile': $element = new \SAP\Form\Element\Text($name); break; case 'TitleFormat': $element = new \SAP\Form\Element\Text($name); break; case 'URLFormat': $element = new \SAP\Form\Element\Text($name); break; case 'PublicServer': $element = new Zend_Form_Element_Select($name); $element->setRequired(true)->setAllowEmpty(false)->setMultiOptions(array('default', 'always', 'never')); break; case 'AllowRelay': $element = new Zend_Form_Element_Checkbox($name); $element->setRequired(true)->setAllowEmpty(false); break; case 'AllowPublicRelay': $element = new Zend_Form_Element_Checkbox($name); $element->setRequired(true)->setAllowEmpty(false); break; case 'MetaInterval': $element = new \SAP\Form\Element\Text($name); $element->setRequired(true)->setAllowEmpty(false)->addValidator(new Zend_Validate_Int()); break; } $element->setLabel($name)->setValue($serverSetting->getValue()); return $element; }