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