[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
baru
/
plugins
/
generic
/
pdfJsViewer
/
[
Home
]
File: PdfJsViewerPlugin.php
<?php /** * @file plugins/generic/pdfJsViewer/PdfJsViewerPlugin.php * * Copyright (c) 2013-2020 Simon Fraser University * Copyright (c) 2003-2020 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class PdfJsViewerPlugin * * @brief This plugin enables embedding of the pdf.js viewer for PDF display */ namespace APP\plugins\generic\pdfJsViewer; use APP\core\Application; use APP\template\TemplateManager; use Exception; use PKP\plugins\Hook; class PdfJsViewerPlugin extends \PKP\plugins\GenericPlugin { /** * @copydoc Plugin::register() * * @param null|mixed $mainContextId */ public function register($category, $path, $mainContextId = null) { if (parent::register($category, $path, $mainContextId)) { if ($this->getEnabled($mainContextId)) { // For OPS Hook::add('PreprintHandler::view::galley', [$this, 'submissionCallback'], Hook::SEQUENCE_LAST); // For OJS Hook::add('ArticleHandler::view::galley', [$this, 'submissionCallback'], Hook::SEQUENCE_LAST); Hook::add('IssueHandler::view::galley', [$this, 'issueCallback'], Hook::SEQUENCE_LAST); } return true; } return false; } /** * Install default settings on context creation. * * @return string */ public function getContextSpecificPluginSettingsFile() { return $this->getPluginPath() . '/settings.xml'; } /** * @copydoc Plugin::getDisplayName */ public function getDisplayName() { return __('plugins.generic.pdfJsViewer.name'); } /** * @copydoc Plugin::getDescription */ public function getDescription() { return __('plugins.generic.pdfJsViewer.description'); } /** * Callback that renders the submission galley. * * @param string $hookName * @param array $args * * @return bool */ public function submissionCallback($hookName, $args) { $request = & $args[0]; $application = Application::get(); switch ($application->getName()) { case 'ojs2': $issue = & $args[1]; $galley = & $args[2]; $submission = & $args[3]; $submissionNoun = 'article'; break; case 'ops': $galley = & $args[1]; $submission = & $args[2]; $submissionNoun = 'preprint'; $issue = null; break; default: throw new Exception('Unknown application!'); } if (!$galley) { return false; } $submissionFile = $galley->getFile(); if ($submissionFile->getData('mimetype') === 'application/pdf') { $galleyPublication = null; foreach ($submission->getData('publications') as $publication) { if ($publication->getId() === $galley->getData('publicationId')) { $galleyPublication = $publication; break; } } $templateMgr = TemplateManager::getManager($request); $templateMgr->assign([ 'displayTemplateResource' => $this->getTemplateResource('display.tpl'), 'pluginUrl' => $request->getBaseUrl() . '/' . $this->getPluginPath(), 'galleyFile' => $submissionFile, 'issue' => $issue, 'submission' => $submission, 'submissionNoun' => $submissionNoun, 'bestId' => $submission->getBestId(), 'galley' => $galley, 'currentVersionString' => $application->getCurrentVersion()->getVersionString(false), 'isLatestPublication' => $submission->getData('currentPublicationId') === $galley->getData('publicationId'), 'galleyPublication' => $galleyPublication, ]); $templateMgr->display($this->getTemplateResource('submissionGalley.tpl')); return true; } return false; } /** * Callback that renders the issue galley. * * @param string $hookName * @param array $args * * @return bool */ public function issueCallback($hookName, $args) { $request = & $args[0]; $issue = & $args[1]; $galley = & $args[2]; $templateMgr = TemplateManager::getManager($request); if ($galley && $galley->getFileType() == 'application/pdf') { $application = Application::get(); $templateMgr->assign([ 'displayTemplateResource' => $this->getTemplateResource('display.tpl'), 'pluginUrl' => $request->getBaseUrl() . '/' . $this->getPluginPath(), 'galleyFile' => $galley->getFile(), 'issue' => $issue, 'galley' => $galley, 'currentVersionString' => $application->getCurrentVersion()->getVersionString(false), 'isLatestPublication' => true, ]); $templateMgr->display($this->getTemplateResource('issueGalley.tpl')); return true; } return false; } }