$this->load->language('extension/openbay');
$data = $this->request->post;
$data['user'] = $data['openbay_ftp_username'];
$data['pw'] = html_entity_decode($data['openbay_ftp_pw']);
$data['server'] = trim($data['openbay_ftp_server'], '/\\');
$data['rootpath'] = $data['openbay_ftp_rootpath'];
if (empty($data['user'])) {
return array('connection' => false, 'msg' => $this->language->get('update_error_username'));
}
if (empty($data['pw'])) {
return array('connection' => false, 'msg' => $this->language->get('update_error_password'));
}
if (empty($data['server'])) {
return array('connection' => false, 'msg' => $this->language->get('update_error_server'));
}
$connection = @ftp_connect($data['server']);
if ($connection != false) {
if (@ftp_login($connection, $data['user'], $data['pw'])) {
if (!empty($data['rootpath'])) {
@ftp_chdir($connection, $data['rootpath']);
}
$directory_list = ftp_nlist($connection, ".");
$folders = array();
foreach ($directory_list as $key => $list) {
if ($this->ftpDir($list, $connection)) {
$folders[] = $list;
}
}
$folder_error = false;
$folder_error_admin = false;
if (!in_array('catalog', $folders)) {
$folder_error = true;
}
if (!in_array('system', $folders)) {
$folder_error = true;
}
if (!in_array('image', $folders)) {
$folder_error = true;
}
if (!in_array($data['openbay_admin_directory'], $folders)) {
$folder_error_admin = true;
}
ftp_close($connection);
if ($folder_error_admin == true) {
return array('connection' => false, 'msg' => $this->language->get('update_okcon_noadmin'));
} else {
if ($folder_error == true) {
return array('connection' => false, 'msg' => $this->language->get('update_okcon_nofiles'), 'dir' => json_encode($directory_list));
} else {
return array('connection' => true, 'msg' => $this->language->get('update_okcon'));
}
}
} else {
return array('connection' => false, 'msg' => $this->language->get('update_failed_user'));
}
} else {
return array('connection' => false, 'msg' => $this->language->get('update_failed_connect'));
}