<?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');
}
|