237 lines
4.6 KiB
PHP
237 lines
4.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/submission/Genre.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 Genre
|
|
*
|
|
* @ingroup submission
|
|
*
|
|
* @see GenreDAO
|
|
*
|
|
* @brief Basic class describing a genre.
|
|
*/
|
|
|
|
namespace PKP\submission;
|
|
|
|
use PKP\db\DAORegistry;
|
|
|
|
class Genre extends \PKP\core\DataObject
|
|
{
|
|
public const GENRE_CATEGORY_DOCUMENT = 1;
|
|
public const GENRE_CATEGORY_ARTWORK = 2;
|
|
public const GENRE_CATEGORY_SUPPLEMENTARY = 3;
|
|
|
|
/**
|
|
* 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 sequence of genre.
|
|
*
|
|
* @return float
|
|
*/
|
|
public function getSequence()
|
|
{
|
|
return $this->getData('sequence');
|
|
}
|
|
|
|
/**
|
|
* Set sequence of genre.
|
|
*
|
|
* @param float $sequence
|
|
*/
|
|
public function setSequence($sequence)
|
|
{
|
|
$this->setData('sequence', $sequence);
|
|
}
|
|
|
|
/**
|
|
* Get key of genre.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getKey()
|
|
{
|
|
return $this->getData('key');
|
|
}
|
|
|
|
/**
|
|
* Set key of genre.
|
|
*
|
|
* @param string $key
|
|
*/
|
|
public function setKey($key)
|
|
{
|
|
$this->setData('key', $key);
|
|
}
|
|
|
|
/**
|
|
* Get enabled status of genre.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getEnabled()
|
|
{
|
|
return $this->getData('enabled');
|
|
}
|
|
|
|
/**
|
|
* Set enabled status of genre.
|
|
*
|
|
* @param bool $enabled
|
|
*/
|
|
public function setEnabled($enabled)
|
|
{
|
|
$this->setData('enabled', $enabled);
|
|
}
|
|
|
|
/**
|
|
* Set the name of the genre
|
|
*
|
|
* @param string $name
|
|
* @param string $locale
|
|
*/
|
|
public function setName($name, $locale)
|
|
{
|
|
$this->setData('name', $name, $locale);
|
|
}
|
|
|
|
/**
|
|
* Get the name of the genre
|
|
*
|
|
* @param string $locale
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getName($locale)
|
|
{
|
|
return $this->getData('name', $locale);
|
|
}
|
|
|
|
/**
|
|
* Get the localized name of the genre
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getLocalizedName()
|
|
{
|
|
return $this->getLocalizedData('name');
|
|
}
|
|
|
|
/**
|
|
* Get context file category (e.g. artwork or document)
|
|
*
|
|
* @return int GENRE_CATEGORY_...
|
|
*/
|
|
public function getCategory()
|
|
{
|
|
return $this->getData('category');
|
|
}
|
|
|
|
/**
|
|
* Set context file category (e.g. artwork or document)
|
|
*
|
|
* @param int $category GENRE_CATEGORY_...
|
|
*/
|
|
public function setCategory($category)
|
|
{
|
|
$this->setData('category', $category);
|
|
}
|
|
|
|
/**
|
|
* Get dependent flag
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getDependent()
|
|
{
|
|
return $this->getData('dependent');
|
|
}
|
|
|
|
/**
|
|
* Set dependent flag
|
|
*
|
|
* @param bool $dependent
|
|
*/
|
|
public function setDependent($dependent)
|
|
{
|
|
$this->setData('dependent', $dependent);
|
|
}
|
|
|
|
/**
|
|
* Get supplementary flag
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getSupplementary()
|
|
{
|
|
return $this->getData('supplementary');
|
|
}
|
|
|
|
/**
|
|
* Set supplementary flag
|
|
*
|
|
* @param bool $supplementary
|
|
*/
|
|
public function setSupplementary($supplementary)
|
|
{
|
|
$this->setData('supplementary', $supplementary);
|
|
}
|
|
|
|
/**
|
|
* Get whether this file is required for new submissions
|
|
*/
|
|
public function getRequired(): bool
|
|
{
|
|
return (bool) $this->getData('required');
|
|
}
|
|
|
|
/**
|
|
* Set whether this file is required for new submissions
|
|
*/
|
|
public function setRequired(bool $required): void
|
|
{
|
|
$this->setData('required', $required);
|
|
}
|
|
|
|
/**
|
|
* Is this a default genre.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isDefault()
|
|
{
|
|
$genreDao = DAORegistry::getDAO('GenreDAO'); /** @var GenreDAO $genreDao */
|
|
$defaultKeys = $genreDao->getDefaultKeys();
|
|
return in_array($this->getKey(), $defaultKeys);
|
|
}
|
|
}
|
|
|
|
if (!PKP_STRICT_MODE) {
|
|
class_alias('\PKP\submission\Genre', '\Genre');
|
|
foreach (['GENRE_CATEGORY_DOCUMENT', 'GENRE_CATEGORY_ARTWORK', 'GENRE_CATEGORY_SUPPLEMENTARY'] as $constantName) {
|
|
define($constantName, constant('\Genre::' . $constantName));
|
|
}
|
|
}
|