rhymix/modules/install/install.model.php
Kijin Sung 84e5542d77 Remove unnecessary use of BaseObject
- 트리거 등 반환값이 필요하지 않은 곳에서 new BaseObject()를 반환하는 것 삭제
- 모듈 설치, 업데이트 후 무의미한 new BaseObject()를 반환하는 것 삭제
- 사용자에게 에러 메시지를 돌려주는 용도로 new BaseObject(-1, '에러메시지')를
  사용하는 경우는 대부분 $this->setError()로 변경함. 언어 변환과 sprintf()
  처리까지 한 번에 이루어지므로 이쪽이 더 편리함.
2017-12-01 00:54:51 +09:00

106 lines
2.5 KiB
PHP

<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
class installModel extends install
{
var $pwd;
function getSFTPList()
{
$ftp_info = Context::getRequestVars();
if(!$ftp_info->ftp_host)
{
$ftp_info->ftp_host = "127.0.0.1";
}
$connection = ssh2_connect($ftp_info->ftp_host, $ftp_info->ftp_port);
if(!ssh2_auth_password($connection, $ftp_info->ftp_user, $ftp_info->ftp_password))
{
return $this->setError('msg_ftp_invalid_auth_info');
}
$sftp = ssh2_sftp($connection);
$curpwd = "ssh2.sftp://$sftp".$this->pwd;
$dh = @opendir($curpwd);
if(!$dh) return $this->setError('msg_ftp_invalid_path');
$list = array();
while(($file = readdir($dh)) !== false)
{
if(!is_dir($curpwd.$file)) continue;
$list[] = $file . "/";
}
closedir($dh);
$this->add('list', $list);
}
function getInstallFTPList()
{
if(!($ftp_info = Context::getRequestVars()) || !$ftp_info->ftp_user || !$ftp_info->ftp_password)
{
return $this->setError('msg_ftp_invalid_auth_info');
}
$this->pwd = $ftp_info->ftp_root_path;
if(!$ftp_info->ftp_host)
{
$ftp_info->ftp_host = "127.0.0.1";
}
if($ftp_info->sftp == 'Y')
{
return $this->getSFTPList();
}
$_list = NULL;
if(function_exists('ftp_connect'))
{
$connection = ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port);
if(!$connection) return $this->setError(sprintf(lang('msg_ftp_not_connected'), 'host'));
if(! @ftp_login($connection, $ftp_info->ftp_user, $ftp_info->ftp_password))
{
ftp_close($connection);
return $this->setError('msg_ftp_invalid_auth_info');
}
if($ftp_info->ftp_pasv != "N")
{
ftp_pasv($connection, true);
}
$_list = ftp_rawlist($connection, $this->pwd);
ftp_close($connection);
}
else
{
$oFtp = new ftp();
if($oFtp->ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port))
{
if($oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password))
{
$_list = $oFtp->ftp_rawlist($this->pwd);
$oFtp->ftp_quit();
}
else
{
$oFtp->ftp_quit();
return $this->setError('msg_ftp_invalid_auth_info');
}
}
}
$list = array();
if($_list)
{
foreach($_list as $k => $v)
{
$src = new stdClass();
$src->data = $v;
$res = Context::convertEncoding($src);
$v = $res->data;
if(strpos($v,'d') === 0 || strpos($v, '<DIR>')) $list[] = substr(strrchr($v,' '),1) . '/';
}
}
$this->add('list', $list);
}
}
/* End of file install.model.php */
/* Location: ./modules/install/install.model.php */