PATH:
home
/
vcomplcotr
/
www
/
wp-content
/
plugins
/
akeebabackupwp
/
app
/
Solo
/
Model
<?php /** * @package solo * @copyright Copyright (c)2014-2026 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU General Public License version 3, or later */ namespace Solo\Model; use Awf\Filesystem\Sftp; use Awf\Mvc\Model; class Sftpbrowser extends Model { public function doBrowse() { $dir = $this->getState('directory'); // Remove the trailing slash and commit it in the state $this->setState('directory', rtrim($dir, '/')); // Parse directory to parts $parsed_dir = trim($dir,'/'); $parts = empty($parsed_dir) ? array() : explode('/', $parsed_dir); // Find the path to the parent directory if (!empty($parts)) { $copy_of_parts = $parts; array_pop($copy_of_parts); if (!empty($copy_of_parts)) { $parent_directory = '/' . implode('/', $copy_of_parts); } else { $parent_directory = '/'; } } else { $parent_directory = '/'; } $options = array( 'host' => $this->getState('host'), 'port' => $this->getState('port'), 'username' => $this->getState('username'), 'password' => $this->getState('password'), 'directory' => $this->getState('directory'), 'privKey' => $this->getState('privKey'), 'pubKey' => $this->getState('pubKey'), ); $list = false; $error = ''; try { $sftp = new Sftp($options); $list = $sftp->listFolders(); } catch (\RuntimeException $e) { $error = $e->getMessage(); // Did I get an error while fetching the list of folders? Let's try using the working dir if(isset($sftp)) { try { $dir = rtrim($sftp->cwd(), '/').'/'.trim($dir, '/'); $dir = rtrim($dir, '/'); $this->setState('directory', $dir); $list = $sftp->listFolders($dir); $error = ''; $parsed_dir = trim($dir,'/'); $parts = empty($parsed_dir) ? array() : explode('/', $parsed_dir); // Find the path to the parent directory if (!empty($parts)) { $copy_of_parts = $parts; array_pop($copy_of_parts); if (!empty($copy_of_parts)) { $parent_directory = '/' . implode('/', $copy_of_parts); } else { $parent_directory = '/'; } } else { $parent_directory = '/'; } } catch(\RuntimeException $e) { $error = $e->getMessage(); } } } $response_array = array( 'error' => $error, 'list' => $list, 'breadcrumbs' => $parts, 'directory' => $this->getState('directory'), 'parent' => $parent_directory ); return $response_array; } }
[+]
..
[-] Profiles.php
[edit]
[-] Fsfilters.php
[edit]
[-] Phpinfo.php
[edit]
[-] Manage.php
[edit]
[-] Dbfilters.php
[edit]
[-] Update.php
[edit]
[-] Main.php
[edit]
[-] Backup.php
[edit]
[-] Wizard.php
[edit]
[+]
Exception
[-] Stats.php
[edit]
[-] Sftpbrowser.php
[edit]
[-] Log.php
[edit]
[-] Ftpbrowser.php
[edit]
[-] Oauth2.php
[edit]
[+]
OAuth2
[-] Sysconfig.php
[edit]
[-] Configuration.php
[edit]
[+]
Mixin
[-] Browser.php
[edit]