[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
lib
/
pkp
/
classes
/
log
/
event
/
[
Home
]
File: EventLogEntry.php
<?php /** * @file classes/log/event/EventLogEntry.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 EventLogEntry * * @ingroup log * * @brief Describes an entry in the event log. */ namespace PKP\log\event; use APP\core\Application; use APP\facades\Repo; use PKP\db\DAORegistry; use PKP\facades\Locale; use PKP\submission\reviewAssignment\ReviewAssignment; use PKP\submissionFile\SubmissionFile; class EventLogEntry extends \PKP\core\DataObject { // Information Center events public const SUBMISSION_LOG_NOTE_POSTED = 0x01000000; public const SUBMISSION_LOG_MESSAGE_SENT = 0x01000001; // // Get/set methods // /** * Get user ID of user that initiated the event. * * @return int */ public function getUserId() { return $this->getData('userId'); } /** * Set user ID of user that initiated the event. * * @param int $userId */ public function setUserId($userId) { $this->setData('userId', $userId); } /** * Get date entry was logged. * * @return string */ public function getDateLogged() { return $this->getData('dateLogged'); } /** * Set date entry was logged. * * @param string $dateLogged */ public function setDateLogged($dateLogged) { $this->setData('dateLogged', $dateLogged); } /** * Get event type. * * @return int */ public function getEventType() { return $this->getData('eventType'); } /** * Set event type. * * @param int $eventType */ public function setEventType($eventType) { $this->setData('eventType', $eventType); } /** * Get associated type. * * @return int */ public function getAssocType() { return $this->getData('assocType'); } /** * Set associated type. * * @param int $assocType */ public function setAssocType($assocType) { $this->setData('assocType', $assocType); } /** * Get associated ID. * * @return int */ public function getAssocId() { return $this->getData('assocId'); } /** * Set associated ID. * * @param int $assocId */ public function setAssocId($assocId) { $this->setData('assocId', $assocId); } /** * Get custom log message (either locale key or literal string). * * @return string */ public function getMessage() { return $this->getData('message'); } /** * Set custom log message (either locale key or literal string). * * @param string $message */ public function setMessage($message) { $this->setData('message', $message); } /** * Get flag indicating whether or not message is translated. * * @return bool */ public function getIsTranslated() { return $this->getData('isTranslated'); } /** * Set flag indicating whether or not message is translated. * * @param int $isTranslated */ public function setIsTranslated($isTranslated) { $this->setData('isTranslated', $isTranslated); } /** * Get translated message, translating it if necessary. * * @param string $locale optional * @param bool $hideReviewerName optional Don't reveal reviewer names in * log descriptions. */ public function getTranslatedMessage($locale = null, $hideReviewerName = false) { $message = $this->getMessage(); // If it's already translated, just return the message. if ($this->getData('isTranslated')) { return $message; } // Otherwise, translate it and include parameters. if ($locale === null) { $locale = Locale::getLocale(); } $eventLog = clone $this; if ($hideReviewerName) { $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /** @var \PKP\submission\reviewAssignment\ReviewAssignmentDAO $reviewAssignmentDao */ // Reviewer activity log entries (assigning, accepting, declining) if ($eventLog->getData('reviewerName')) { $anonymousAuthor = true; if ($reviewAssignmentId = $eventLog->getData('reviewAssignmentId')) { $reviewAssignment = $reviewAssignmentDao->getById($reviewAssignmentId); if ($reviewAssignment && !in_array($reviewAssignment->getReviewMethod(), [ReviewAssignment::SUBMISSION_REVIEW_METHOD_ANONYMOUS, ReviewAssignment::SUBMISSION_REVIEW_METHOD_DOUBLEANONYMOUS])) { $anonymousAuthor = false; } } if ($anonymousAuthor) { $eventLog->setData('reviewerName', __('editor.review.anonymousReviewer')); } } // Files submitted by reviewers $fileStage = $eventLog->getData('fileStage'); if ($fileStage && $fileStage === SubmissionFile::SUBMISSION_FILE_REVIEW_ATTACHMENT) { $submissionFileId = $eventLog->getData('submissionFileId'); assert($eventLog->getData('fileId') && $eventLog->getData('submissionId') && $submissionFileId); $anonymousAuthor = true; $submissionFile = Repo::submissionFile()->get($submissionFileId); if ($submissionFile && $submissionFile->getData('assocType') === Application::ASSOC_TYPE_REVIEW_ASSIGNMENT) { $reviewAssignment = $reviewAssignmentDao->getById($submissionFile->getData('assocId')); if ($reviewAssignment && !in_array($reviewAssignment->getReviewMethod(), [ReviewAssignment::SUBMISSION_REVIEW_METHOD_ANONYMOUS, ReviewAssignment::SUBMISSION_REVIEW_METHOD_DOUBLEANONYMOUS])) { $anonymousAuthor = false; } } if ($eventLog->getData('username') && $anonymousAuthor) { $eventLog->setData('username', __('editor.review.anonymousReviewer')); $filenames = $eventLog->getData('filename'); $eventLog->setData('filename', array_map(function (string $value) { return ''; }, $filenames)); } } } $params = []; foreach ($eventLog->getAllData() as $key => $data) { if (!is_array($data)) { $params[$key] = $eventLog->getData($key); continue; } $params[$key] = $eventLog->getData($key, $locale); } return __($message, $params, $locale); } /** * Return the full name of the user. * * @return string */ public function getUserFullName() { $userFullName = & $this->getData('userFullName'); if (!isset($userFullName) && $this->getUserId()) { $userFullName = Repo::user()->get($this->getUserId(), true)->getFullName(); } return $userFullName ?: ''; } /** * Return the email address of the user. * * @return string */ public function getUserEmail() { $userEmail = $this->getData('userEmail'); if (!isset($userEmail)) { $userEmail = Repo::user()->get($this->getUserId(), true)->getEmail(); } return $userEmail ?: ''; } } if (!PKP_STRICT_MODE) { class_alias('\PKP\log\event\EventLogEntry', '\EventLogEntry'); define('SUBMISSION_LOG_NOTE_POSTED', EventLogEntry::SUBMISSION_LOG_NOTE_POSTED); define('SUBMISSION_LOG_MESSAGE_SENT', EventLogEntry::SUBMISSION_LOG_MESSAGE_SENT); }