00001 <?php
00002
00015
00016
00017
00018 import('rt.ojs.JournalRTAdmin');
00019
00020 class RTSearchHandler extends RTAdminHandler {
00021 function createSearch($args) {
00022 RTAdminHandler::validate();
00023
00024 $journal = Request::getJournal();
00025
00026 $rtDao = &DAORegistry::getDAO('RTDAO');
00027
00028 $versionId = isset($args[0])?$args[0]:0;
00029 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00030 $contextId = isset($args[1])?$args[1]:0;
00031 $context = &$rtDao->getContext($contextId);
00032
00033 import('rt.ojs.form.SearchForm');
00034 $searchForm = &new SearchForm(null, $contextId, $versionId);
00035
00036 if (isset($args[2]) && $args[2]=='save') {
00037 $searchForm->readInputData();
00038 $searchForm->execute();
00039 Request::redirect(null, null, 'searches', array($versionId, $contextId));
00040 } else {
00041 RTAdminHandler::setupTemplate(true, $version, $context);
00042 $searchForm->display();
00043 }
00044 }
00045
00046 function searches($args) {
00047 RTAdminHandler::validate();
00048
00049 $journal = Request::getJournal();
00050
00051 $rtDao = &DAORegistry::getDAO('RTDAO');
00052 $rangeInfo = Handler::getRangeInfo('searches');
00053
00054 $versionId = isset($args[0])?$args[0]:0;
00055 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00056
00057 $contextId = isset($args[1])?$args[1]:0;
00058 $context = &$rtDao->getContext($contextId);
00059
00060 if ($context && $version && $context->getVersionId() == $version->getVersionId()) {
00061 RTAdminHandler::setupTemplate(true, $version, $context);
00062
00063 $templateMgr = &TemplateManager::getManager();
00064
00065 $templateMgr->assign_by_ref('version', $version);
00066 $templateMgr->assign_by_ref('context', $context);
00067 $templateMgr->assign_by_ref('searches', new ArrayItemIterator($context->getSearches(), $rangeInfo->getPage(), $rangeInfo->getCount()));
00068
00069 $templateMgr->assign('helpTopicId', 'journal.managementPages.readingTools.contexts');
00070 $templateMgr->display('rtadmin/searches.tpl');
00071 }
00072 else Request::redirect(null, null, 'versions');
00073 }
00074
00075 function editSearch($args) {
00076 RTAdminHandler::validate();
00077
00078 $rtDao = &DAORegistry::getDAO('RTDAO');
00079
00080 $journal = Request::getJournal();
00081 $versionId = isset($args[0])?$args[0]:0;
00082 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00083 $contextId = isset($args[1])?$args[1]:0;
00084 $context = &$rtDao->getContext($contextId);
00085 $searchId = isset($args[2])?$args[2]:0;
00086 $search = &$rtDao->getSearch($searchId);
00087
00088 if (isset($version) && isset($context) && isset($search) && $context->getVersionId() == $version->getVersionId() && $search->getContextId() == $context->getContextId()) {
00089 import('rt.ojs.form.SearchForm');
00090 RTAdminHandler::setupTemplate(true, $version, $context, $search);
00091 $searchForm = &new SearchForm($searchId, $contextId, $versionId);
00092 $searchForm->initData();
00093 $searchForm->display();
00094 }
00095 else Request::redirect(null, null, 'searches', array($versionId, $contextId));
00096
00097
00098 }
00099
00100 function deleteSearch($args) {
00101 RTAdminHandler::validate();
00102
00103 $rtDao = &DAORegistry::getDAO('RTDAO');
00104
00105 $journal = Request::getJournal();
00106 $versionId = isset($args[0])?$args[0]:0;
00107 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00108 $contextId = isset($args[1])?$args[1]:0;
00109 $context = &$rtDao->getContext($contextId);
00110 $searchId = isset($args[2])?$args[2]:0;
00111 $search = &$rtDao->getSearch($searchId);
00112
00113 if (isset($version) && isset($context) && isset($search) && $context->getVersionId() == $version->getVersionId() && $search->getContextId() == $context->getContextId()) {
00114 $rtDao->deleteSearch($searchId, $contextId);
00115 }
00116
00117 Request::redirect(null, null, 'searches', array($versionId, $contextId));
00118 }
00119
00120 function saveSearch($args) {
00121 RTAdminHandler::validate();
00122
00123 $rtDao = &DAORegistry::getDAO('RTDAO');
00124
00125 $journal = Request::getJournal();
00126 $versionId = isset($args[0])?$args[0]:0;
00127 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00128 $contextId = isset($args[1])?$args[1]:0;
00129 $context = &$rtDao->getContext($contextId);
00130 $searchId = isset($args[2])?$args[2]:0;
00131 $search = &$rtDao->getSearch($searchId);
00132
00133 if (isset($version) && isset($context) && isset($search) && $context->getVersionId() == $version->getVersionId() && $search->getContextId() == $context->getContextId()) {
00134 import('rt.ojs.form.SearchForm');
00135 $searchForm = &new SearchForm($searchId, $contextId, $versionId);
00136 $searchForm->readInputData();
00137 $searchForm->execute();
00138 }
00139
00140 Request::redirect(null, null, 'searches', array($versionId, $contextId));
00141 }
00142
00143 function moveSearch($args) {
00144 RTAdminHandler::validate();
00145
00146 $rtDao = &DAORegistry::getDAO('RTDAO');
00147
00148 $journal = Request::getJournal();
00149 $versionId = isset($args[0])?$args[0]:0;
00150 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00151 $contextId = isset($args[1])?$args[1]:0;
00152 $context = &$rtDao->getContext($contextId);
00153 $searchId = isset($args[2])?$args[2]:0;
00154 $search = &$rtDao->getSearch($searchId);
00155
00156 if (isset($version) && isset($context) && isset($search) && $context->getVersionId() == $version->getVersionId() && $search->getContextId() == $context->getContextId()) {
00157 $isDown = Request::getUserVar('dir')=='d';
00158 $search->setOrder($search->getOrder()+($isDown?1.5:-1.5));
00159 $rtDao->updateSearch($search);
00160 $rtDao->resequenceSearches($context->getContextId());
00161 }
00162
00163 Request::redirect(null, null, 'searches', array($versionId, $contextId));
00164 }
00165 }
00166
00167 ?>