00001 <?php
00002
00015
00016
00017
00018 import('rt.ojs.JournalRTAdmin');
00019
00020 class RTVersionHandler extends RTAdminHandler {
00021 function createVersion($args) {
00022 RTAdminHandler::validate();
00023
00024 $rtDao = &DAORegistry::getDAO('RTDAO');
00025
00026 $journal = Request::getJournal();
00027
00028 import('rt.ojs.form.VersionForm');
00029 $versionForm = &new VersionForm(null, $journal->getJournalId());
00030
00031 if (isset($args[0]) && $args[0]=='save') {
00032 $versionForm->readInputData();
00033 $versionForm->execute();
00034 Request::redirect(null, null, 'versions');
00035 } else {
00036 RTAdminHandler::setupTemplate(true);
00037 $versionForm->display();
00038 }
00039 }
00040
00041 function exportVersion($args) {
00042 RTAdminHandler::validate();
00043
00044 $rtDao = &DAORegistry::getDAO('RTDAO');
00045
00046 $journal = Request::getJournal();
00047 $versionId = isset($args[0])?$args[0]:0;
00048 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00049
00050 if ($version) {
00051 $templateMgr = &TemplateManager::getManager();
00052 $templateMgr->assign_by_ref('version', $version);
00053
00054 $templateMgr->display('rtadmin/exportXml.tpl', 'application/xml');
00055 }
00056 else Request::redirect(null, null, 'versions');
00057 }
00058
00059 function importVersion() {
00060 RTAdminHandler::validate();
00061 $journal = &Request::getJournal();
00062
00063 $fileField = 'versionFile';
00064 if (isset($_FILES[$fileField]['tmp_name']) && is_uploaded_file($_FILES[$fileField]['tmp_name'])) {
00065 $rtAdmin = &new JournalRTAdmin($journal->getJournalId());
00066 $rtAdmin->importVersion($_FILES[$fileField]['tmp_name']);
00067 }
00068 Request::redirect(null, null, 'versions');
00069 }
00070
00071 function restoreVersions() {
00072 RTAdminHandler::validate();
00073
00074 $journal = &Request::getJournal();
00075 $rtAdmin = &new JournalRTAdmin($journal->getJournalId());
00076 $rtAdmin->restoreVersions();
00077
00078
00079
00080
00081 $rtDao = &DAORegistry::getDAO('RTDAO');
00082 $journalRt = $rtDao->getJournalRTByJournal($journal);
00083 if ($journalRt) {
00084 $journalRt->setVersion(null);
00085 $rtDao->updateJournalRT($journalRt);
00086 }
00087
00088 Request::redirect(null, null, 'versions');
00089 }
00090
00091 function versions() {
00092 RTAdminHandler::validate();
00093 RTAdminHandler::setupTemplate(true);
00094
00095 $journal = Request::getJournal();
00096
00097 $rtDao = &DAORegistry::getDAO('RTDAO');
00098 $rangeInfo = Handler::getRangeInfo('versions');
00099
00100 $templateMgr = &TemplateManager::getManager();
00101 $templateMgr->assign_by_ref('versions', $rtDao->getVersions($journal->getJournalId(), $rangeInfo));
00102 $templateMgr->assign('helpTopicId', 'journal.managementPages.readingTools.versions');
00103 $templateMgr->display('rtadmin/versions.tpl');
00104 }
00105
00106 function editVersion($args) {
00107 RTAdminHandler::validate();
00108
00109 $rtDao = &DAORegistry::getDAO('RTDAO');
00110
00111 $journal = Request::getJournal();
00112 $versionId = isset($args[0])?$args[0]:0;
00113 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00114
00115 if (isset($version)) {
00116 import('rt.ojs.form.VersionForm');
00117 RTAdminHandler::setupTemplate(true, $version);
00118 $versionForm = &new VersionForm($versionId, $journal->getJournalId());
00119 $versionForm->initData();
00120 $versionForm->display();
00121 }
00122 else Request::redirect(null, null, 'versions');
00123 }
00124
00125 function deleteVersion($args) {
00126 RTAdminHandler::validate();
00127
00128 $rtDao = &DAORegistry::getDAO('RTDAO');
00129
00130 $journal = Request::getJournal();
00131 $versionId = isset($args[0])?$args[0]:0;
00132
00133 $rtDao->deleteVersion($versionId, $journal->getJournalId());
00134
00135 Request::redirect(null, null, 'versions');
00136 }
00137
00138 function saveVersion($args) {
00139 RTAdminHandler::validate();
00140
00141 $rtDao = &DAORegistry::getDAO('RTDAO');
00142
00143 $journal = Request::getJournal();
00144 $versionId = isset($args[0])?$args[0]:0;
00145 $version = &$rtDao->getVersion($versionId, $journal->getJournalId());
00146
00147 if (isset($version)) {
00148 import('rt.ojs.form.VersionForm');
00149 $versionForm = &new VersionForm($versionId, $journal->getJournalId());
00150 $versionForm->readInputData();
00151 $versionForm->execute();
00152 }
00153
00154 Request::redirect(null, null, 'versions');
00155 }
00156 }
00157
00158 ?>