316 lines
6.2 KiB
PHP
316 lines
6.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/context/LibraryFile.php
|
|
*
|
|
* Copyright (c) 2014-2021 Simon Fraser University
|
|
* Copyright (c) 2003-2021 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class LibraryFile
|
|
*
|
|
* @ingroup context
|
|
*
|
|
* @see LibraryFileDAO
|
|
*
|
|
* @brief Library file class.
|
|
*/
|
|
|
|
namespace PKP\context;
|
|
|
|
use PKP\config\Config;
|
|
use PKP\file\FileManager;
|
|
|
|
class LibraryFile extends \PKP\core\DataObject
|
|
{
|
|
public const LIBRARY_FILE_TYPE_CONTRACT = 1;
|
|
public const LIBRARY_FILE_TYPE_MARKETING = 2;
|
|
public const LIBRARY_FILE_TYPE_PERMISSION = 3;
|
|
public const LIBRARY_FILE_TYPE_REPORT = 4;
|
|
public const LIBRARY_FILE_TYPE_OTHER = 5;
|
|
|
|
/**
|
|
* Return absolute path to the file on the host filesystem.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getFilePath()
|
|
{
|
|
$contextId = $this->getContextId();
|
|
|
|
return Config::getVar('files', 'files_dir') . '/contexts/' . $contextId . '/library/' . $this->getServerFileName();
|
|
}
|
|
|
|
//
|
|
// Get/set methods
|
|
//
|
|
/**
|
|
* Get ID of context.
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getContextId()
|
|
{
|
|
return $this->getData('contextId');
|
|
}
|
|
|
|
/**
|
|
* Set ID of context.
|
|
*
|
|
* @param int $contextId
|
|
*/
|
|
public function setContextId($contextId)
|
|
{
|
|
$this->setData('contextId', $contextId);
|
|
}
|
|
|
|
/**
|
|
* Get ID of submission.
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getSubmissionId()
|
|
{
|
|
return $this->getData('submissionId');
|
|
}
|
|
|
|
/**
|
|
* Set ID of submission.
|
|
*/
|
|
public function setSubmissionId($submissionId)
|
|
{
|
|
$this->setData('submissionId', $submissionId);
|
|
}
|
|
|
|
/**
|
|
* Get server-side file name of the file.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getServerFileName()
|
|
{
|
|
return $this->getData('fileName');
|
|
}
|
|
|
|
/**
|
|
* Set server-side file name of the file.
|
|
*
|
|
* @param string $fileName
|
|
*/
|
|
public function setServerFileName($fileName)
|
|
{
|
|
$this->setData('fileName', $fileName);
|
|
}
|
|
|
|
/**
|
|
* Get original file name of the file.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getOriginalFileName()
|
|
{
|
|
return $this->getData('originalFileName');
|
|
}
|
|
|
|
/**
|
|
* Set original file name of the file.
|
|
*
|
|
* @param string $originalFileName
|
|
*/
|
|
public function setOriginalFileName($originalFileName)
|
|
{
|
|
$this->setData('originalFileName', $originalFileName);
|
|
}
|
|
|
|
/**
|
|
* Set the name of the file
|
|
*
|
|
* @param string $name
|
|
* @param string $locale
|
|
*/
|
|
public function setName($name, $locale)
|
|
{
|
|
$this->setData('name', $name, $locale);
|
|
}
|
|
|
|
/**
|
|
* Get the name of the file
|
|
*
|
|
* @param string $locale
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getName($locale)
|
|
{
|
|
return $this->getData('name', $locale);
|
|
}
|
|
|
|
/**
|
|
* Get the localized name of the file
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getLocalizedName()
|
|
{
|
|
return $this->getLocalizedData('name');
|
|
}
|
|
|
|
/**
|
|
* Get file type of the file.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getFileType()
|
|
{
|
|
return $this->getData('fileType');
|
|
}
|
|
|
|
/**
|
|
* Set file type of the file.
|
|
*
|
|
* @param string $fileType
|
|
*/
|
|
public function setFileType($fileType)
|
|
{
|
|
$this->setData('fileType', $fileType);
|
|
}
|
|
|
|
/**
|
|
* Get type of the file.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getType()
|
|
{
|
|
return $this->getData('type');
|
|
}
|
|
|
|
/**
|
|
* Set type of the file.
|
|
*
|
|
* @param string $type
|
|
*/
|
|
public function setType($type)
|
|
{
|
|
$this->setData('type', $type);
|
|
}
|
|
|
|
/**
|
|
* Get uploaded date of file.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getDateUploaded()
|
|
{
|
|
return $this->getData('dateUploaded');
|
|
}
|
|
|
|
/**
|
|
* Set uploaded date of file.
|
|
*
|
|
* @param string $dateUploaded
|
|
*/
|
|
public function setDateUploaded($dateUploaded)
|
|
{
|
|
return $this->SetData('dateUploaded', $dateUploaded);
|
|
}
|
|
|
|
/**
|
|
* Get modified date of file.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getDateModified()
|
|
{
|
|
return $this->getData('dateModified');
|
|
}
|
|
|
|
/**
|
|
* Set modified date of file.
|
|
*
|
|
* @param string $dateModified
|
|
*/
|
|
public function setDateModified($dateModified)
|
|
{
|
|
return $this->SetData('dateModified', $dateModified);
|
|
}
|
|
|
|
/**
|
|
* Get file size of file.
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getFileSize()
|
|
{
|
|
return $this->getData('fileSize');
|
|
}
|
|
|
|
|
|
/**
|
|
* Set file size of file.
|
|
*
|
|
* @param int $fileSize
|
|
*/
|
|
public function setFileSize($fileSize)
|
|
{
|
|
return $this->SetData('fileSize', $fileSize);
|
|
}
|
|
|
|
/**
|
|
* Get nice file size of file.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getNiceFileSize()
|
|
{
|
|
$fileManager = new FileManager();
|
|
return $fileManager->getNiceFileSize($this->getData('fileSize'));
|
|
}
|
|
|
|
/**
|
|
* Get the file's document type (enumerated types)
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getDocumentType()
|
|
{
|
|
$fileManager = new FileManager();
|
|
return $fileManager->getDocumentType($this->getFileType());
|
|
}
|
|
|
|
/**
|
|
* Get public access indication
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getPublicAccess()
|
|
{
|
|
return $this->getData('publicAccess');
|
|
}
|
|
|
|
/**
|
|
* Set public access indication
|
|
*
|
|
* @param bool $publicAccess
|
|
*/
|
|
public function setPublicAccess($publicAccess)
|
|
{
|
|
$this->setData('publicAccess', $publicAccess);
|
|
}
|
|
}
|
|
|
|
if (!PKP_STRICT_MODE) {
|
|
class_alias('\PKP\context\LibraryFile', '\LibraryFile');
|
|
foreach ([
|
|
'LIBRARY_FILE_TYPE_CONTRACT',
|
|
'LIBRARY_FILE_TYPE_MARKETING',
|
|
'LIBRARY_FILE_TYPE_PERMISSION',
|
|
'LIBRARY_FILE_TYPE_REPORT',
|
|
'LIBRARY_FILE_TYPE_OTHER',
|
|
] as $constantName) {
|
|
if (!defined($constantName)) {
|
|
define($constantName, constant('LibraryFile::' . $constantName));
|
|
}
|
|
}
|
|
}
|