XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
install.model.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 class installModel extends install
4 {
5  var $pwd;
6 
7  function getSFTPList()
8  {
9  $ftp_info = Context::getRequestVars();
10  if(!$ftp_info->ftp_host)
11  {
12  $ftp_info->ftp_host = "127.0.0.1";
13  }
14 
15  $connection = ssh2_connect($ftp_info->ftp_host, $ftp_info->ftp_port);
16  if(!ssh2_auth_password($connection, $ftp_info->ftp_user, $ftp_info->ftp_password))
17  {
18  return new BaseObject(-1,'msg_ftp_invalid_auth_info');
19  }
20 
21  $sftp = ssh2_sftp($connection);
22  $curpwd = "ssh2.sftp://$sftp".$this->pwd;
23  $dh = @opendir($curpwd);
24  if(!$dh) return new BaseObject(-1, 'msg_ftp_invalid_path');
25 
26  $list = array();
27  while(($file = readdir($dh)) !== false)
28  {
29  if(!is_dir($curpwd.$file)) continue;
30  $list[] = $file . "/";
31  }
32  closedir($dh);
33  $this->add('list', $list);
34  }
35 
36  function getInstallFTPList()
37  {
38  if(!($ftp_info = Context::getRequestVars()) || !$ftp_info->ftp_user || !$ftp_info->ftp_password)
39  {
40  return new BaseObject(-1, 'msg_ftp_invalid_auth_info');
41  }
42  $this->pwd = $ftp_info->ftp_root_path;
43  if(!$ftp_info->ftp_host)
44  {
45  $ftp_info->ftp_host = "127.0.0.1";
46  }
47 
48  if($ftp_info->sftp == 'Y')
49  {
50  return $this->getSFTPList();
51  }
52 
53  $_list = NULL;
54  if(function_exists('ftp_connect'))
55  {
56  $connection = ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port);
57  if(!$connection) return new BaseObject(-1, sprintf(Context::getLang('msg_ftp_not_connected'), 'host'));
58  if(! @ftp_login($connection, $ftp_info->ftp_user, $ftp_info->ftp_password))
59  {
60  ftp_close($connection);
61  return new BaseObject(-1,'msg_ftp_invalid_auth_info');
62  }
63 
64  if($ftp_info->ftp_pasv != "N")
65  {
66  ftp_pasv($connection, true);
67  }
68 
69  $_list = ftp_rawlist($connection, $this->pwd);
70  ftp_close($connection);
71  }
72  else
73  {
74  require_once(_XE_PATH_.'libs/ftp.class.php');
75  $oFtp = new ftp();
76  if($oFtp->ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port))
77  {
78  if($oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password))
79  {
80  $_list = $oFtp->ftp_rawlist($this->pwd);
81  $oFtp->ftp_quit();
82  }
83  else
84  {
85  $oFtp->ftp_quit();
86  return new BaseObject(-1,'msg_ftp_invalid_auth_info');
87  }
88  }
89  }
90 
91  $list = array();
92  if($_list)
93  {
94  foreach($_list as $k => $v)
95  {
96  $src = new stdClass();
97  $src->data = $v;
98  $res = Context::convertEncoding($src);
99  $v = $res->data;
100  if(strpos($v,'d') === 0 || strpos($v, '<DIR>')) $list[] = substr(strrchr($v,' '),1) . '/';
101  }
102  }
103  $this->add('list', $list);
104  }
105 }
106 /* End of file install.model.php */
107 /* Location: ./modules/install/install.model.php */
add($key, $val)
install module of the high class
getLang($code)
const _XE_PATH_
Definition: config.inc.php:49
convertEncoding($source_obj)