Пример #1
0
require_once __DIR__ . '/helper.php';
use Dropbox as dbx;
list($client, $dropboxPath) = parseArgs("get-metadata", $argv, array(array("dropbox-path", "The path (on Dropbox) that you want metadata for.")));
$pathError = dbx\Path::findError($dropboxPath);
if ($pathError !== null) {
    fwrite(STDERR, "Invalid <dropbox-path>: {$pathError}\n");
    die;
}
$metadata = $client->getMetadataWithChildren($dropboxPath);
if ($metadata === null) {
    fwrite(STDERR, "No file or folder at that path.\n");
    die;
}
// If it's a folder, remove the 'contents' list from $metadata; print that stuff out after.
$children = null;
if ($metadata['is_dir']) {
    $children = $metadata['contents'];
    unset($metadata['contents']);
}
print_r($metadata);
if ($children !== null && count($children) > 0) {
    print "Children:\n";
    foreach ($children as $child) {
        $name = dbx\Path::getName($child['path']);
        if ($child['is_dir']) {
            $name = "{$name}/";
        }
        // Put a "/" after folder names.
        print "- {$name}\n";
    }
}
 public function compile()
 {
     if (TL_MODE == 'FE') {
         $strHref = \Environment::get('request');
         // Remove an existing file parameter (see #5683)
         if (preg_match('/(&(amp;)?|\\?)' . $this->strQsParam . '=/', $strHref)) {
             $strHref = preg_replace('/(&(amp;)?|\\?)' . $this->strQsParam . '=[^&]+/', '', $strHref);
         }
         $strDownloadBaseUrl = $strHref . (\Config::get('disableAlias') || strpos($strHref, '?') !== false ? '&amp;' : '?') . $this->strQsParam . '=';
         //$appInfo = new dbx\AppInfo(\Config::get('dropboxApiKey'), \Config::get('dropboxApiSecret'));
         //$webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0");
         //$authorizeUrl = $webAuth->start();
         $accessToken = \Config::get('dropboxAccessToken');
         $dbxClient = new \DropboxClient($accessToken, "PHP-Example/1.0");
         // =========================================================================================================
         // get metadata by chooser
         // =========================================================================================================
         if ($this->dropboxChooserFiles !== '') {
             $children = json_decode($this->dropboxChooserFiles, true);
             //		        foreach ($filesList as $f)
             //		        {
             //			        $f['path'] = $f['name'];
             //			        //$f['download_link'] = $dbxClient->createTemporaryDirectLink($f['link']);
             //		        }
             //$this->Template->filesInFolder = $filesList;
         }
         // $previewLink = 'https://www.dropbox.com/s/wq6u9zx1psa9nrh/2012-11-26%201%20Battesimo.pdf?dl=0';
         // $metadata = $dbxClient->getMetadataSharedLink($previewLink);
         // =========================================================================================================
         // get metadata by path
         // =========================================================================================================
         //$metadata = $dbxClient->getMetadataWithChildren(urldecode($this->dropboxPath));
         //            $pathError = dbx\Path::findError($this->dropboxPath);
         //            if ($pathError !== null)
         //            {
         //                $this->Template->errors = "Invalid <dropbox-path>: $pathError";
         //                return;
         //            }
         Dump($children);
         if ($this->dropboxPath !== '') {
             if ($metadata === null) {
                 $this->Template->errors = "No file or folder at that path.";
                 return;
             }
             // If it's a folder, remove the 'contents' list from $metadata; print that stuff out after.
             $children = null;
             if ($metadata['is_dir']) {
                 $children = $metadata['contents'];
                 unset($metadata['contents']);
             }
             $this->Template->metadata = $metadata;
         }
         $ff = array();
         foreach ($children as $f) {
             if (array_key_exists('path', $f)) {
                 $name = dbx\Path::getName($f['path']);
             } else {
                 $name = $f['name'];
             }
             // Put a "/" after folder names.
             $f['name'] = $name . ($f['is_dir'] ? '/' : '');
             if ($f['is_dir']) {
                 $f['download_link'] = '';
             } else {
                 $f['download_link'] = $strDownloadBaseUrl . \System::urlEncode($name);
             }
             $ff[] = $f;
         }
         $this->Template->filesInFolder = $ff;
         Dump($GLOBALS['TL_DCA']['tl_content']['palettes']['__selector__']);
     }
 }