function __construct($extension = false) { $this->Extension = $extension; // See if local will work $path = $extension ? SERVER_ROOT . "extensions/{$extension}/" : SERVER_ROOT . "core/"; if (is_writable(SERVER_ROOT) && is_writable($path)) { $this->Method = "Local"; } else { // Can't use local, see what FTP methods are available $ftp = new BigTreeFTP(); $sftp = new BigTreeSFTP(); if ($ftp->connect("localhost")) { $this->Connection = $ftp; $this->Method = "FTP"; } elseif ($sftp->connect("localhost")) { $this->Connection = $ftp; $this->Method = "SFTP"; } } }
if (is_dir($file)) { rmdir($file); } else { unlink($file); } } rmdir(SERVER_ROOT . "cache/update/"); unlink(SERVER_ROOT . "cache/update.zip"); BigTree::redirect(DEVELOPER_ROOT . "upgrade/database/"); } else { // If we had to set a directory path we lost the POST if (!count($_POST)) { $_POST = $_SESSION["bigtree_admin"]["ftp"]; } // Make sure FTP login works $ftp = new BigTreeFTP(); if (!$ftp->connect("localhost")) { BigTree::redirect(DEVELOPER_ROOT . "upgrade/failed/"); } if (!$ftp->login($_POST["username"], $_POST["password"])) { $admin->growl("Developer", "FTP Login Failed", "error"); BigTree::redirect(DEVELOPER_ROOT . "upgrade/login/?type=" . $_POST["type"]); } // Try to determine the FTP root. $ftp_root = false; if ($admin->settingExists("bigtree-internal-ftp-upgrade-root") && $ftp->changeDirectory($cms->getSetting("bigtree-internal-ftp-upgrade-root") . "core/inc/bigtree/")) { $ftp_root = $cms->getSetting("bigtree-internal-ftp-upgrade-root"); } elseif ($ftp->changeDirectory(SERVER_ROOT . "inc/bigtree/")) { $ftp_root = SERVER_ROOT; } elseif ($ftp->changeDirectory("/core/inc/bigtree")) { $ftp_root = "/";