Open Monograph Press  3.3.0
PKPUserQueryBuilder.inc.php
1 <?php
16 
17 use Illuminate\Database\Capsule\Manager as Capsule;
19 
21 
23  protected $contextId = null;
24 
26  protected $columns = array();
27 
29  protected $orderColumn = 'u.user_id';
30 
32  protected $orderDirection = 'DESC';
33 
35  protected $status = null;
36 
38  protected $roleIds = null;
39 
41  protected $assignedToCategoryId = null;
42 
44  protected $assignedToSectionId = null;
45 
47  protected $assignedToSubmissionId = null;
48 
50  protected $assignedToSubmissionStageId = null;
51 
53  protected $registeredAfter = '';
54 
56  protected $registeredBefore = '';
57 
59  protected $includeUsers = null;
60 
62  protected $excludeUsers = null;
63 
65  protected $searchPhrase = null;
66 
68  protected $getReviewerData = null;
69 
71  protected $reviewStageId = null;
72 
74  protected $reviewerRating = null;
75 
77  protected $reviewsCompleted = null;
78 
80  protected $reviewsActive = null;
81 
83  protected $daysSinceLastAssignment = null;
84 
86  protected $averageCompletion = null;
87 
89  protected $limit = null;
90 
92  protected $offset = 0;
93 
101  public function filterByContext($contextId) {
102  $this->contextId = $contextId;
103  return $this;
104  }
105 
114  public function orderBy($column, $direction = 'DESC') {
115  if ($column === 'givenName') {
116  $this->orderColumn = 'user_given';
117  } elseif ($column === 'familyName') {
118  $this->orderColumn = 'user_family';
119  } else {
120  $this->orderColumn = 'u.user_id';
121  }
122  $this->orderDirection = $direction;
123  return $this;
124  }
125 
133  public function filterByStatus($status) {
134  $this->status = $status;
135  return $this;
136  }
137 
145  public function filterByRoleIds($roleIds) {
146  if (!is_null($roleIds) && !is_array($roleIds)) {
147  $roleIds = array($roleIds);
148  }
149  $this->roleIds = $roleIds;
150  return $this;
151  }
152 
160  public function assignedToCategory($categoryId) {
161  $this->assignedToCategoryId = $categoryId;
162  return $this;
163  }
164 
172  public function assignedToSection($sectionId) {
173  $this->assignedToSectionId = $sectionId;
174  return $this;
175  }
176 
184  public function assignedToSubmission($submissionId, $submissionStage) {
185  $this->assignedToSubmissionId = $submissionId;
186  if ($submissionStage && $this->assignedToSubmissionId) {
187  $this->assignedToSubmissionStageId = $submissionStage;
188  }
189  return $this;
190  }
191 
198  public function registeredAfter($date) {
199  $this->registeredAfter = $date;
200  return $this;
201  }
202 
209  public function registeredBefore($date) {
210  $this->registeredBefore = $date;
211  return $this;
212  }
213 
221  public function includeUsers($userIds) {
222  $this->includeUsers = $userIds;
223  return $this;
224  }
225 
233  public function excludeUsers($userIds) {
234  $this->excludeUsers = $userIds;
235  return $this;
236  }
237 
245  public function searchPhrase($phrase) {
246  $this->searchPhrase = $phrase;
247  return $this;
248  }
249 
257  public function getReviewerData($enable = true) {
258  $this->getReviewerData = $enable;
259  return $this;
260  }
261 
269  public function filterByReviewStage($reviewStageId = null) {
270  if (!is_null($reviewStageId)) {
271  $this->reviewStageId = $reviewStageId;
272  }
273 
274  return $this;
275  }
276 
284  public function filterByReviewerRating($reviewerRating = null) {
285  if (!is_null($reviewerRating)) {
286  $this->reviewerRating = $reviewerRating;
287  }
288 
289  return $this;
290  }
291 
299  public function filterByReviewsCompleted($reviewsCompleted = null) {
300  if (!is_null($reviewsCompleted)) {
301  $this->reviewsCompleted = $reviewsCompleted;
302  }
303 
304  return $this;
305  }
306 
314  public function filterByReviewsActive($reviewsActive = null) {
315  if (!is_null($reviewsActive)) {
316  $this->reviewsActive = $reviewsActive;
317  }
318 
319  return $this;
320  }
321 
331  if (!is_null($daysSinceLastAssignment)) {
332  $this->daysSinceLastAssignment = $daysSinceLastAssignment;
333  }
334 
335  return $this;
336  }
337 
346  public function filterByAverageCompletion($averageCompletion = null) {
347  if (!is_null($averageCompletion)) {
348  $this->averageCompletion = $averageCompletion;
349  }
350 
351  return $this;
352  }
353 
361  public function limitTo($count) {
362  $this->limit = $count;
363  return $this;
364  }
365 
373  public function offsetBy($offset) {
374  $this->offset = $offset;
375  return $this;
376  }
377 
381  public function getCount() {
382  $q = $this->getQuery();
383  // Reset the groupBy and orderBy
384  $q->groups = ['u.user_id'];
385  $q->orders = [];
386  return $q->select('u.user_id')
387  ->get()
388  ->count();
389  }
390 
394  public function getIds() {
395  $q = $this->getQuery();
396  // Reset the groupBy and orderBy
397  $q->groups = ['u.user_id'];
398  $q->orders = [];
399  return $q->select('u.user_id')
400  ->pluck('u.user_id')
401  ->toArray();
402  }
403 
409  public function getQuery() {
410  $locale = \AppLocale::getLocale();
411  // the users register for the site, thus
412  // the site primary locale should be the default locale
413  $site = \Application::get()->getRequest()->getSite();
414  $primaryLocale = $site->getPrimaryLocale();
415 
416  $this->columns[] = 'u.*';
417  $this->columns[] = Capsule::raw('COALESCE(ugl.setting_value, ugpl.setting_value) AS user_given');
418  $this->columns[] = Capsule::raw('CASE WHEN ugl.setting_value <> \'\' THEN ufl.setting_value ELSE ufpl.setting_value END AS user_family');
419  $q = Capsule::table('users as u')
420  ->leftJoin('user_user_groups as uug', 'uug.user_id', '=', 'u.user_id')
421  ->leftJoin('user_groups as ug', 'ug.user_group_id', '=', 'uug.user_group_id')
422  ->leftJoin('user_settings as ugl', function ($join) use ($locale) {
423  $join->on('ugl.user_id', '=', 'u.user_id')
424  ->where('ugl.setting_name', '=', IDENTITY_SETTING_GIVENNAME)
425  ->where('ugl.locale', '=', $locale);
426  })
427  ->leftJoin('user_settings as ugpl', function ($join) use ($primaryLocale) {
428  $join->on('ugpl.user_id', '=', 'u.user_id')
429  ->where('ugpl.setting_name', '=', IDENTITY_SETTING_GIVENNAME)
430  ->where('ugpl.locale', '=', $primaryLocale);
431  })
432  ->leftJoin('user_settings as ufl', function ($join) use ($locale) {
433  $join->on('ufl.user_id', '=', 'u.user_id')
434  ->where('ufl.setting_name', '=', IDENTITY_SETTING_FAMILYNAME)
435  ->where('ufl.locale', '=', $locale);
436  })
437  ->leftJoin('user_settings as ufpl', function ($join) use ($primaryLocale) {
438  $join->on('ufpl.user_id', '=', 'u.user_id')
439  ->where('ufpl.setting_name', '=', IDENTITY_SETTING_FAMILYNAME)
440  ->where('ufpl.locale', '=', $primaryLocale);
441  });
442 
443  // context
444  // Never permit a query without a context_id clause unless the '*' wildcard
445  // has been set explicitely.
446  if (is_null($this->contextId)) {
447  $q->where('ug.context_id', '=', CONTEXT_ID_NONE);
448  } elseif ($this->contextId !== '*') {
449  $q->where('ug.context_id', '=' , $this->contextId);
450  }
451 
452  // roles
453  if (!is_null($this->roleIds)) {
454  $q->whereIn('ug.role_id', $this->roleIds);
455  }
456 
457  // Exclude users
458  if (!is_null($this->excludeUsers)) {
460  $q->whereNotIn('u.user_id', $excludeUsers);
461  }
462  // status
463  if (!is_null($this->status)) {
464  if ($this->status === 'disabled') {
465  $q->where('u.disabled', '=', 1);
466  } elseif ($this->status === 'active') {
467  $q->where('u.disabled', '=', 0);
468  }
469  }
470 
471  // assigned to submission
472  if (!is_null($this->assignedToSubmissionId)) {
473  $submissionId = $this->assignedToSubmissionId;
474 
475  $q->leftJoin('stage_assignments as sa', function($table) use ($submissionId) {
476  $table->on('u.user_id', '=', 'sa.user_id');
477  $table->on('sa.submission_id', '=', Capsule::raw((int) $submissionId));
478  });
479 
480  $q->whereNotNull('sa.stage_assignment_id');
481 
482  if (!is_null($this->assignedToSubmissionStageId)) {
484 
485  $q->leftJoin('user_group_stage as ugs', 'sa.user_group_id', '=', 'ugs.user_group_id');
486  $q->where('ugs.stage_id', '=', Capsule::raw((int) $stageId));
487  }
488  }
489 
490  // date registered
491  if (!empty($this->registeredAfter)) {
492  $q->where('u.date_registered', '>=', $this->registeredAfter);
493  }
494  if (!empty($this->registeredBefore)) {
495  // Include useres who registered up to the end of the day
496  $dateTime = new \DateTime($this->registeredBefore);
497  $dateTime->add(new \DateInterval('P1D'));
498  $q->where('u.date_registered', '<', $dateTime->format('Y-m-d'));
499  }
500 
501  // review stage id
502  if (!is_null($this->reviewStageId)) {
503  $q->leftJoin('user_group_stage as ugs', 'uug.user_group_id', '=', 'ugs.user_group_id');
504  $q->where('ugs.stage_id', '=', Capsule::raw((int) $this->reviewStageId));
505  }
506 
507  // search phrase
508  if (!empty($this->searchPhrase)) {
509  $words = explode(' ', $this->searchPhrase);
510  if (count($words)) {
511  $q->leftJoin('user_settings as us', 'u.user_id', '=', 'us.user_id');
512  $q->leftJoin('user_interests as ui', 'u.user_id', '=', 'ui.user_id');
513  $q->leftJoin('controlled_vocab_entry_settings as cves', 'ui.controlled_vocab_entry_id', '=', 'cves.controlled_vocab_entry_id');
514  foreach ($words as $word) {
515  $word = strtolower(addcslashes($word, '%_'));
516  $q->where(function($q) use ($word) {
517  $q->where(Capsule::raw('lower(u.username)'), 'LIKE', "%{$word}%")
518  ->orWhere(Capsule::raw('lower(u.email)'), 'LIKE', "%{$word}%")
519  ->orWhere(function($q) use ($word) {
520  $q->where('us.setting_name', IDENTITY_SETTING_GIVENNAME);
521  $q->where(Capsule::raw('lower(us.setting_value)'), 'LIKE', "%{$word}%");
522  })
523  ->orWhere(function($q) use ($word) {
524  $q->where('us.setting_name', IDENTITY_SETTING_FAMILYNAME);
525  $q->where(Capsule::raw('lower(us.setting_value)'), 'LIKE', "%{$word}%");
526  })
527  ->orWhere(function($q) use ($word) {
528  $q->where('us.setting_name', 'affiliation');
529  $q->where(Capsule::raw('lower(us.setting_value)'), 'LIKE', "%{$word}%");
530  })
531  ->orWhere(function($q) use ($word) {
532  $q->where('us.setting_name', 'biography');
533  $q->where(Capsule::raw('lower(us.setting_value)'), 'LIKE', "%{$word}%");
534  })
535  ->orWhere(function($q) use ($word) {
536  $q->where('us.setting_name', 'orcid');
537  $q->where(Capsule::raw('lower(us.setting_value)'), 'LIKE', "%{$word}%");
538  })
539  ->orWhere(Capsule::raw('lower(cves.setting_value)'), 'LIKE', "%{$word}%");
540  });
541  }
542  }
543  }
544 
545  // reviewer data
546  if (!empty($this->getReviewerData)) {
547  $q->leftJoin('review_assignments as ra', 'u.user_id', '=', 'ra.reviewer_id');
548  $this->columns[] = Capsule::raw('MAX(ra.date_assigned) as last_assigned');
549  $this->columns[] = Capsule::raw('(SELECT SUM(CASE WHEN ra.date_completed IS NULL AND ra.declined <> 1 THEN 1 ELSE 0 END) FROM review_assignments AS ra WHERE u.user_id = ra.reviewer_id) as incomplete_count');
550  $this->columns[] = Capsule::raw('(SELECT SUM(CASE WHEN ra.date_completed IS NOT NULL AND ra.declined <> 1 THEN 1 ELSE 0 END) FROM review_assignments AS ra WHERE u.user_id = ra.reviewer_id) as complete_count');
551  $this->columns[] = Capsule::raw('(SELECT SUM(CASE WHEN ra.declined = 1 THEN 1 ELSE 0 END) FROM review_assignments AS ra WHERE u.user_id = ra.reviewer_id) as declined_count');
552  $this->columns[] = Capsule::raw('(SELECT SUM(CASE WHEN ra.cancelled = 1 THEN 1 ELSE 0 END) FROM review_assignments AS ra WHERE u.user_id = ra.reviewer_id) as cancelled_count');
553  switch (\Config::getVar('database', 'driver')) {
554  case 'mysql':
555  case 'mysqli':
556  $dateDiffClause = 'DATEDIFF(ra.date_completed, ra.date_notified)';
557  break;
558  default:
559  $dateDiffClause = 'DATE_PART(\'day\', ra.date_completed - ra.date_notified)';
560  }
561  $this->columns[] = Capsule::raw('AVG(' . $dateDiffClause . ') as average_time');
562  $this->columns[] = Capsule::raw('(SELECT AVG(ra.quality) FROM review_assignments AS ra WHERE u.user_id = ra.reviewer_id AND ra.quality IS NOT NULL) as reviewer_rating');
563 
564  // reviewer rating
565  if (!empty($this->reviewerRating)) {
566  $q->havingRaw('(SELECT AVG(ra.quality) FROM review_assignments AS ra WHERE u.user_id = ra.reviewer_id AND ra.quality IS NOT NULL) >= ' . (int) $this->reviewerRating);
567  }
568 
569  // completed reviews
570  if (!empty($this->reviewsCompleted)) {
571  $doneMin = is_array($this->reviewsCompleted) ? $this->reviewsCompleted[0] : $this->reviewsCompleted;
572  $subqueryStatement = '(SELECT SUM(CASE WHEN ra.date_completed IS NOT NULL THEN 1 ELSE 0 END) FROM review_assignments AS ra WHERE u.user_id = ra.reviewer_id)';
573  $q->having(Capsule::raw($subqueryStatement), '>=', $doneMin);
574  if (is_array($this->reviewsCompleted) && !empty($this->reviewsCompleted[1])) {
575  $q->having(Capsule::raw($subqueryStatement), '<=', $this->reviewsCompleted[1]);
576  }
577  }
578 
579  // active reviews
580  if (!empty($this->reviewsActive)) {
581  $activeMin = is_array($this->reviewsActive) ? $this->reviewsActive[0] : $this->reviewsActive;
582  $subqueryStatement = '(SELECT SUM(CASE WHEN ra.date_completed IS NULL AND ra.declined <> 1 THEN 1 ELSE 0 END) FROM review_assignments AS ra WHERE u.user_id = ra.reviewer_id)';
583  $q->having(Capsule::raw($subqueryStatement), '>=', $activeMin);
584  if (is_array($this->reviewsActive) && !empty($this->reviewsActive[1])) {
585  $q->having(Capsule::raw($subqueryStatement), '<=', $this->reviewsActive[1]);
586  }
587  }
588 
589  // days since last review assignment
590  if (!empty($this->daysSinceLastAssignment)) {
591  $daysSinceMin = is_array($this->daysSinceLastAssignment) ? $this->daysSinceLastAssignment[0] : $this->daysSinceLastAssignment;
592  $userDao = \DAORegistry::getDAO('UserDAO');
593  $dbTimeMin = $userDao->dateTimeToDB(time() - ((int) $daysSinceMin * 86400));
594  $q->havingRaw('MAX(ra.date_assigned) <= ' . $dbTimeMin);
595  if (is_array($this->daysSinceLastAssignment) && !empty($this->daysSinceLastAssignment[1])) {
596  $daysSinceMax = $this->daysSinceLastAssignment[1];
597  // Subtract an extra day so that our outer bound rounds "up". This accounts
598  // for the UI rounding "down" in the string "X days ago".
599  $dbTimeMax = $userDao->dateTimeToDB(time() - ((int) $daysSinceMax * 86400) - 84600);
600  $q->havingRaw('MAX(ra.date_assigned) >= ' . $dbTimeMax);
601  }
602  }
603 
604  // average days to complete review
605  if (!empty($this->averageCompletion)) {
606  $q->havingRaw('AVG(' . $dateDiffClause . ') <= ' . (int) $this->averageCompletion);
607  }
608  }
609 
610  // Include users
611  if (!is_null($this->includeUsers)) {
613  $q->orWhereIn('u.user_id', $includeUsers);
614  }
615 
616  // Limit and offset results for pagination
617  if (!is_null($this->limit)) {
618  $q->limit($this->limit);
619  }
620  if (!empty($this->offset)) {
621  $q->offset($this->offset);
622  }
623 
624  // Section assignments
625  if (!is_null($this->assignedToSectionId)) {
626  $sectionId = $this->assignedToSectionId;
627 
628  $q->leftJoin('subeditor_submission_group as ssg', function($table) use ($sectionId) {
629  $table->on('u.user_id', '=', 'ssg.user_id');
630  $table->on('ssg.assoc_type', '=', Capsule::raw((int) ASSOC_TYPE_SECTION));
631  $table->on('ssg.assoc_id', '=', Capsule::raw((int) $sectionId));
632  });
633 
634  $q->whereNotNull('ssg.assoc_id');
635  }
636 
637  // Category assignments
638  if (!is_null($this->assignedToCategoryId)) {
639  $categoryId = $this->assignedToCategoryId;
640 
641  $q->leftJoin('subeditor_submission_group as ssg', function($table) use ($categoryId) {
642  $table->on('u.user_id', '=', 'ssg.user_id');
643  $table->on('ssg.assoc_type', '=', Capsule::raw((int) ASSOC_TYPE_CATEGORY));
644  $table->on('ssg.assoc_id', '=', Capsule::raw((int) $categoryId));
645  });
646 
647  $q->whereNotNull('ssg.assoc_id');
648  }
649 
650  // Add app-specific query statements
651  \HookRegistry::call('User::getMany::queryObject', array(&$q, $this));
652 
653  $q->select($this->columns)
654  ->groupBy('u.user_id', 'user_given', 'user_family')
655  ->orderBy($this->orderColumn, $this->orderDirection);
656 
657  return $q;
658  }
659 }
PKP\Services\QueryBuilders\PKPUserQueryBuilder\getIds
getIds()
Definition: PKPUserQueryBuilder.inc.php:466
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByRoleIds
filterByRoleIds($roleIds)
Definition: PKPUserQueryBuilder.inc.php:217
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$offset
$offset
Definition: PKPUserQueryBuilder.inc.php:164
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$reviewsActive
$reviewsActive
Definition: PKPUserQueryBuilder.inc.php:140
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$limit
$limit
Definition: PKPUserQueryBuilder.inc.php:158
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$averageCompletion
$averageCompletion
Definition: PKPUserQueryBuilder.inc.php:152
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$excludeUsers
$excludeUsers
Definition: PKPUserQueryBuilder.inc.php:104
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByStatus
filterByStatus($status)
Definition: PKPUserQueryBuilder.inc.php:205
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$registeredBefore
$registeredBefore
Definition: PKPUserQueryBuilder.inc.php:92
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$assignedToSubmissionId
$assignedToSubmissionId
Definition: PKPUserQueryBuilder.inc.php:74
PKP\Services\QueryBuilders\PKPUserQueryBuilder\assignedToSubmission
assignedToSubmission($submissionId, $submissionStage)
Definition: PKPUserQueryBuilder.inc.php:256
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$searchPhrase
$searchPhrase
Definition: PKPUserQueryBuilder.inc.php:110
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PKP\Services\QueryBuilders
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$registeredAfter
$registeredAfter
Definition: PKPUserQueryBuilder.inc.php:86
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByReviewStage
filterByReviewStage($reviewStageId=null)
Definition: PKPUserQueryBuilder.inc.php:341
PKP\Services\QueryBuilders\PKPUserQueryBuilder\registeredBefore
registeredBefore($date)
Definition: PKPUserQueryBuilder.inc.php:281
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByDaysSinceLastAssignment
filterByDaysSinceLastAssignment($daysSinceLastAssignment=null)
Definition: PKPUserQueryBuilder.inc.php:402
PKP\Services\QueryBuilders\PKPUserQueryBuilder\assignedToSection
assignedToSection($sectionId)
Definition: PKPUserQueryBuilder.inc.php:244
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByAverageCompletion
filterByAverageCompletion($averageCompletion=null)
Definition: PKPUserQueryBuilder.inc.php:418
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$roleIds
$roleIds
Definition: PKPUserQueryBuilder.inc.php:56
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$columns
$columns
Definition: PKPUserQueryBuilder.inc.php:32
PKP\Services\QueryBuilders\PKPUserQueryBuilder\getCount
getCount()
Definition: PKPUserQueryBuilder.inc.php:453
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByContext
filterByContext($contextId)
Definition: PKPUserQueryBuilder.inc.php:173
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByReviewsActive
filterByReviewsActive($reviewsActive=null)
Definition: PKPUserQueryBuilder.inc.php:386
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$includeUsers
$includeUsers
Definition: PKPUserQueryBuilder.inc.php:98
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$getReviewerData
$getReviewerData
Definition: PKPUserQueryBuilder.inc.php:116
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$assignedToCategoryId
$assignedToCategoryId
Definition: PKPUserQueryBuilder.inc.php:62
PKP\Services\QueryBuilders\PKPUserQueryBuilder\orderBy
orderBy($column, $direction='DESC')
Definition: PKPUserQueryBuilder.inc.php:186
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$reviewsCompleted
$reviewsCompleted
Definition: PKPUserQueryBuilder.inc.php:134
PKP\Services\QueryBuilders\PKPUserQueryBuilder\assignedToCategory
assignedToCategory($categoryId)
Definition: PKPUserQueryBuilder.inc.php:232
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$assignedToSubmissionStageId
$assignedToSubmissionStageId
Definition: PKPUserQueryBuilder.inc.php:80
PKP\Services\QueryBuilders\PKPUserQueryBuilder\getReviewerData
getReviewerData($enable=true)
Definition: PKPUserQueryBuilder.inc.php:329
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByReviewsCompleted
filterByReviewsCompleted($reviewsCompleted=null)
Definition: PKPUserQueryBuilder.inc.php:371
PKP\Services\QueryBuilders\PKPUserQueryBuilder\filterByReviewerRating
filterByReviewerRating($reviewerRating=null)
Definition: PKPUserQueryBuilder.inc.php:356
PKP\Services\QueryBuilders\PKPUserQueryBuilder\limitTo
limitTo($count)
Definition: PKPUserQueryBuilder.inc.php:433
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$assignedToSectionId
$assignedToSectionId
Definition: PKPUserQueryBuilder.inc.php:68
PKP\Services\QueryBuilders\PKPUserQueryBuilder\searchPhrase
searchPhrase($phrase)
Definition: PKPUserQueryBuilder.inc.php:317
PKP\Services\QueryBuilders\PKPUserQueryBuilder\excludeUsers
excludeUsers($userIds)
Definition: PKPUserQueryBuilder.inc.php:305
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$orderColumn
$orderColumn
Definition: PKPUserQueryBuilder.inc.php:38
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$contextId
$contextId
Definition: PKPUserQueryBuilder.inc.php:26
PKP\Services\QueryBuilders\PKPUserQueryBuilder\getQuery
getQuery()
Definition: PKPUserQueryBuilder.inc.php:481
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$reviewerRating
$reviewerRating
Definition: PKPUserQueryBuilder.inc.php:128
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$daysSinceLastAssignment
$daysSinceLastAssignment
Definition: PKPUserQueryBuilder.inc.php:146
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$status
$status
Definition: PKPUserQueryBuilder.inc.php:50
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
PKP\Services\QueryBuilders\PKPUserQueryBuilder\includeUsers
includeUsers($userIds)
Definition: PKPUserQueryBuilder.inc.php:293
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
AppLocale\getLocale
static getLocale()
Definition: env1/MockAppLocale.inc.php:40
PKP\Services\QueryBuilders\PKPUserQueryBuilder\offsetBy
offsetBy($offset)
Definition: PKPUserQueryBuilder.inc.php:445
PKP\Services\QueryBuilders\PKPUserQueryBuilder
Definition: PKPUserQueryBuilder.inc.php:20
PKP\Services\QueryBuilders\Interfaces\EntityQueryBuilderInterface
Definition: EntityQueryBuilderInterface.inc.php:19
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$reviewStageId
$reviewStageId
Definition: PKPUserQueryBuilder.inc.php:122
PKP\Services\QueryBuilders\PKPUserQueryBuilder\$orderDirection
$orderDirection
Definition: PKPUserQueryBuilder.inc.php:44
PKP\Services\QueryBuilders\PKPUserQueryBuilder\registeredAfter
registeredAfter($date)
Definition: PKPUserQueryBuilder.inc.php:270