1
0
Fork 0
Dieser Commit ist enthalten in:
DSB 2012-07-23 08:56:12 +00:00
Ursprung 78afe70561
Commit 6bcfcaec43

Datei anzeigen

@ -33,7 +33,7 @@ class ConfigController extends Zend_Controller_Action
{ {
$form = new Zend_Form( $form = new Zend_Form(
array( array(
'disableLoadDefaultDecorators' => true, 'disableLoadDefaultDecorators' => true,
) )
); );
$form->addElementPrefixPath( $form->addElementPrefixPath(
@ -49,8 +49,8 @@ class ConfigController extends Zend_Controller_Action
$form->setAction( $form->setAction(
$this->view->url( $this->view->url(
array( array(
'controller' => 'config', 'controller' => 'config',
'action' => 'index' 'action' => 'index'
) )
) )
); );
@ -58,7 +58,7 @@ class ConfigController extends Zend_Controller_Action
$langs = $this->view->lang->getAvailableLanguages(); $langs = $this->view->lang->getAvailableLanguages();
asort($langs); asort($langs);
$formGeneral = $this->_getSubformIni('general'); $formGeneral = $this->_getSubformIni('general');
$elementTitle = $formGeneral->getElement('title'); $elementTitle = $formGeneral->getElement('title');
$elementTitle->setValue( $elementTitle->setValue(
$this->view->config->get('config.general.title') $this->view->config->get('config.general.title')
@ -72,7 +72,7 @@ class ConfigController extends Zend_Controller_Action
$form->addSubForm($this->_getSubformIni('cronscript'), 'cronscript'); $form->addSubForm($this->_getSubformIni('cronscript'), 'cronscript');
$formInterface = $this->_getSubformIni('interface'); $formInterface = $this->_getSubformIni('interface');
$themeSelect = $formInterface->getElement('theme'); $themeSelect = $formInterface->getElement('theme');
$themeSelect->setMultiOptions(Msd_File::getThemeList()); $themeSelect->setMultiOptions(Msd_File::getThemeList());
$langSelect = $formInterface->getElement('language'); $langSelect = $formInterface->getElement('language');
$langSelect->setMultiOptions($langs); $langSelect->setMultiOptions($langs);
@ -81,21 +81,21 @@ class ConfigController extends Zend_Controller_Action
$form->clearDecorators(); $form->clearDecorators();
$translator = $this->view->lang->getTranslator(); $translator = $this->view->lang->getTranslator();
$saveIcon = $this->view->getIcon('save', $translator->_('L_SAVE')); $saveIcon = $this->view->getIcon('save', $translator->_('L_SAVE'));
$form->addElement( $form->addElement(
'submit', 'submit',
'save', 'save',
array( array(
'class' => 'Formbutton', 'class' => 'Formbutton',
'helper' => 'formButton', 'helper' => 'formButton',
'content' => $saveIcon . ' ' . $translator->_('L_SAVE'), 'content' => $saveIcon . ' ' . $translator->_('L_SAVE'),
'escape' => false, 'escape' => false,
'type' => 'submit', 'type' => 'submit',
'disableLoadDefaultDecorators' => true, 'disableLoadDefaultDecorators' => true,
'decorators' => array( 'decorators' => array(
'ViewHelper', 'ViewHelper',
'Tooltip' 'Tooltip'
) )
) )
); );
$form->addDecorator('ConfigForm'); $form->addDecorator('ConfigForm');
@ -136,29 +136,29 @@ class ConfigController extends Zend_Controller_Action
*/ */
private function _getFormErrors($messages) private function _getFormErrors($messages)
{ {
$message = array(); $message = array();
$firstTab = null; $firstTab = null;
$form = $this->view->form; $form = $this->view->form;
foreach ($messages as $tabKey => $tabMessage) { foreach ($messages as $tabKey => $tabMessage) {
foreach ($tabMessage as $inputName => $inputMessage) { foreach ($tabMessage as $inputName => $inputMessage) {
foreach ($inputMessage as $messageId => $messageText) { foreach ($inputMessage as $messageId => $messageText) {
if ($firstTab === null) { if ($firstTab === null) {
$firstTab = 'tab_' . $tabKey; $firstTab = 'tab_' . $tabKey;
} }
$subForm = $form->getSubForm($tabKey); $subForm = $form->getSubForm($tabKey);
$formElement = $subForm->getElement($inputName); $formElement = $subForm->getElement($inputName);
$elementClass = $formElement->getAttrib('class'); $elementClass = $formElement->getAttrib('class');
$elementClass .= ' ' . 'inputError'; $elementClass .= ' ' . 'inputError';
$formElement->setAttrib('class', $elementClass); $formElement->setAttrib('class', $elementClass);
$message[] = $formElement->getLabel() . ': ' . $message[] = $formElement->getLabel() . ': ' .
$this->view->lang->translateZendId( $this->view->lang->translateZendId(
$messageId, $messageId,
$messageText $messageText
); );
} }
} }
} }
$ret = array(); $ret = array();
$ret['messages'] = implode('<br />', $message); $ret['messages'] = implode('<br />', $message);
$ret['firstTab'] = $firstTab; $ret['firstTab'] = $firstTab;
return $ret; return $ret;
@ -204,9 +204,9 @@ class ConfigController extends Zend_Controller_Action
{ {
$subFormIni = new Zend_Config_Ini( $subFormIni = new Zend_Config_Ini(
APPLICATION_PATH . DS . 'forms' . DS . 'Config' . DS . $subform . APPLICATION_PATH . DS . 'forms' . DS . 'Config' . DS . $subform .
'.ini' '.ini'
); );
$options = array('displayGroupPrefixPath' => $subform . '_'); $options = array('displayGroupPrefixPath' => $subform . '_');
return new Zend_Form_SubForm($subFormIni, $options); return new Zend_Form_SubForm($subFormIni, $options);
} }
@ -221,10 +221,10 @@ class ConfigController extends Zend_Controller_Action
if ($recipientsCc === null) { if ($recipientsCc === null) {
$recipientsCc = array(); $recipientsCc = array();
} }
$index = count($recipientsCc); $index = count($recipientsCc);
$recipientsCc[$index]['Name'] = ''; $recipientsCc[$index]['Name'] = '';
$recipientsCc[$index]['Address'] = ''; $recipientsCc[$index]['Address'] = '';
$recipientsCc = array_values($recipientsCc); $recipientsCc = array_values($recipientsCc);
$this->view->config->set('config.email.RecipientCc', $recipientsCc); $this->view->config->set('config.email.RecipientCc', $recipientsCc);
$this->_forward('index'); $this->_forward('index');
} }
@ -237,7 +237,7 @@ class ConfigController extends Zend_Controller_Action
public function deleteRecipientCcAction() public function deleteRecipientCcAction()
{ {
$recipientToDelete = (int)$this->_request->getPost('param'); $recipientToDelete = (int)$this->_request->getPost('param');
$recipientsCc = $this->view->config->get('config.email.RecipientCc'); $recipientsCc = $this->view->config->get('config.email.RecipientCc');
if (isset($recipientsCc[$recipientToDelete])) { if (isset($recipientsCc[$recipientToDelete])) {
unset($recipientsCc[$recipientToDelete]); unset($recipientsCc[$recipientToDelete]);
} }
@ -253,15 +253,15 @@ class ConfigController extends Zend_Controller_Action
public function addFtpConnectionAction() public function addFtpConnectionAction()
{ {
$ftpConfig = $this->view->config->get('config.ftp'); $ftpConfig = $this->view->config->get('config.ftp');
$index = 0; $index = 0;
if (!empty($ftpConfig)) { if (!empty($ftpConfig)) {
$index = max(array_keys($ftpConfig)) + 1; $index = max(array_keys($ftpConfig)) + 1;
} }
$default = $this->view->config->loadConfiguration( $default = $this->view->config->loadConfiguration(
'defaultConfig', 'defaultConfig',
false false
); );
$default = $default->toArray(); $default = $default->toArray();
$ftpConfig[$index] = $default['ftp'][0]; $ftpConfig[$index] = $default['ftp'][0];
$this->view->config->set('config.ftp', $ftpConfig); $this->view->config->set('config.ftp', $ftpConfig);
$this->_forward('index'); $this->_forward('index');
@ -274,7 +274,7 @@ class ConfigController extends Zend_Controller_Action
*/ */
public function deleteFtpConnectionAction() public function deleteFtpConnectionAction()
{ {
$index = (int)$this->_request->getPost('param'); $index = (int)$this->_request->getPost('param');
$ftpConfig = $this->view->config->get('config.ftp'); $ftpConfig = $this->view->config->get('config.ftp');
if (count($ftpConfig) > 1) { if (count($ftpConfig) > 1) {
if (isset($ftpConfig[$index])) { if (isset($ftpConfig[$index])) {
@ -286,11 +286,11 @@ class ConfigController extends Zend_Controller_Action
$this->_forward('index'); $this->_forward('index');
} }
/** /**
* Test FTP-Connection * Test FTP-Connection
* *
* @return void * @return void
*/ */
public function testFtpConnectionAction() public function testFtpConnectionAction()
{ {
$translator = $this->view->lang->getTranslator(); $translator = $this->view->lang->getTranslator();
@ -298,23 +298,23 @@ class ConfigController extends Zend_Controller_Action
if ($this->_request->isPost()) { if ($this->_request->isPost()) {
$postData = $this->_request->getPost(); $postData = $this->_request->getPost();
$index = (int)$this->_request->getPost('param'); $index = (int)$this->_request->getPost('param');
// fetch the required params // fetch the required params
$server = $postData['ftp_'.$index.'_server']; $server = $postData['ftp_' . $index . '_server'];
$port = $postData['ftp_'.$index.'_port']; $port = $postData['ftp_' . $index . '_port'];
$timeout = $postData['ftp_'.$index.'_timeout']; $timeout = $postData['ftp_' . $index . '_timeout'];
$mode = $postData['ftp_'.$index.'_passiveMode']; $mode = $postData['ftp_' . $index . '_passiveMode'];
$ssl = $postData['ftp_'.$index.'_ssl']; $ssl = $postData['ftp_' . $index . '_ssl'];
$user = $postData['ftp_'.$index.'_user']; $user = $postData['ftp_' . $index . '_user'];
$password = $postData['ftp_'.$index.'_pass']; $password = $postData['ftp_' . $index . '_pass'];
$directory = $postData['ftp_'.$index.'_dir']; $directory = $postData['ftp_' . $index . '_dir'];
// Params for transferring a test file // Params for transferring a test file
$name = 'ftp_transfer_testfile.txt'; $name = 'ftp_transfer_testfile.txt';
$filename = APPLICATION_PATH . '/forms/Config/ftp_transfertest/ftp_transfer_testfile.txt'; $filename = APPLICATION_PATH . '/forms/Config/ftp_transfertest/ftp_transfer_testfile.txt';
$targetFolder = APPLICATION_PATH . '/forms/Config/ftp_transfertest/ftp_target/'; $targetFolder = APPLICATION_PATH . '/forms/Config/ftp_transfertest/ftp_target/';
$upload = false; $upload = false;
// try to connect via ssl to the ftp server // try to connect via ssl to the ftp server
if ($ssl == 'y' && function_exists('ftp_ssl_connect')) { if ($ssl == 'y' && function_exists('ftp_ssl_connect')) {
@ -328,7 +328,7 @@ class ConfigController extends Zend_Controller_Action
if (!is_resource($ftpStream)) { if (!is_resource($ftpStream)) {
$message = sprintf($translator->_('L_FTP_CONNECTION_ERROR'), $server, $port); $message = sprintf($translator->_('L_FTP_CONNECTION_ERROR'), $server, $port);
// connection ok? let's try to login // connection ok? let's try to login
} else if (!ftp_login($ftpStream, $user, $password)) { } else if (!ftp_login($ftpStream, $user, $password)) {
$message = sprintf($translator->_('L_FTP_LOGIN_ERROR'), $user); $message = sprintf($translator->_('L_FTP_LOGIN_ERROR'), $user);
@ -337,26 +337,26 @@ class ConfigController extends Zend_Controller_Action
ftp_pasv($ftpStream, true); ftp_pasv($ftpStream, true);
} }
// login ok? let's set/change the ftp upload directory // login ok? let's set/change the ftp upload directory
} else if (!ftp_chdir($ftpStream, $directory)) { } else if (!ftp_chdir($ftpStream, $directory)) {
$message = sprintf($translator->_('L_CHANGEDIRERROR')); $message = sprintf($translator->_('L_CHANGEDIRERROR'));
// chmod target_folder if it's necessary // chmod target_folder if it's necessary
} else if (file_exists($targetFolder) && substr(sprintf('%o', fileperms($targetFolder)), -4) < '0755') { } else if (file_exists($targetFolder) && substr(sprintf('%o', fileperms($targetFolder)), -4) < '0755') {
ftp_chmod($ftpStream, 0755, $targetFolder); ftp_chmod($ftpStream, 0755, $targetFolder);
$message = ''; $message = '';
// ftp directory exists and chmod ok? let's test the ftp transfer with a test file // ftp directory exists and chmod ok? let's test the ftp transfer with a test file
} else if (!ftp_put($ftpStream, $targetFolder.$name, $filename, FTP_ASCII)) { } else if (!ftp_put($ftpStream, $targetFolder . $name, $filename, FTP_ASCII)) {
$message = sprintf($translator->_('L_FTP_FILE_TRANSFER_ERROR'), $name); $message = sprintf($translator->_('L_FTP_FILE_TRANSFER_ERROR'), $name);
} else { } else {
$upload = true; $upload = true;
$message = sprintf($translator->_('L_FTP_FILE_TRANSFER_SUCCESS'), $name) $message = sprintf($translator->_('L_FTP_FILE_TRANSFER_SUCCESS'), $name)
. '<br /><br />' . . '<br /><br />' .
$translator->_('L_FTP_OK'); $translator->_('L_FTP_OK');
// delete the test file after a successful transfer test // delete the test file after a successful transfer test
if (file_exists($targetFolder.$name)) { if (file_exists($targetFolder . $name)) {
ftp_delete($ftpStream, $targetFolder.$name); ftp_delete($ftpStream, $targetFolder . $name);
} }
} }
@ -370,7 +370,7 @@ class ConfigController extends Zend_Controller_Action
'modal' => true 'modal' => true
) )
); );
// or show the confirmation message // or show the confirmation message
} else if ($upload && count($message) > 0) { } else if ($upload && count($message) > 0) {
$this->view->popUpMessage()->addMessage( $this->view->popUpMessage()->addMessage(
'config-validate-message', 'config-validate-message',
@ -399,15 +399,15 @@ class ConfigController extends Zend_Controller_Action
{ {
$subForms = $form->getSubForms(); $subForms = $form->getSubForms();
foreach ($subForms as $subForm) { foreach ($subForms as $subForm) {
$group = $subForm->getName(); $group = $subForm->getName();
$elements = array_keys($subForm->getElements()); $elements = array_keys($subForm->getElements());
foreach ($elements as $element) { foreach ($elements as $element) {
$element = str_replace($group . '_', '', $element); $element = str_replace($group . '_', '', $element);
$element = str_replace('_', '.', $element); $element = str_replace('_', '.', $element);
$value = $this->view->config->get( $value = $this->view->config->get(
'config.' . 'config.' .
$group . '.' . $group . '.' .
$element $element
); );
if ($value !== null) { if ($value !== null) {
$subForm->setDefault($element, $value); $subForm->setDefault($element, $value);
@ -424,7 +424,7 @@ class ConfigController extends Zend_Controller_Action
private function _validateForm() private function _validateForm()
{ {
$postData = $this->_request->getPost(); $postData = $this->_request->getPost();
$form = $this->view->form; $form = $this->view->form;
$form->setDefaults($postData); $form->setDefaults($postData);
if (isset($postData['save'])) { if (isset($postData['save'])) {
if (!$form->isValid($postData)) { if (!$form->isValid($postData)) {
@ -435,17 +435,17 @@ class ConfigController extends Zend_Controller_Action
'L_ERROR', 'L_ERROR',
$errors['messages'], $errors['messages'],
array( array(
'modal' => true 'modal' => true
) )
); );
// jump to first tab with validation error // jump to first tab with validation error
$this->_activeTab = $errors['firstTab']; $this->_activeTab = $errors['firstTab'];
} }
} else { } else {
$configData = $form->getValidValues($postData); $configData = $form->getValidValues($postData);
$configData = $this->_addNonConfigurableConfigParams($configData); $configData = $this->_addNonConfigurableConfigParams($configData);
$configValidator = $configValidator =
new Application_Model_Config_FormValidator($configData); new Application_Model_Config_FormValidator($configData);
$configValidator->validate($this->view); $configValidator->validate($this->view);
} }
} }
@ -460,7 +460,7 @@ class ConfigController extends Zend_Controller_Action
*/ */
private function _addNonConfigurableConfigParams($configData) private function _addNonConfigurableConfigParams($configData)
{ {
$config = Msd_Configuration::getInstance(); $config = Msd_Configuration::getInstance();
$configData['systemDatabases'] = $config->get('config.systemDatabases'); $configData['systemDatabases'] = $config->get('config.systemDatabases');
return $configData; return $configData;
} }
@ -475,15 +475,15 @@ class ConfigController extends Zend_Controller_Action
*/ */
private function _setGroupVisibilities(Zend_Form $form) private function _setGroupVisibilities(Zend_Form $form)
{ {
$visibilityMap = array( $visibilityMap = array(
true => 'block', true => 'block',
false => 'none', false => 'none',
); );
$emailForm = $form->getSubForm('email'); $emailForm = $form->getSubForm('email');
$sendmailConfig = $emailForm->getDisplayGroup('sendmailConfig'); $sendmailConfig = $emailForm->getDisplayGroup('sendmailConfig');
$smtpConfig = $emailForm->getDisplayGroup('smtpConfig'); $smtpConfig = $emailForm->getDisplayGroup('smtpConfig');
$sendmailVisibility = false; $sendmailVisibility = false;
$smtpVisibility = false; $smtpVisibility = false;
switch ($this->view->config->get('config.email.Program')) { switch ($this->view->config->get('config.email.Program')) {
case 'sendmail': case 'sendmail':
$sendmailVisibility = true; $sendmailVisibility = true;
@ -494,13 +494,13 @@ class ConfigController extends Zend_Controller_Action
} }
$sendmailConfig->addAttribs( $sendmailConfig->addAttribs(
array( array(
'style' => 'display:' 'style' => 'display:'
. $visibilityMap[$sendmailVisibility] . ';', . $visibilityMap[$sendmailVisibility] . ';',
) )
); );
$smtpConfig->addAttribs( $smtpConfig->addAttribs(
array( array(
'style' => 'display:' . $visibilityMap[$smtpVisibility] . ';', 'style' => 'display:' . $visibilityMap[$smtpVisibility] . ';',
) )
); );
} }