Open Preprint Systems  3.3.0
PreprintsHandler.inc.php
1 <?php
2 
16 import('classes.handler.Handler');
17 
18 class PreprintsHandler extends Handler {
19 
23  function authorize($request, &$args, $roleAssignments) {
24  import('lib.pkp.classes.security.authorization.ContextRequiredPolicy');
25  $this->addPolicy(new ContextRequiredPolicy($request));
26 
27  import('classes.security.authorization.OpsServerMustPublishPolicy');
28  $this->addPolicy(new OpsServerMustPublishPolicy($request));
29 
30  return parent::authorize($request, $args, $roleAssignments);
31  }
32 
40  function index($args, $request) {
41  $this->setupTemplate($request);
42  $page = isset($args[0]) ? (int) $args[0] : 1;
43  $templateMgr = TemplateManager::getManager($request);
44  $context = $request->getContext();
45 
46  // OPS: sections
47  $sectionDao = DAORegistry::getDAO('SectionDAO'); /* @var $sectionDao SectionDAO */
48  $sections = $sectionDao->getByContextId($context->getId());
49 
50  // OPS: categories
51  $categoryDao = DAORegistry::getDAO('CategoryDAO'); /* @var $categoryDao CategoryDAO */
52  $categories = $categoryDao->getByContextId($context->getId());
53 
54  $count = $context->getData('itemsPerPage') ? $context->getData('itemsPerPage') : Config::getVar('interface', 'items_per_page');
55  $offset = $page > 1 ? ($page - 1) * $count : 0;
56 
57  import('classes.submission.Submission');
58  $submissionService = Services::get('submission');
59  $params = array(
60  'contextId' => $context->getId(),
61  'count' => $count,
62  'offset' => $offset,
63  'status' => STATUS_PUBLISHED,
64  );
65  $publishedSubmissions = $submissionService->getMany($params);
66  $total = $submissionService->getMax($params);
67 
68  $showingStart = $offset + 1;
69  $showingEnd = min($offset + $count, $offset + count($publishedSubmissions));
70  $nextPage = $total > $showingEnd ? $page + 1 : null;
71  $prevPage = $showingStart > 1 ? $page - 1 : null;
72 
73  $templateMgr->assign(array(
74  'sections' => $sections,
75  'categories' => $categories,
76  'publishedSubmissions' => $publishedSubmissions,
77  'pubIdPlugins' => PluginRegistry::loadCategory('pubIds', true),
78  'showingStart' => $showingStart,
79  'showingEnd' => $showingEnd,
80  'total' => $total,
81  'nextPage' => $nextPage,
82  'prevPage' => $prevPage,
83  ));
84 
85  $templateMgr->display('frontend/pages/preprints.tpl');
86  }
87 
88  function setupTemplate($request) {
89  parent::setupTemplate($request);
90  AppLocale::requireComponents(LOCALE_COMPONENT_PKP_READER, LOCALE_COMPONENT_APP_EDITOR);
91  }
92 
93 
94 }
OpsServerMustPublishPolicy
Access policy to limit access to servers that do not publish online.
Definition: OpsServerMustPublishPolicy.inc.php:18
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PreprintsHandler\setupTemplate
setupTemplate($request)
Definition: PreprintsHandler.inc.php:88
PluginRegistry\loadCategory
static loadCategory($category, $enabledOnly=false, $mainContextId=null)
Definition: PluginRegistry.inc.php:103
PreprintsHandler
Handle requests for preprints archive functions.
Definition: PreprintsHandler.inc.php:18
PreprintsHandler\index
index($args, $request)
Definition: PreprintsHandler.inc.php:40
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1226
PreprintsHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: PreprintsHandler.inc.php:23
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
Handler
Base request handler application class.
Definition: Handler.inc.php:18
ContextRequiredPolicy
Policy to deny access if a context cannot be found in the request.
Definition: ContextRequiredPolicy.inc.php:17
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49