17 import(
'classes.handler.Handler');
26 function authorize($request, &$args, $roleAssignments) {
28 import(
'lib.pkp.classes.security.authorization.ContextRequiredPolicy');
31 import(
'classes.security.authorization.OpsServerMustPublishPolicy');
34 return parent::authorize($request, $args, $roleAssignments);
48 $sectionPath = isset($args[0]) ? $args[0] :
null;
49 $page = isset($args[1]) && ctype_digit((
string) $args[1]) ? (int) $args[1] : 1;
50 $context = $request->getContext();
51 $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
55 if (isset($args[1]) && (!ctype_digit((
string) $args[1]) || $args[1] == 1)) {
56 $request->getDispatcher()->handle404();
60 if (!$sectionPath || !$contextId) {
61 $request->getDispatcher()->handle404();
66 $sections = $sectionDao->getByContextId($contextId);
68 $sectionExists =
false;
70 if ($section->getData(
'path') === $sectionPath) {
71 $sectionExists =
true;
76 if (!$sectionExists) {
77 $request->getDispatcher()->handle404();
81 import(
'classes.submission.Submission');
84 'contextId' => $contextId,
85 'count' => $context->getData(
'itemsPerPage'),
86 'offset' => $page ? ($page - 1) * $context->getData(
'itemsPerPage') : 0,
87 'orderBy' =>
'datePublished',
88 'sectionIds' => [(int) $section->getId()],
89 'status' => STATUS_PUBLISHED,
95 if ($page > 1 && !$result->valid()) {
96 $request->getDispatcher()->handle404();
101 foreach ($result as $submission) {
102 $submissions[] = $submission;
105 $showingStart = $params[
'offset'] + 1;
106 $showingEnd = min($params[
'offset'] + $params[
'count'], $params[
'offset'] + count($submissions));
107 $nextPage = $total > $showingEnd ? $page + 1 :
null;
108 $prevPage = $showingStart > 1 ? $page - 1 :
null;
111 $templateMgr->assign(array(
112 'section' => $section,
113 'sectionPath' => $sectionPath,
114 'preprints' => $submissions,
115 'showingStart' => $showingStart,
116 'showingEnd' => $showingEnd,
118 'nextPage' => $nextPage,
119 'prevPage' => $prevPage,
122 $templateMgr->display(
'frontend/pages/sections.tpl');