208 lines
4.7 KiB
PHP
208 lines
4.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/submission/Representation.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 Representation
|
|
*
|
|
* @ingroup submission
|
|
*
|
|
* @brief A submission's representation (Publication Format, Galley, ...)
|
|
*/
|
|
|
|
namespace PKP\submission;
|
|
|
|
use APP\core\Application;
|
|
use APP\facades\Repo;
|
|
|
|
/**
|
|
* @extends \PKP\core\DataObject<DAO|RepresentationDAOInterface>
|
|
*/
|
|
class Representation extends \PKP\core\DataObject
|
|
{
|
|
/**
|
|
* Constructor.
|
|
*/
|
|
public function __construct()
|
|
{
|
|
// Switch on meta-data adapter support.
|
|
$this->setHasLoadableAdapters(true);
|
|
|
|
parent::__construct();
|
|
}
|
|
|
|
/**
|
|
* Get sequence of format in format listings for the submission.
|
|
*
|
|
* @return float
|
|
*/
|
|
public function getSequence()
|
|
{
|
|
return $this->getData('seq');
|
|
}
|
|
|
|
/**
|
|
* Set sequence of format in format listings for the submission.
|
|
*
|
|
* @param float $seq
|
|
*/
|
|
public function setSequence($seq)
|
|
{
|
|
$this->setData('seq', $seq);
|
|
}
|
|
|
|
/**
|
|
* Get "localized" format name (if applicable).
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getLocalizedName()
|
|
{
|
|
return $this->getLocalizedData('name');
|
|
}
|
|
|
|
/**
|
|
* Get the format name (if applicable).
|
|
*
|
|
* @param ?string $locale
|
|
*
|
|
* @return string|array<string,string>
|
|
*/
|
|
public function getName($locale = null)
|
|
{
|
|
return $this->getData('name', $locale);
|
|
}
|
|
|
|
/**
|
|
* Set name.
|
|
*
|
|
* @param string $name
|
|
* @param string $locale
|
|
*/
|
|
public function setName($name, $locale = null)
|
|
{
|
|
$this->setData('name', $name, $locale);
|
|
}
|
|
|
|
/**
|
|
* Determines if a representation is approved or not.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getIsApproved()
|
|
{
|
|
return (bool) $this->getData('isApproved');
|
|
}
|
|
|
|
/**
|
|
* Sets whether a representation is approved or not.
|
|
*
|
|
* @param bool $isApproved
|
|
*/
|
|
public function setIsApproved($isApproved)
|
|
{
|
|
return $this->setData('isApproved', $isApproved);
|
|
}
|
|
|
|
/**
|
|
* Returns current DOI
|
|
*
|
|
*/
|
|
public function getDoi(): ?string
|
|
{
|
|
$doiObject = $this->getData('doiObject');
|
|
|
|
if (empty($doiObject)) {
|
|
return null;
|
|
} else {
|
|
return $doiObject->getData('doi');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get stored public ID of the submission.
|
|
*
|
|
* This helper function is required by PKPPubIdPlugins.
|
|
* NB: To maintain backwards compatibility, getDoi() is called from here
|
|
*
|
|
* @param string $pubIdType One of the NLM pub-id-type values or
|
|
* 'other::something' if not part of the official NLM list
|
|
* (see <http://dtd.nlm.nih.gov/publishing/tag-library/n-4zh0.html>).
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getStoredPubId($pubIdType)
|
|
{
|
|
if ($pubIdType == 'doi') {
|
|
return $this->getDoi();
|
|
} else {
|
|
return $this->getData('pub-id::' . $pubIdType);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Set the stored public ID of the submission.
|
|
*
|
|
* @param string $pubIdType One of the NLM pub-id-type values or
|
|
* 'other::something' if not part of the official NLM list
|
|
* (see <http://dtd.nlm.nih.gov/publishing/tag-library/n-4zh0.html>).
|
|
* @param string $pubId
|
|
*/
|
|
public function setStoredPubId($pubIdType, $pubId)
|
|
{
|
|
$this->setData('pub-id::' . $pubIdType, $pubId);
|
|
}
|
|
|
|
/**
|
|
* Get the remote URL at which this representation is retrievable.
|
|
*
|
|
* @return string
|
|
*
|
|
* @deprecated 3.2.0.0
|
|
*/
|
|
public function getRemoteURL()
|
|
{
|
|
return $this->getData('urlRemote');
|
|
}
|
|
|
|
/**
|
|
* Set the remote URL for retrieving this representation.
|
|
*
|
|
* @param string $remoteURL
|
|
*
|
|
* @deprecated 3.2.0.0
|
|
*/
|
|
public function setRemoteURL($remoteURL)
|
|
{
|
|
return $this->setData('urlRemote', $remoteURL);
|
|
}
|
|
|
|
/**
|
|
* Get the context id from the submission assigned to this representation.
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getContextId()
|
|
{
|
|
$publication = Repo::publication()->get($this->getData('publicationId'));
|
|
$submission = Repo::submission()->get($publication->getData('submissionId'));
|
|
return $submission->getContextId();
|
|
}
|
|
|
|
/**
|
|
* @copydoc \PKP\core\DataObject::getDAO()
|
|
*/
|
|
public function getDAO()
|
|
{
|
|
return Application::getRepresentationDAO();
|
|
}
|
|
}
|
|
|
|
if (!PKP_STRICT_MODE) {
|
|
class_alias('\PKP\submission\Representation', '\Representation');
|
|
}
|