16 import(
'classes.handler.Handler');
28 parent::__construct();
29 $op = $request->getRouter()->getRequestedOp($request);
30 if (
$op ==
'plugin') {
31 $args = $request->getRouter()->getRequestedArgs($request);
32 $pluginName = array_shift($args);
34 if (!isset($plugins[$pluginName])) {
35 $request->getDispatcher()->handle404();
37 $this->
plugin = $plugins[$pluginName];
38 foreach ($this->
plugin->getPolicies($request) as $policy) {
49 function index($args, $request) {
50 $request->redirect(
null,
'index');
62 $journal = $request->getJournal();
65 if ($journal !=
null) {
66 if (!$journal->getData(
'enableLockss')) {
67 $request->redirect(
null,
'index');
70 $year = $request->getUserVar(
'year');
77 $result = $issueDao->retrieve(
78 'SELECT * FROM issues WHERE journal_id = ? AND year = ? AND published = 1 ORDER BY current DESC, year ASC, volume ASC, number ASC',
79 array($journal->getId(), $year)
81 if ($result->RecordCount() == 0) {
87 $result = $issueDao->retrieve(
88 'SELECT MAX(year) FROM issues WHERE journal_id = ? AND published = 1',
91 list($year) = $result->fields;
92 $templateMgr->assign(
'showInfo',
true);
95 $prevYear = $nextYear =
null;
97 $result = $issueDao->retrieve(
98 'SELECT MAX(year) FROM issues WHERE journal_id = ? AND published = 1 AND year < ?',
99 array($journal->getId(), $year)
101 list($prevYear) = $result->fields;
103 $result = $issueDao->retrieve(
104 'SELECT MIN(year) FROM issues WHERE journal_id = ? AND published = 1 AND year > ?',
105 array($journal->getId(), $year)
107 list($nextYear) = $result->fields;
110 $issues = $issueDao->getPublishedIssuesByNumber($journal->getId(),
null,
null, $year);
111 $templateMgr->assign(array(
112 'journal' => $journal,
114 'prevYear' => $prevYear,
115 'nextYear' => $nextYear,
119 $locales = $journal->getSupportedLocaleNames();
120 if (!isset($locales) || empty($locales)) {
123 $locales = array($primaryLocale => $localeNames[$primaryLocale]);
125 $templateMgr->assign(
'locales', $locales);
128 $journals = $journalDao->getAll(
true);
129 $templateMgr->assign(
'journals', $journals);
132 $templateMgr->display(
'gateway/lockss.tpl');
144 $journal = $request->getJournal();
147 if ($journal !=
null) {
148 if (!$journal->getData(
'enableClockss')) {
149 $request->redirect(
null,
'index');
152 $year = $request->getUserVar(
'year');
159 $result = $issueDao->retrieve(
160 'SELECT * FROM issues WHERE journal_id = ? AND year = ? AND published = 1 ORDER BY current DESC, year ASC, volume ASC, number ASC',
161 array($journal->getId(), $year)
163 if ($result->RecordCount() == 0) {
169 $result = $issueDao->retrieve(
170 'SELECT MAX(year) FROM issues WHERE journal_id = ? AND published = 1',
173 list($year) = $result->fields;
174 $issues = $issueDao->getPublishedIssuesByNumber($journal->getId(),
null,
null, $year);
175 $templateMgr->assign(array(
181 $prevYear = $nextYear =
null;
183 $result = $issueDao->retrieve(
184 'SELECT MAX(year) FROM issues WHERE journal_id = ? AND published = 1 AND year < ?',
185 array($journal->getId(), $year)
187 list($prevYear) = $result->fields;
189 $result = $issueDao->retrieve(
190 'SELECT MIN(year) FROM issues WHERE journal_id = ? AND published = 1 AND year > ?',
191 array($journal->getId(), $year)
193 list($nextYear) = $result->fields;
196 $issues = $issueDao->getPublishedIssuesByNumber($journal->getId(),
null,
null, $year);
197 $templateMgr->assign(array(
198 'journal' => $journal,
200 'prevYear' => $prevYear,
201 'nextYear' => $nextYear,
205 $locales = $journal->getSupportedLocaleNames();
206 if (!isset($locales) || empty($locales)) {
209 $locales = array($primaryLocale => $localeNames[$primaryLocale]);
211 $templateMgr->assign(
'locales', $locales);
215 $journals = $journalDao->getAll(
true);
216 $templateMgr->assign(
'journals', $journals);
219 $templateMgr->display(
'gateway/clockss.tpl');
229 if (isset($this->
plugin)) {
230 if (!$this->
plugin->fetch(array_slice($args, 1), $request)) {
231 $request->redirect(
null,
'index');
234 $request->redirect(
null,
'index');