HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vmi1674223.contaboserver.net 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: root (0)
PHP: 7.4.3-4ubuntu2.22
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/ojs/classes/services/SubmissionFileService.inc.php
<?php
/**
 * @file classes/services/SubmissionFileService.inc.php
 *
 * Copyright (c) 2014-2021 Simon Fraser University
 * Copyright (c) 2000-2021 John Willinsky
 * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
 *
 * @class SubmissionFileService
 * @ingroup services
 *
 * @brief Extends the base submission file service class with app-specific
 *  requirements.
 */

namespace APP\Services;

use \DAORegistry;
use \Application;

class SubmissionFileService extends \PKP\Services\PKPSubmissionFileService {

	/**
	 * Initialize hooks for extending PKPSubmissionService
	 */
	public function __construct() {
		\HookRegistry::register('SubmissionFile::delete::before', array($this, 'deleteSubmissionFile'));
	}

	/**
	 * Delete related objects when a submission file is deleted
	 *
	 * @param string $hookName
	 * @param array $args [
	 *      @option SubmissionFile
	 * ]
	 *
	 * @return array
	 */
	public function deleteSubmissionFile($hookName, $args) {
		$submissionFile = $args[0];

		// Remove galley associations and update search index
		if ($submissionFile->getData('assocType') == ASSOC_TYPE_REPRESENTATION) {
			$galleyDao = DAORegistry::getDAO('ArticleGalleyDAO'); /* @var $galleyDao ArticleGalleyDAO */
			$galley = $galleyDao->getById($submissionFile->getData('assocId'));
			if ($galley && $galley->getData('submissionFileId') == $submissionFile->getId()) {
				$galley->_data['submissionFileId'] = null; // Work around pkp/pkp-lib#5740
				$galleyDao->updateObject($galley);
			}
			import('lib.pkp.classes.search.SubmissionSearch');
			$articleSearchIndex = Application::getSubmissionSearchIndex();
			$articleSearchIndex->deleteTextIndex($submissionFile->getData('submissionId'), SUBMISSION_SEARCH_GALLEY_FILE, $submissionFile->getId());
		}
	}
}