112 lines
2.5 KiB
PHP
112 lines
2.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/section/Section.php
|
|
*
|
|
* Copyright (c) 2014-2023 Simon Fraser University
|
|
* Copyright (c) 2003-2023 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class PKPSection
|
|
*
|
|
* @ingroup section
|
|
*
|
|
* @see DAO
|
|
*
|
|
* @brief Basic class describing a section.
|
|
*/
|
|
|
|
namespace PKP\section;
|
|
|
|
use PKP\security\Role;
|
|
|
|
class PKPSection extends \PKP\core\DataObject
|
|
{
|
|
/**
|
|
* What user roles are allowed to submit to sections
|
|
* that have restricted submissions to editors
|
|
*
|
|
* @return int[] One or more ROLE_ID_* constants
|
|
*/
|
|
public static function getEditorRestrictedRoles(): array
|
|
{
|
|
return [
|
|
Role::ROLE_ID_SITE_ADMIN,
|
|
Role::ROLE_ID_MANAGER,
|
|
Role::ROLE_ID_SUB_EDITOR
|
|
];
|
|
}
|
|
|
|
public function getContextId(): int
|
|
{
|
|
return $this->getData('contextId');
|
|
}
|
|
|
|
public function setContextId(int $contextId): void
|
|
{
|
|
$this->setData('contextId', $contextId);
|
|
}
|
|
|
|
public function getSequence(): float
|
|
{
|
|
return $this->getData('sequence');
|
|
}
|
|
|
|
public function setSequence(float $sequence): void
|
|
{
|
|
$this->setData('sequence', $sequence);
|
|
}
|
|
|
|
/* Because title is required, there must be at least one title */
|
|
public function getLocalizedTitle(): string
|
|
{
|
|
return $this->getLocalizedData('title');
|
|
}
|
|
|
|
public function getTitle(?string $locale): string|array|null
|
|
{
|
|
return $this->getData('title', $locale);
|
|
}
|
|
|
|
public function setTitle(string|array $title, string $locale = null): void
|
|
{
|
|
$this->setData('title', $title, $locale);
|
|
}
|
|
|
|
/**
|
|
* Return boolean indicating whether or not submissions are restricted to [sub]Editors.
|
|
*/
|
|
public function getEditorRestricted(): bool
|
|
{
|
|
return $this->getData('editorRestricted');
|
|
}
|
|
|
|
/**
|
|
* Set whether or not submissions are restricted to [sub]Editors.
|
|
*/
|
|
public function setEditorRestricted(bool $editorRestricted): void
|
|
{
|
|
$this->setData('editorRestricted', $editorRestricted);
|
|
}
|
|
|
|
/**
|
|
* Return boolean indicating if section is not active.
|
|
*/
|
|
public function getIsInactive(): bool
|
|
{
|
|
return $this->getData('isInactive');
|
|
}
|
|
|
|
/**
|
|
* Set if section should be inactivated.
|
|
*/
|
|
public function setIsInactive(bool $isInactive): void
|
|
{
|
|
$this->setData('isInactive', $isInactive);
|
|
}
|
|
}
|
|
|
|
if (!PKP_STRICT_MODE) {
|
|
class_alias('\PKP\section\PKPSection', '\PKPSection');
|
|
}
|