Open Journal Systems  3.3.0
SubmissionQueryBuilder.inc.php
1 <?php
2 
17 
18 use Illuminate\Database\Capsule\Manager as Capsule;
19 
21 
23  protected $issueIds = null;
24 
26  protected $sectionIds = null;
27 
35  public function filterByIssues($issueIds) {
36  if (!is_null($issueIds) && !is_array($issueIds)) {
37  $issueIds = [$issueIds];
38  }
39  $this->issueIds = $issueIds;
40  return $this;
41  }
42 
50  public function filterBySections($sectionIds) {
51  if (!is_null($sectionIds) && !is_array($sectionIds)) {
53  }
54  $this->sectionIds = $sectionIds;
55  return $this;
56  }
57 
62  public function appGet($q) {
63 
64  if (!empty($this->issueIds)) {
66  $q->leftJoin('publications as issue_p', 'issue_p.submission_id', '=', 's.submission_id')
67  ->leftJoin('publication_settings as issue_ps','issue_p.publication_id','=','issue_ps.publication_id')
68  ->where(function($q) use ($issueIds) {
69  $q->where('issue_ps.setting_name', '=', 'issueId');
70  $q->whereIn('issue_ps.setting_value', $issueIds);
71  });
72  }
73 
74  if (!empty($this->sectionIds)) {
76  $q->leftJoin('publications as section_p', 'section_p.submission_id', '=', 's.submission_id')
77  ->whereIn('section_p.section_id', $sectionIds);
78  }
79 
80  return $q;
81  }
82 }
PKP\Services\QueryBuilders\PKPSubmissionQueryBuilder
Definition: PKPSubmissionQueryBuilder.inc.php:21
APP\Services\QueryBuilders\SubmissionQueryBuilder\appGet
appGet($q)
Definition: SubmissionQueryBuilder.inc.php:68
APP\Services\QueryBuilders\SubmissionQueryBuilder\$sectionIds
$sectionIds
Definition: SubmissionQueryBuilder.inc.php:32
APP\Services\QueryBuilders
Definition: ContextQueryBuilder.inc.php:14
APP\Services\QueryBuilders\SubmissionQueryBuilder\filterByIssues
filterByIssues($issueIds)
Definition: SubmissionQueryBuilder.inc.php:41
APP\Services\QueryBuilders\SubmissionQueryBuilder\filterBySections
filterBySections($sectionIds)
Definition: SubmissionQueryBuilder.inc.php:56
APP\Services\QueryBuilders\SubmissionQueryBuilder\$issueIds
$issueIds
Definition: SubmissionQueryBuilder.inc.php:26
APP\Services\QueryBuilders\SubmissionQueryBuilder
Definition: SubmissionQueryBuilder.inc.php:20