Open Monograph Press  3.3.0
SubmissionService.inc.php
1 <?php
2 
17 namespace APP\Services;
18 
20 
24  public function __construct() {
25  \HookRegistry::register('Submission::getMany::queryBuilder', array($this, 'modifySubmissionQueryBuilder'));
26  \HookRegistry::register('Submission::getMany::queryObject', array($this, 'modifySubmissionQueryObject'));
27  \HookRegistry::register('Submission::getBackendListProperties::properties', array($this, 'modifyBackendListPropertyValues'));
28  \HookRegistry::register('Submission::getProperties::values', array($this, 'modifyPropertyValues'));
29  }
30 
43  public function modifySubmissionQueryBuilder($hookName, $args) {
44  $submissionQB =& $args[0];
45  $requestArgs = $args[1];
46 
47  if (!empty($requestArgs['categoryIds'])) {
48  $submissionQB->filterByCategories($requestArgs['categoryIds']);
49  }
50 
51  if (!empty($requestArgs['seriesIds'])) {
52  $submissionQB->filterBySeries($requestArgs['seriesIds']);
53  }
54 
55  if (!empty($requestArgs['orderByFeatured'])) {
56  $submissionQB->orderByFeatured();
57  }
58 
59  return $submissionQB;
60  }
61 
73  public function modifySubmissionQueryObject($hookName, $args) {
74  $queryObject =& $args[0];
75  $queryBuilder = $args[1];
76 
77  $queryObject = $queryBuilder->appGet($queryObject);
78 
79  return true;
80  }
81 
94  public function modifyBackendListPropertyValues($hookName, $args) {
95  $props =& $args[0];
96 
97  $props[] = 'series';
98  $props[] = 'category';
99  $props[] = 'featured';
100  $props[] = 'newRelease';
101  }
102 
116  public function modifyPropertyValues($hookName, $args) {
117  $values =& $args[0];
118  $submission = $args[1];
119  $props = $args[2];
120  $propertyArgs = $args[3];
121  $request = $args[3]['request'];
122  $context = $request->getContext();
123  $dispatcher = $request->getDispatcher();
124 
125  foreach ($props as $prop) {
126  switch ($prop) {
127  case 'urlPublished':
128  $values[$prop] = $dispatcher->url(
129  $request,
130  ROUTE_PAGE,
131  $context->getPath(),
132  'catalog',
133  'book',
134  $submission->getBestId()
135  );
136  break;
137  case 'featured':
138  $featureDao = \DAORegistry::getDAO('FeatureDAO');
139  $values[$prop] = $featureDao->getFeaturedAll($submission->getId());
140  break;
141  case 'newRelease':
142  $newReleaseDao = \DAORegistry::getDAO('NewReleaseDAO');
143  $values[$prop] = $newReleaseDao->getNewReleaseAll($submission->getId());
144  break;
145  }
146  }
147  }
148 }
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
APP\Services\SubmissionService\modifyBackendListPropertyValues
modifyBackendListPropertyValues($hookName, $args)
Definition: SubmissionService.inc.php:94
PKP\Services\PKPSubmissionService
Definition: PKPSubmissionService.inc.php:32
APP\Services\SubmissionService\modifySubmissionQueryObject
modifySubmissionQueryObject($hookName, $args)
Definition: SubmissionService.inc.php:73
APP\Services
Definition: ContextService.inc.php:15
HookRegistry\register
static register($hookName, $callback, $hookSequence=HOOK_SEQUENCE_NORMAL)
Definition: HookRegistry.inc.php:70
APP\Services\SubmissionService
Definition: SubmissionService.inc.php:19
APP\Services\SubmissionService\__construct
__construct()
Definition: SubmissionService.inc.php:24
APP\Services\SubmissionService\modifyPropertyValues
modifyPropertyValues($hookName, $args)
Definition: SubmissionService.inc.php:116
APP\Services\SubmissionService\modifySubmissionQueryBuilder
modifySubmissionQueryBuilder($hookName, $args)
Definition: SubmissionService.inc.php:43