OpenCart 🇺🇦

Метод ModelOpenbayOpenbay::ftpTestConnection(...)

Схема

public mixed ftpTestConnection ( )

Аргументы

Аргумент Возможный тип Описание
У метода нет аргументов

Описание

Метод пока еще не документирован.

Исходный код

$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'));
}