Ejemplo n.º 1
0
 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;
         }
     }
 }
Ejemplo n.º 2
0
<?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);
Ejemplo n.º 3
0
 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();
 }