17 import(
'lib.pkp.pages.catalog.PKPCatalogHandler');
28 function index($args, $request) {
29 return $this->
page($args, $request,
true);
40 public function page($args, $request, $isFirstPage =
false) {
45 $page = (int) $args[0];
48 if (!$isFirstPage && (empty($page) || $page < 2)) {
49 $request->getDispatcher()->handle404();
54 $context = $request->getContext();
56 import(
'classes.submission.Submission');
57 import(
'classes.submission.SubmissionDAO');
59 $orderOption = $context->getData(
'catalogSortOption') ? $context->getData(
'catalogSortOption') : ORDERBY_DATE_PUBLISHED .
'-' . SORT_DIRECTION_DESC;
60 list($orderBy, $orderDir) = explode(
'-', $orderOption);
62 $count = $context->getData(
'itemsPerPage') ? $context->getData(
'itemsPerPage') :
Config::getVar(
'interface',
'items_per_page');
63 $offset = $page > 1 ? ($page - 1) * $count : 0;
65 import(
'classes.core.Services');
69 'contextId' => $context->getId(),
70 'orderByFeatured' =>
true,
71 'orderBy' => $orderBy,
72 'orderDirection' => $orderDir == SORT_DIRECTION_ASC ?
'ASC' :
'DESC',
75 'status' => STATUS_PUBLISHED,
77 $submissionsIterator = $submissionService->getMany($params);
78 $total = $submissionService->getMax($params);
81 $featuredMonographIds = $featureDao->getSequencesByAssoc(ASSOC_TYPE_PRESS, $context->getId());
85 $templateMgr->assign(array(
86 'publishedSubmissions' => iterator_to_array($submissionsIterator),
87 'featuredMonographIds' => $featuredMonographIds,
90 $templateMgr->display(
'frontend/pages/catalog.tpl');
101 $press = $request->getPress();
105 $newReleases = $newReleaseDao->getMonographsByAssoc(ASSOC_TYPE_PRESS, $press->getId());
106 $templateMgr->assign(
'publishedSubmissions', $newReleases);
109 $templateMgr->display(
'frontend/pages/catalogNewReleases.tpl');
122 $seriesPath = $args[0];
123 $page = isset($args[1]) ? (int) $args[1] : 1;
125 $context = $request->getContext();
129 $series = $seriesDao->getByPath($seriesPath, $context->getId());
132 $request->redirect(
null,
'catalog');
136 import(
'classes.submission.Submission');
137 import(
'classes.submission.SubmissionDAO');
139 $orderOption = $series->getSortOption() ? $series->getSortOption() : ORDERBY_DATE_PUBLISHED .
'-' . SORT_DIRECTION_DESC;
140 list($orderBy, $orderDir) = explode(
'-', $orderOption);
142 $count = $context->getData(
'itemsPerPage') ? $context->getData(
'itemsPerPage') :
Config::getVar(
'interface',
'items_per_page');
143 $offset = $page > 1 ? ($page - 1) * $count : 0;
145 import(
'classes.core.Services');
149 'contextId' => $context->getId(),
150 'seriesIds' => $series->getId(),
151 'orderByFeatured' =>
true,
152 'orderBy' => $orderBy,
153 'orderDirection' => $orderDir == SORT_DIRECTION_ASC ?
'ASC' :
'DESC',
156 'status' => STATUS_PUBLISHED,
158 $submissionsIterator = $submissionService->getMany($params);
159 $total = $submissionService->getMax($params);
162 $featuredMonographIds = $featureDao->getSequencesByAssoc(ASSOC_TYPE_SERIES, $series->getId());
165 $newReleases = array();
168 $newReleases = $newReleaseDao->getMonographsByAssoc(ASSOC_TYPE_SERIES, $series->getId());
173 $templateMgr->assign(array(
175 'publishedSubmissions' => iterator_to_array($submissionsIterator),
176 'featuredMonographIds' => $featuredMonographIds,
177 'newReleasesMonographs' => $newReleases,
180 return $templateMgr->display(
'frontend/pages/catalogSeries.tpl');
190 $request->redirect(
null,
'search');
198 $press = $request->getPress();
199 $type = $request->getUserVar(
'type');
200 $id = $request->getUserVar(
'id');
201 $imageInfo = array();
206 $path =
'/categories/';
208 $category = $categoryDao->getById($id, $press->getId());
210 $imageInfo = $category->getImage();
216 $series = $seriesDao->getById($id, $press->getId());
218 $imageInfo = $series->getImage();
227 import(
'lib.pkp.classes.file.ContextFileManager');
229 $pressFileManager->downloadByPath($pressFileManager->getBasePath() . $path . $imageInfo[
'name'],
null,
true);
237 $press = $request->getPress();
238 $type = $request->getUserVar(
'type');
239 $id = $request->getUserVar(
'id');
240 $imageInfo = array();
245 $path =
'/categories/';
247 $category = $categoryDao->getById($id, $press->getId());
249 $imageInfo = $category->getImage();
255 $series = $seriesDao->getById($id, $press->getId());
257 $imageInfo = $series->getImage();
266 import(
'lib.pkp.classes.file.ContextFileManager');
268 $pressFileManager->downloadByPath($pressFileManager->getBasePath() . $path . $imageInfo[
'thumbnailName'],
null,
true);
277 $press = $request->getPress();
279 $templateMgr->assign(
'currency', $press->getSetting(
'currency'));
281 parent::setupTemplate($request);
294 $showingStart = $offset + 1;
295 $showingEnd = min($offset + $count, $offset + $submissionsCount);
296 $nextPage = $total > $showingEnd ? $page + 1 :
null;
297 $prevPage = $showingStart > 1 ? $page - 1 :
null;
300 $templateMgr->assign(array(
301 'showingStart' => $showingStart,
302 'showingEnd' => $showingEnd,
304 'nextPage' => $nextPage,
305 'prevPage' => $prevPage,