filebrowser-8.x-2.x-dev/src/File/DisplayFile.php
src/File/DisplayFile.php
<?php
namespace Drupal\filebrowser\File;
use Drupal\Core\Controller\ControllerBase;
use stdClass;
class DisplayFile extends ControllerBase {
/**
* @var string
*/
public $id;
/**
* @var integer
*/
public $nid;
/**
* @var integer
*/
public $fid;
/**
* @var string
*/
public $description;
/**
* @var string
*/
public $displayName; //Test_test_test.jpg
/**
* @var string
*/
public $fsRoot;
/**
* @var string
*/
public $relativePath; //Test_test_test.jpg
/**
* @var string
*/
public $fullPath; //Test_test_test.jpg
/**
* @var boolean
*/
public $status; //0
/**
* @var object
*/
public $file; //stdClass Object
/**
* @var object
*/
public $fileData; //stdClass Object
/**
* @var string
*/
public $uri; // public://Directory/Test_test_test.jpg
/**
* @var string
*/
public $filename; // Test_test_test.jpg
/**
* @var string
*/
public $name; // Test_test_test
/**
* @var string
*/
public $url; //http://drupalvm.dev/sites/default/files/Directory/Test_test_test.jpg
/**
* @var string
*/
public $mimetype; // image/jpeg
/**
* @var integer
*/
public $size; // 78527
/**
* @var string
*/
public $type; // file
/**
* @var integer
*/
public $timestamp; // 1467989263
/**
* @var \Drupal\Core\Link
*/
public $link; // Drupal\Core\GeneratedLink Object
/**
* @var string
*/
public $href;
/**
* @var array
*/
public $metadata;
public function __construct($nid) {
$this->nid = $nid;
}
/**
* @param $file_relative_path
* @param \stdClass $fs_file
* @param $stats
* @param $db_content
* @param $root
*
* @return \Drupal\filebrowser\File\DisplayFile
*/
public function fileSetData($file_relative_path, $fs_file, &$stats, $db_content, $root) {
$this->fid = $db_content['fid'] ?? NULL;
$this->description = $db_content['description'] ?? NULL;
$this->displayName = $db_content['display_name'];
$this->name = $db_content['display_name'];
$this->fsRoot = $root;
$this->relativePath = $file_relative_path;
$this->fullPath = rtrim($this->fsRoot ?? '', '/') . "/" . $fs_file->filename;
$this->status = MARK_READ;
$this->fileData = $fs_file;
if($this->currentUser()->id() && isset($this->fileData->timestamp)) {
// if ($this->user->getLastAccessedTime() <
if ($this->currentUser()->getLastAccessedTime() < $this->fileData->timestamp) {
$this->status = MARK_NEW;
}
}
return $this;
}
/**
* @function Creates a .. file for the abstracted file system.
* @param string $relative_path
* @return object $this
*/
public function createSubdir($relative_path) {
function s3_create_subdir($nid, $fs_root) {
return [
'nid' => $nid,
'display-name' => '..',
'relative-path' => '/',
'full-path' => $fs_root,
'status' => MARK_READ,
'kind' => 2,
'mime-type' => 'folder/parent',
'url' => url('node/' . $nid, ['absolute' => TRUE]),
];
}
$this->nid =
$this->fid = null;
$this->description = null;
$this->displayName = '..';
$this->fsRoot = null;
$this->relativePath = $relative_path;
$this->fullPath = $this->fsRoot;
//todo: mark logic
$this->status = MARK_READ;
$this->fileData = new stdClass();
$this->fileData->mimetype = 'folder/parent';
$this->fileData->type = 'directory';
return $this;
}
/**
* @function Creates a . file for the abstracted file system.
* @param string $relative_path
* @return object $this
*/
public function createUpDir($relative_path) {
$this->fid = null;
$this->description = null;
$this->displayName = '.';
$this->fsRoot = null;
$this->relativePath = $relative_path;
$this->fullPath = $this->fsRoot;
//todo: mark logic
$this->status = MARK_READ;
$this->fileData = new stdClass();
$this->fileData->mimetype = 'folder';
$this->fileData->type = 'directory';
return $this;
}
}
