[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
14082024
/
Data
/
htdocs
/
htdocs
/
jurnal-kesmas
/
baru
/
classes
/
core
/
[
Home
]
File: Application.php
<?php /** * @file classes/core/Application.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 Application * * @ingroup core * * @see PKPApplication * * @brief Class describing this application. * */ namespace APP\core; use APP\facades\Repo; use APP\journal\JournalDAO; use APP\payment\ojs\OJSPaymentManager; use PKP\context\Context; use PKP\core\PKPApplication; use PKP\db\DAORegistry; use PKP\facades\Locale; use PKP\security\Role; use PKP\submission\RepresentationDAOInterface; class Application extends PKPApplication { public const ASSOC_TYPE_ARTICLE = self::ASSOC_TYPE_SUBMISSION; // DEPRECATED but needed by filter framework; public const ASSOC_TYPE_GALLEY = self::ASSOC_TYPE_REPRESENTATION; public const ASSOC_TYPE_JOURNAL = 0x0000100; public const ASSOC_TYPE_ISSUE = 0x0000103; public const ASSOC_TYPE_ISSUE_GALLEY = 0x0000105; public const CONTEXT_JOURNAL = 1; // not used? public const REQUIRES_XSL = false; /** * Constructor */ public function __construct() { parent::__construct(); if (!PKP_STRICT_MODE) { foreach ([ 'REQUIRES_XSL', 'ASSOC_TYPE_ARTICLE', 'ASSOC_TYPE_GALLEY', 'ASSOC_TYPE_JOURNAL', 'ASSOC_TYPE_ISSUE', 'ASSOC_TYPE_ISSUE_GALLEY', 'CONTEXT_JOURNAL', ] as $constantName) { if (!defined($constantName)) { define($constantName, constant('self::' . $constantName)); } } if (!class_exists('\Application')) { class_alias('\APP\core\Application', '\Application'); } } // Add application locales Locale::registerPath(BASE_SYS_DIR . '/locale'); } /** * Get the name of the application context. */ public function getContextName(): string { return 'journal'; } /** * Get the symbolic name of this application * * @return string */ public static function getName() { return 'ojs2'; } /** * Get the locale key for the name of this application. * * @return string */ public function getNameKey() { return('common.software'); } /** * Get the URL to the XML descriptor for the current version of this * application. * * @return string */ public function getVersionDescriptorUrl() { return 'https://pkp.sfu.ca/ojs/xml/ojs-version.xml'; } /** * Get the map of DAOName => full.class.Path for this application. * * @return array */ public function getDAOMap() { return array_merge(parent::getDAOMap(), [ 'ArticleSearchDAO' => 'APP\search\ArticleSearchDAO', 'IndividualSubscriptionDAO' => 'APP\subscription\IndividualSubscriptionDAO', 'InstitutionalSubscriptionDAO' => 'APP\subscription\InstitutionalSubscriptionDAO', 'IssueGalleyDAO' => 'APP\issue\IssueGalleyDAO', 'IssueFileDAO' => 'APP\issue\IssueFileDAO', 'JournalDAO' => 'APP\journal\JournalDAO', 'MetricsDAO' => 'APP\statistics\MetricsDAO', 'OAIDAO' => 'APP\oai\ojs\OAIDAO', 'OJSCompletedPaymentDAO' => 'APP\payment\ojs\OJSCompletedPaymentDAO', 'SubscriptionDAO' => 'APP\subscription\SubscriptionDAO', 'SubscriptionTypeDAO' => 'APP\subscription\SubscriptionTypeDAO', 'TemporaryTotalsDAO' => 'APP\statistics\TemporaryTotalsDAO', 'TemporaryItemInvestigationsDAO' => 'APP\statistics\TemporaryItemInvestigationsDAO', 'TemporaryItemRequestsDAO' => 'APP\statistics\TemporaryItemRequestsDAO', ]); } /** * Get the list of plugin categories for this application. * * @return array */ public function getPluginCategories() { return [ // NB: Meta-data plug-ins are first in the list as this // will make them load (and install) first. // This is necessary as several other plug-in categories // depend on meta-data. This is a very rudimentary type of // dependency management for plug-ins. 'metadata', 'blocks', 'gateways', 'generic', 'importexport', 'oaiMetadataFormats', 'paymethod', 'pubIds', 'reports', 'themes' ]; } /** * Get the top-level context DAO. * * @return JournalDAO */ public static function getContextDAO() { /** @var JournalDAO */ $dao = DAORegistry::getDAO('JournalDAO'); return $dao; } /** * Get the representation DAO. * * @return \PKP\galley\DAO&RepresentationDAOInterface */ public static function getRepresentationDAO(): RepresentationDAOInterface { return Repo::galley()->dao; } /** * Get a SubmissionSearchIndex instance. */ public static function getSubmissionSearchIndex() { return new \APP\search\ArticleSearchIndex(); } /** * Get a SubmissionSearchDAO instance. */ public static function getSubmissionSearchDAO() { return DAORegistry::getDAO('ArticleSearchDAO'); } /** * Get the stages used by the application. * * @return array */ public static function getApplicationStages() { // We leave out WORKFLOW_STAGE_ID_PUBLISHED since it technically is not a 'stage'. return [ WORKFLOW_STAGE_ID_SUBMISSION, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW, WORKFLOW_STAGE_ID_EDITING, WORKFLOW_STAGE_ID_PRODUCTION ]; } /** * Returns the context type for this application. * * @return int Application::ASSOC_TYPE_... */ public static function getContextAssocType() { return self::ASSOC_TYPE_JOURNAL; } /** * Get the file directory array map used by the application. */ public static function getFileDirectories() { return ['context' => '/journals/', 'submission' => '/articles/']; } /** * @copydoc PKPApplication::getRoleNames() * * @param null|mixed $roleIds */ public static function getRoleNames($contextOnly = false, $roleIds = null) { $roleNames = parent::getRoleNames($contextOnly, $roleIds); if (!$roleIds || in_array(Role::ROLE_ID_SUBSCRIPTION_MANAGER, $roleIds)) { $roleNames[Role::ROLE_ID_SUBSCRIPTION_MANAGER] = 'user.role.subscriptionManager'; } return $roleNames; } /** * Get the payment manager. * * @param \APP\journal\Journal $context * * @return OJSPaymentManager */ public static function getPaymentManager($context) { return new OJSPaymentManager($context); } }