%PDF-1.7 GIF89;
| Server IP : 104.20.45.2 / Your IP : 172.16.20.3 Web Server : Apache/2.4.25 (Debian) System : Linux f64a392e70de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : application ( 1000) PHP Version : 5.6.40 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /app/plugins/generic/objectsForReview/pages/ |
Upload File : |
<?php
/**
* @file plugins/generic/objectsForReview/pages/ObjectsForReviewHandler.inc.php
*
* Copyright (c) 2013-2019 Simon Fraser University
* Copyright (c) 2003-2019 John Willinsky
* Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
*
* @class ObjectsForReviewHandler
* @ingroup plugins_generic_objectsForReview
*
* @brief Handle requests for public object for review functions.
*/
import('classes.handler.Handler');
class ObjectsForReviewHandler extends Handler {
/**
* Display objects for review public index page.
* @param $args array
* @param $request PKPRequest
*/
function index($args, &$request) {
$journal =& $request->getJournal();
$journalId = $journal->getId();
// Search
$searchParameters = array(
'searchField', 'searchMatch', 'search'
);
$searchFieldOptions = Array(
OFR_FIELD_TITLE => 'plugins.generic.objectsForReview.search.field.title',
OFR_FIELD_ABSTRACT => 'plugins.generic.objectsForReview.search.field.abstract'
);
$searchField = null;
$searchMatch = null;
$search = $request->getUserVar('search');
if (!empty($search)) {
$searchField = $request->getUserVar('searchField');
$searchMatch = $request->getUserVar('searchMatch');
}
// Filter by review object type
$reviewObjectTypeDao =& DAORegistry::getDAO('ReviewObjectTypeDAO');
$allTypes =& $reviewObjectTypeDao->getTypeIdsAlphabetizedByContext($journalId);
$typeOptions = array(0 => __('common.all'));
$reviewObjectMetadataDao =& DAORegistry::getDAO('ReviewObjectMetadataDAO');
$allReviewObjectsMetadata = array();
foreach ($allTypes as $type) {
$typeId = $type['typeId'];
$typeOptions[$typeId] = $type['typeName'];
$typeMetadata = $reviewObjectMetadataDao->getArrayByReviewObjectTypeId($typeId);
$allReviewObjectsMetadata[$typeId] = $typeMetadata;
}
$filterType = $request->getUserVar('filterType');
// Sort
$sortingOptions = array(
'title' => __('plugins.generic.objectsForReview.objectsForReview.title'),
'created' => __('plugins.generic.objectsForReview.objectsForReview.dateCreated')
);
$sort = $request->getUserVar('sort');
$sort = isset($sort) ? $sort : 'title';
$sortDirections = array(
SORT_DIRECTION_ASC => __('plugins.generic.objectsForReview.sort.sortDirectionAsc'),
SORT_DIRECTION_DESC => __('plugins.generic.objectsForReview.sort.sortDirectionDesc')
);
$sortDirection = $request->getUserVar('sortDirection');
$sortDirection = isset($sortDirection) ? $sortDirection : SORT_DIRECTION_ASC;
// Get objects for review
$rangeInfo =& Handler::getRangeInfo('objectsForReview');
$ofrDao =& DAORegistry::getDAO('ObjectForReviewDAO');
$objectsForReview =& $ofrDao->getAllByContextId($journalId, $searchField, $search, $searchMatch, 1, null, $filterType, $rangeInfo, $sort, $sortDirection);
// If the user is an author get her/his assignments
$isAuthor = Validation::isAuthor();
if ($isAuthor) {
$user =& $request->getUser();
$ofrAssignmentDao =& DAORegistry::getDAO('ObjectForReviewAssignmentDAO');
$authorAssignments = $ofrAssignmentDao->getObjectIds($user->getId());
}
$this->setupTemplate($request);
$templateMgr =& TemplateManager::getManager($request);
foreach ($searchParameters as $param)
$templateMgr->assign($param, $request->getUserVar($param));
$templateMgr->assign('searchFieldOptions', $searchFieldOptions);
$templateMgr->assign('typeOptions', $typeOptions);
$templateMgr->assign('filterType', $filterType);
$templateMgr->assign('sortingOptions', $sortingOptions);
$templateMgr->assign('sort', $sort);
$templateMgr->assign('sortDirections', $sortDirections);
$templateMgr->assign('sortDirection', $sortDirection);
$templateMgr->assign('objectsForReview', $objectsForReview);
$templateMgr->assign('allReviewObjectsMetadata', $allReviewObjectsMetadata);
$templateMgr->assign('isAuthor', $isAuthor);
$templateMgr->assign('authorAssignments', $authorAssignments);
import('classes.file.PublicFileManager');
$publicFileManager = new PublicFileManager();
$coverPagePath = $request->getBaseUrl() . '/';
$coverPagePath .= $publicFileManager->getJournalFilesPath($journalId) . '/';
$templateMgr->assign('coverPagePath', $coverPagePath);
$ofrPlugin =& $this->_getObjectsForReviewPlugin();
$ofrPlugin->import('classes.ReviewObjectMetadata');
$templateMgr->assign('multipleOptionsTypes', ReviewObjectMetadata::getMultipleOptionsTypes());
$templateMgr->assign('additionalInformation', $ofrPlugin->getSetting($journalId, 'additionalInformation'));
$templateMgr->assign('ofrListing', true);
$templateMgr->display($ofrPlugin->getTemplatePath() . 'objectsForReview.tpl');
}
/**
* Public view object for review details.
* @param $args array
* @param $request PKPRequest
*/
function viewObjectForReview($args, &$request) {
// Ensure the args (object ID) exists
$objectId = array_shift($args);
if (!$objectId) {
$request->redirect(null, 'objectsForReview');
}
$journal =& $request->getJournal();
$journalId = $journal->getId();
// Ensure the object exists
$ofrDao =& DAORegistry::getDAO('ObjectForReviewDAO');
$objectForReview =& $ofrDao->getById($objectId, $journalId);
if (!isset($objectForReview)) {
$request->redirect(null, 'objectsForReview');
}
// If object is available
if ($objectForReview->getAvailable()) {
// Get all metadata for the objects for review
$reviewObjectTypeDao =& DAORegistry::getDAO('ReviewObjectTypeDAO');
$allTypes =& $reviewObjectTypeDao->getTypeIdsAlphabetizedByContext($journalId);
$reviewObjectMetadataDao =& DAORegistry::getDAO('ReviewObjectMetadataDAO');
$allReviewObjectsMetadata = array();
foreach ($allTypes as $type) {
$typeId = $type['typeId'];
$typeMetadata = $reviewObjectMetadataDao->getArrayByReviewObjectTypeId($typeId);
$allReviewObjectsMetadata[$typeId] = $typeMetadata;
}
// If the user is an author get her/his assignments
$isAuthor = Validation::isAuthor();
if ($isAuthor) {
$user =& $request->getUser();
$ofrAssignmentDao =& DAORegistry::getDAO('ObjectForReviewAssignmentDAO');
$authorAssignments = $ofrAssignmentDao->getObjectIds($user->getId());
}
$this->setupTemplate($request, true);
$templateMgr =& TemplateManager::getManager($request);
$templateMgr->assign('objectForReview', $objectForReview);
$templateMgr->assign('allReviewObjectsMetadata', $allReviewObjectsMetadata);
$templateMgr->assign('isAuthor', $isAuthor);
$templateMgr->assign('authorAssignments', $authorAssignments);
// Cover page path
import('classes.file.PublicFileManager');
$publicFileManager = new PublicFileManager();
$coverPagePath = $request->getBaseUrl() . '/';
$coverPagePath .= $publicFileManager->getJournalFilesPath($journalId) . '/';
$templateMgr->assign('coverPagePath', $coverPagePath);
$ofrPlugin =& $this->_getObjectsForReviewPlugin();
$ofrPlugin->import('classes.ReviewObjectMetadata');
$templateMgr->assign('multipleOptionsTypes', ReviewObjectMetadata::getMultipleOptionsTypes());
$templateMgr->assign('locale', AppLocale::getLocale());
$templateMgr->assign('ofrListing', false);
$templateMgr->assign('ofrTemplatePath', $ofrPlugin->getTemplatePath());
$templateMgr->display($ofrPlugin->getTemplatePath() . 'objectForReview.tpl');
} else {
$request->redirect(null, 'objectsForReview');
}
}
/**
* Ensure that we have a selected journal, the plugin is enabled,
* in full mode and the option 'displayListing' is selected
* @see PKPHandler::authorize()
*/
function authorize(&$request, &$args, $roleAssignments) {
$journal =& $request->getJournal();
if (!isset($journal)) return false;
$ofrPlugin =& $this->_getObjectsForReviewPlugin();
if (!isset($ofrPlugin)) return false;
if (!$ofrPlugin->getEnabled()) return false;
$mode = $ofrPlugin->getSetting($journal->getId(), 'mode');
if ($mode != OFR_MODE_FULL) return false;
if (!$ofrPlugin->getSetting($journal->getId(), 'displayListing')) return false;
return parent::authorize($request, $args, $roleAssignments);
}
/**
* Setup common template variables.
* @param $request PKPRequest
* @param $subclass boolean set to true if caller is below this handler in the hierarchy
*/
function setupTemplate(&$request, $subclass = false) {
$templateMgr =& TemplateManager::getManager($request);
if ($subclass) {
$templateMgr->append(
'pageHierarchy',
array(
$request->url(null, 'objectsForReview'),
AppLocale::Translate('plugins.generic.objectsForReview.displayName'),
true
)
);
}
$ofrPlugin =& $this->_getObjectsForReviewPlugin();
$templateMgr->addStyleSheet($request->getBaseUrl() . '/' . $ofrPlugin->getStyleSheet());
}
//
// Private helper methods
//
/**
* Get the objectForReview plugin object
* @return ObjectsForReviewPlugin
*/
function &_getObjectsForReviewPlugin() {
$plugin =& PluginRegistry::getPlugin('generic', OBJECTS_FOR_REVIEW_PLUGIN_NAME);
return $plugin;
}
}
?>