File Manager
Upload
Current Directory: /home/lartcid/public_html/journal.lartc.id
[Back]
..
[Open]
Hapus
Rename
.htaccess
[Edit]
Hapus
Rename
.well-known
[Open]
Hapus
Rename
README.md
[Edit]
Hapus
Rename
api
[Open]
Hapus
Rename
cache
[Open]
Hapus
Rename
cgi-bin
[Open]
Hapus
Rename
classes
[Open]
Hapus
Rename
config.TEMPLATE.inc.php
[Edit]
Hapus
Rename
config.inc.php
[Edit]
Hapus
Rename
controllers
[Open]
Hapus
Rename
cypress.json
[Edit]
Hapus
Rename
dbscripts
[Open]
Hapus
Rename
docs
[Open]
Hapus
Rename
error_log
[Edit]
Hapus
Rename
favicon.ico
[Edit]
Hapus
Rename
index.php
[Edit]
Hapus
Rename
js
[Open]
Hapus
Rename
lib
[Open]
Hapus
Rename
locale
[Open]
Hapus
Rename
mini.php
[Edit]
Hapus
Rename
pages
[Open]
Hapus
Rename
php.ini
[Edit]
Hapus
Rename
plugins
[Open]
Hapus
Rename
public
[Open]
Hapus
Rename
registry
[Open]
Hapus
Rename
scheduledTaskLogs
[Open]
Hapus
Rename
schemas
[Open]
Hapus
Rename
styles
[Open]
Hapus
Rename
templates
[Open]
Hapus
Rename
tools
[Open]
Hapus
Rename
Edit File
<?php /** * @file classes/submission/Collector.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 Collector * * @brief A helper class to configure a Query Builder to get a collection of submissions */ namespace APP\submission; use APP\facades\Repo; use Illuminate\Database\Query\Builder; use PKP\doi\Doi; class Collector extends \PKP\submission\Collector { public ?array $issueIds = null; public ?array $sectionIds = null; public function __construct(DAO $dao) { $this->dao = $dao; } /** * Limit results to submissions assigned to these issues */ public function filterByIssueIds(array $issueIds): self { $this->issueIds = $issueIds; return $this; } /** * Limit results to submissions assigned to these sections */ public function filterBySectionIds(array $sectionIds): self { $this->sectionIds = $sectionIds; return $this; } /** * @copydoc CollectorInterface::getQueryBuilder() */ public function getQueryBuilder(): Builder { $q = parent::getQueryBuilder(); // By issue IDs if (is_array($this->issueIds)) { $q->whereIn('s.submission_id', function ($query) { $query->select('issue_p.submission_id') ->from('publications AS issue_p') ->join('publication_settings as issue_ps', 'issue_p.publication_id', '=', 'issue_ps.publication_id') ->where('issue_ps.setting_name', '=', 'issueId') ->whereIn('issue_ps.setting_value', array_map('strval', $this->issueIds)); }); } // By section IDs if (is_array($this->sectionIds)) { $q->whereIn('s.submission_id', function ($query) { $query->select('section_p.submission_id') ->from('publications AS section_p') ->whereIn('section_p.section_id', $this->sectionIds); }); } return $q; } /** * Add APP-specific filtering methods for submission sub objects DOI statuses * * */ protected function addDoiStatusFilterToQuery(Builder $q) { $q->whereIn('s.current_publication_id', function (Builder $q) { $q->select('current_p.publication_id') ->from('publications as current_p') ->leftJoin('publication_galleys as current_g', 'current_g.publication_id', '=', 'current_p.publication_id') ->leftJoin('dois as pd', 'pd.doi_id', '=', 'current_p.doi_id') ->leftJoin('dois as gd', 'gd.doi_id', '=', 'current_g.doi_id') ->whereIn('pd.status', $this->doiStatuses) ->orWhereIn('gd.status', $this->doiStatuses); }); } /** * Add APP-specific filtering methods for checking if submission sub objects have DOIs assigned */ protected function addHasDoisFilterToQuery(Builder $q) { $q->whereIn('s.current_publication_id', function (Builder $q) { $q->select('current_p.publication_id') ->from('publications', 'current_p') ->leftJoin('submissions as current_s', 'current_s.current_publication_id', '=', 'current_p.publication_id') ->leftJoin('publication_galleys as current_g', 'current_g.publication_id', '=', 'current_p.publication_id') ->where(function (Builder $q) { $q->when($this->hasDois === true, function (Builder $q) { $q->when(in_array(Repo::doi()::TYPE_PUBLICATION, $this->enabledDoiTypes), function (Builder $q) { $q->whereNotNull('current_p.doi_id'); }); $q->when(in_array(Repo::doi()::TYPE_REPRESENTATION, $this->enabledDoiTypes), function (Builder $q) { $q->orWhereNotNull('current_g.doi_id'); }); }); $q->when($this->hasDois === false, function (Builder $q) { $q->when(in_array(Repo::doi()::TYPE_PUBLICATION, $this->enabledDoiTypes), function (Builder $q) { $q->whereNull('current_p.doi_id'); }); $q->when(in_array(Repo::doi()::TYPE_REPRESENTATION, $this->enabledDoiTypes), function (Builder $q) { $q->orWhere(function (Builder $q) { $q->whereNull('current_g.doi_id'); $q->whereNotNull('current_g.galley_id'); }); }); }); }); }); } }
Simpan