Default
Dieser Commit ist enthalten in:
Ursprung
016c27d322
Commit
ddbd6ea5ab
3 geänderte Dateien mit 122 neuen und 5 gelöschten Zeilen
|
@ -286,6 +286,108 @@ class ConfigController extends Zend_Controller_Action
|
||||||
$this->_forward('index');
|
$this->_forward('index');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test FTP-Connection
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testFtpConnectionAction()
|
||||||
|
{
|
||||||
|
$translator = $this->view->lang->getTranslator();
|
||||||
|
|
||||||
|
if ($this->_request->isPost()) {
|
||||||
|
|
||||||
|
$postData = $this->_request->getPost();
|
||||||
|
$index = (int)$this->_request->getPost('param');
|
||||||
|
|
||||||
|
// fetch the required params
|
||||||
|
$server = $postData['ftp_'.$index.'_server'];
|
||||||
|
$port = $postData['ftp_'.$index.'_port'];
|
||||||
|
$timeout = $postData['ftp_'.$index.'_timeout'];
|
||||||
|
$mode = $postData['ftp_'.$index.'_passiveMode'];
|
||||||
|
$ssl = $postData['ftp_'.$index.'_ssl'];
|
||||||
|
$user = $postData['ftp_'.$index.'_user'];
|
||||||
|
$password = $postData['ftp_'.$index.'_pass'];
|
||||||
|
$directory = $postData['ftp_'.$index.'_dir'];
|
||||||
|
|
||||||
|
// Params for transferring a test file
|
||||||
|
$name = 'ftp_transfer_testfile.txt';
|
||||||
|
$filename = APPLICATION_PATH . '/forms/Config/ftp_transfertest/ftp_transfer_testfile.txt';
|
||||||
|
$target_folder = APPLICATION_PATH . '/forms/Config/ftp_transfertest/ftp_target/';
|
||||||
|
$upload = false;
|
||||||
|
|
||||||
|
// try to connect via ssl to the ftp server
|
||||||
|
if ($ssl == 'y' && function_exists('ftp_ssl_connect')) {
|
||||||
|
$ftpStream = ftp_ssl_connect($server, $port, $timeout);
|
||||||
|
} else {
|
||||||
|
// otherwise try to connect to the ftp server normally
|
||||||
|
$ftpStream = ftp_connect($server, $port, $timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
// got resource?
|
||||||
|
if (!is_resource($ftpStream)) {
|
||||||
|
$message = sprintf($translator->_('L_FTP_CONNECTION_ERROR'), $server, $port);
|
||||||
|
|
||||||
|
// connection ok? let's try to login
|
||||||
|
} else if (!ftp_login($ftpStream, $user, $password)) {
|
||||||
|
$message = sprintf($translator->_('L_FTP_LOGIN_ERROR'), $user);
|
||||||
|
|
||||||
|
// if passive mode is set turn it on
|
||||||
|
if ($mode == 'y') {
|
||||||
|
ftp_pasv($ftpStream, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// login ok? let's set/change the ftp upload directory
|
||||||
|
} else if (!ftp_chdir($ftpStream, $directory)) {
|
||||||
|
$message = sprintf($translator->_('L_CHANGEDIRERROR'));
|
||||||
|
// chmod target_folder if it's necessary
|
||||||
|
} else if (file_exists($target_folder) && substr(sprintf('%o', fileperms($target_folder)), -4) < '0755') {
|
||||||
|
ftp_chmod($ftpStream, 0755, $target_folder);
|
||||||
|
$message = '';
|
||||||
|
// ftp directory exists and chmod ok? let's test the ftp transfer with a test file
|
||||||
|
} else if (!ftp_put($ftpStream, $target_folder.$name, $filename, FTP_ASCII)) {
|
||||||
|
$message = sprintf($translator->_('L_FTP_FILE_TRANSFER_ERROR'), $name);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$upload = true;
|
||||||
|
$message = sprintf($translator->_('L_FTP_FILE_TRANSFER_SUCCESS'), $name)
|
||||||
|
. '<br /><br />' .
|
||||||
|
$translator->_('L_FTP_OK');
|
||||||
|
|
||||||
|
// delete the test file after a successful transfer test
|
||||||
|
if (file_exists($target_folder.$name)) {
|
||||||
|
ftp_delete($ftpStream, $target_folder.$name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// let's show the error messages
|
||||||
|
if (!$upload && count($message) > 0) {
|
||||||
|
$this->view->popUpMessage()->addMessage(
|
||||||
|
'config-validate-error',
|
||||||
|
'L_ERROR',
|
||||||
|
$message,
|
||||||
|
array(
|
||||||
|
'modal' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
// or show the confirmation message
|
||||||
|
} else if ($upload && count($message) > 0) {
|
||||||
|
$this->view->popUpMessage()->addMessage(
|
||||||
|
'config-validate-message',
|
||||||
|
'L_NOTICE',
|
||||||
|
$message,
|
||||||
|
array(
|
||||||
|
'modal' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// close ftp connection
|
||||||
|
ftp_close($ftpStream);
|
||||||
|
}
|
||||||
|
$this->_forward('index');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the default value of all sub forms to the configuration values
|
* Set the default value of all sub forms to the configuration values
|
||||||
*
|
*
|
||||||
|
|
|
@ -331,8 +331,8 @@ class Application_Form_Config_Ftp extends Zend_Form_SubForm
|
||||||
'escape' => false,
|
'escape' => false,
|
||||||
'label' => '',
|
'label' => '',
|
||||||
'class' => 'Formbutton ftpToggle' . $index,
|
'class' => 'Formbutton ftpToggle' . $index,
|
||||||
'onclick' => "alert('checkConnection(" .
|
'onclick' => "testFtpConnection(" .
|
||||||
$index . ")');",
|
$index . ");",
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,14 @@ $deleteFtpConnectionUrl = $this->url(
|
||||||
null,
|
null,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
$testFtpConnectionUrl = $this->url(
|
||||||
|
array(
|
||||||
|
'controller' => 'config',
|
||||||
|
'action' => 'test.Ftp.Connection',
|
||||||
|
),
|
||||||
|
null,
|
||||||
|
true
|
||||||
|
);
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
/*<![CDATA[*/
|
/*<![CDATA[*/
|
||||||
|
@ -165,6 +173,13 @@ $deleteFtpConnectionUrl = $this->url(
|
||||||
$('#config_form').submit();
|
$('#config_form').submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testFtpConnection(recipientId)
|
||||||
|
{
|
||||||
|
setParam(recipientId);
|
||||||
|
$('#config_form').attr('action','<?php echo $testFtpConnectionUrl; ?>');
|
||||||
|
$('#config_form').submit();
|
||||||
|
}
|
||||||
|
|
||||||
function setParam(value)
|
function setParam(value)
|
||||||
{
|
{
|
||||||
$('#param').val(value);
|
$('#param').val(value);
|
||||||
|
|
Laden …
In neuem Issue referenzieren