function store($local_file, $file_name, $relative_path, $remove_original = true, $prefixes = array()) { // If the file name ends in a disabled extension, fail. if (preg_match($this->DisabledExtensionRegEx, $file_name)) { $this->DisabledFileError = true; return false; } // If we're auto converting images to JPG from PNG $file_name = $this->convertJPEG($local_file, $file_name); // Enforce trailing slashe on relative_path $relative_path = $relative_path ? rtrim($relative_path, "/") . "/" : "files/"; if ($this->Cloud) { // Clean up the file name global $cms; $parts = BigTree::pathInfo($file_name); $clean_name = $cms->urlify($parts["filename"]); if (strlen($clean_name) > 50) { $clean_name = substr($clean_name, 0, 50); } // Best case name $file_name = $clean_name . "." . strtolower($parts["extension"]); $x = 2; // Make sure we have a unique name while (!$file_name || sqlrows(sqlquery("SELECT `timestamp` FROM bigtree_caches WHERE `identifier` = 'org.bigtreecms.cloudfiles' AND `key` = '" . sqlescape($relative_path . $file_name) . "'"))) { $file_name = $clean_name . "-{$x}." . strtolower($parts["extension"]); $x++; // Check all the prefixes, make sure they don't exist either if (is_array($prefixes) && count($prefixes)) { $prefix_query = array(); foreach ($prefixes as $prefix) { $prefix_query[] = "`key` = '" . sqlescape($relative_path . $prefix . $file_name) . "'"; } if (sqlrows(sqlquery("SELECT `timestamp` FROM bigtree_caches WHERE identifier = 'org.bigtreecms.cloudfiles' AND (" . implode(" OR ", $prefix_query) . ")"))) { $file_name = false; } } } // Upload it $success = $this->Cloud->uploadFile($local_file, $this->Settings->Container, $relative_path . $file_name, true); if ($success) { sqlquery("INSERT INTO bigtree_caches (`identifier`,`key`,`value`) VALUES ('org.bigtreecms.cloudfiles','" . sqlescape($relative_path . $file_name) . "','" . sqlescape(json_encode(array("name" => $file_name, "path" => $relative_path . $file_name, "size" => filesize($local_file)))) . "')"); } if ($remove_original) { unlink($local_file); } return $success; } else { $safe_name = BigTree::getAvailableFileName(SITE_ROOT . $relative_path, $file_name, $prefixes); if ($remove_original) { $success = BigTree::moveFile($local_file, SITE_ROOT . $relative_path . $safe_name); } else { $success = BigTree::copyFile($local_file, SITE_ROOT . $relative_path . $safe_name); } if ($success) { return "{staticroot}" . $relative_path . $safe_name; } else { return false; } } }
<?php $gateway->Service = "linkpoint"; $gateway->Settings["linkpoint-store"] = $_POST["linkpoint-store"]; $gateway->Settings["linkpoint-environment"] = $_POST["linkpoint-environment"]; if ($_FILES["linkpoint-certificate"]["tmp_name"]) { $filename = BigTree::getAvailableFileName(SERVER_ROOT . "custom/certificates/", $_FILES["linkpoint-certificate"]["name"]); BigTree::moveFile($_FILES["linkpoint-certificate"]["tmp_name"], SERVER_ROOT . "custom/certificates/" . $filename); $gateway->Settings["linkpoint-certificate"] = $filename; } $gateway->saveSettings(); $admin->growl("Developer", "Updated Payment Gateway"); BigTree::redirect(DEVELOPER_ROOT);
function installLocal() { // Create backups folder BigTree::makeDirectory(SERVER_ROOT . "backups/"); // Doing a core upgrade if ($this->Extension === false) { // Move old core into backups rename(SERVER_ROOT . "core/", SERVER_ROOT . "backups/core-" . BIGTREE_VERSION . "/"); // Backup database global $admin; $admin->backupDatabase(SERVER_ROOT . "backups/core-" . BIGTREE_VERSION . "/backup.sql"); // Move new core into place rename(SERVER_ROOT . "cache/update/core/", SERVER_ROOT . "core/"); // Doing an extension upgrade } else { $extension = $this->Extension; // Create a backups folder for this extension BigTree::makeDirectory(SERVER_ROOT . "backups/extensions/{$extension}/"); // Read manifest file for current version $current_manifest = json_decode(file_get_contents(SERVER_ROOT . "extensions/{$extension}/manifest.json"), true); $old_version = $current_manifest["version"]; // Get a unique directory name $old_version = BigTree::getAvailableFileName(SERVER_ROOT . "backups/extensions/{$extension}/", $old_version); // Move old extension into backups rename(SERVER_ROOT . "extensions/{$extension}/", SERVER_ROOT . "backups/extensions/{$extension}/{$old_version}/"); // Move new extension into place rename(SERVER_ROOT . "cache/update/", SERVER_ROOT . "extensions/{$extension}/"); } $this->cleanup(); }