%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/reports/reviews/ |
Upload File : |
<?php
/**
* @file plugins/reports/reviews/ReviewReportPlugin.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 ReviewReportPlugin
* @ingroup plugins_reports_review
* @see ReviewReportDAO
*
* @brief Review report plugin
*/
import('classes.plugins.ReportPlugin');
class ReviewReportPlugin extends ReportPlugin {
/**
* Called as a plugin is registered to the registry
* @param $category String Name of category plugin was registered to
* @return boolean True if plugin initialized successfully; if false,
* the plugin will not be registered.
*/
function register($category, $path) {
$success = parent::register($category, $path);
if ($success && Config::getVar('general', 'installed')) {
$this->import('ReviewReportDAO');
$reviewReportDAO = new ReviewReportDAO();
DAORegistry::registerDAO('ReviewReportDAO', $reviewReportDAO);
}
$this->addLocaleData();
return $success;
}
/**
* Get the name of this plugin. The name must be unique within
* its category.
* @return String name of plugin
*/
function getName() {
return 'ReviewReportPlugin';
}
function getDisplayName() {
return __('plugins.reports.reviews.displayName');
}
function getDescription() {
return __('plugins.reports.reviews.description');
}
function display($args, $request) {
$journal =& Request::getJournal();
header('content-type: text/comma-separated-values');
header('content-disposition: attachment; filename=reviews-' . date('Ymd') . '.csv');
AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION);
$reviewReportDao =& DAORegistry::getDAO('ReviewReportDAO');
list($commentsIterator, $reviewsIterator) = $reviewReportDao->getReviewReport($journal->getId());
$comments = array();
while ($row =& $commentsIterator->next()) {
if (isset($comments[$row['article_id']][$row['author_id']])) {
$comments[$row['article_id']][$row['author_id']] .= "; " . $row['comments'];
} else {
$comments[$row['article_id']][$row['author_id']] = $row['comments'];
}
}
$yesnoMessages = array( 0 => __('common.no'), 1 => __('common.yes'));
import('classes.submission.reviewAssignment.ReviewAssignment');
$recommendations = ReviewAssignment::getReviewerRecommendationOptions();
$columns = array(
'round' => __('plugins.reports.reviews.round'),
'article' => __('article.articles'),
'articleid' => __('article.submissionId'),
'reviewerid' => __('plugins.reports.reviews.reviewerId'),
'reviewer' => __('plugins.reports.reviews.reviewer'),
'firstname' => __('user.firstName'),
'middlename' => __('user.middleName'),
'lastname' => __('user.lastName'),
'dateassigned' => __('plugins.reports.reviews.dateAssigned'),
'datenotified' => __('plugins.reports.reviews.dateNotified'),
'dateconfirmed' => __('plugins.reports.reviews.dateConfirmed'),
'datecompleted' => __('plugins.reports.reviews.dateCompleted'),
'datereminded' => __('plugins.reports.reviews.dateReminded'),
'declined' => __('submissions.declined'),
'cancelled' => __('common.cancelled'),
'recommendation' => __('reviewer.article.recommendation'),
'comments' => __('comments.commentsOnArticle')
);
$yesNoArray = array('declined', 'cancelled');
$fp = fopen('php://output', 'wt');
PKPString::fputcsv($fp, array_values($columns));
while ($row =& $reviewsIterator->next()) {
foreach ($columns as $index => $junk) {
if (in_array($index, $yesNoArray)) {
$columns[$index] = $yesnoMessages[$row[$index]];
} elseif ($index == "recommendation") {
$columns[$index] = (!isset($row[$index])) ? __('common.none') : __($recommendations[$row[$index]]);
} elseif ($index == "comments") {
if (isset($comments[$row['articleid']][$row['reviewerid']])) {
$columns[$index] = $comments[$row['articleid']][$row['reviewerid']];
} else {
$columns[$index] = "";
}
} else {
$columns[$index] = $row[$index];
}
}
PKPString::fputcsv($fp, $columns);
unset($row);
}
fclose($fp);
}
}
?>