00001 <?php
00002
00015
00016
00017
00018 class AboutHandler extends Handler {
00019
00023 function index() {
00024 parent::validate();
00025
00026 $templateMgr = &TemplateManager::getManager();
00027 $journalDao = &DAORegistry::getDAO('JournalDAO');
00028 $journalPath = Request::getRequestedJournalPath();
00029
00030 if ($journalPath != 'index' && $journalDao->journalExistsByPath($journalPath)) {
00031 $journal = &Request::getJournal();
00032
00033 $journalSettingsDao = &DAORegistry::getDAO('JournalSettingsDAO');
00034 $templateMgr->assign_by_ref('journalSettings', $journalSettingsDao->getJournalSettings($journal->getJournalId()));
00035
00036 $customAboutItems = &$journalSettingsDao->getSetting($journal->getJournalId(), 'customAboutItems');
00037 if (isset($customAboutItems[Locale::getLocale()])) $templateMgr->assign('customAboutItems', $customAboutItems[Locale::getLocale()]);
00038 elseif (isset($customAboutItems[Locale::getPrimaryLocale()])) $templateMgr->assign('customAboutItems', $customAboutItems[Locale::getPrimaryLocale()]);
00039
00040 foreach (AboutHandler::getPublicStatisticsNames() as $name) {
00041 if ($journal->getSetting($name)) {
00042 $templateMgr->assign('publicStatisticsEnabled', true);
00043 break;
00044 }
00045 }
00046
00047 $groupDao =& DAORegistry::getDAO('GroupDAO');
00048 $groups =& $groupDao->getGroups($journal->getJournalId(), GROUP_CONTEXT_PEOPLE);
00049
00050 $templateMgr->assign_by_ref('peopleGroups', $groups);
00051 $templateMgr->assign('helpTopicId', 'user.about');
00052 $templateMgr->display('about/index.tpl');
00053 } else {
00054 $site = &Request::getSite();
00055 $about = $site->getSiteAbout();
00056 $templateMgr->assign('about', $about);
00057
00058 $journals = &$journalDao->getEnabledJournals();
00059 $templateMgr->assign_by_ref('journals', $journals);
00060 $templateMgr->display('about/site.tpl');
00061 }
00062 }
00063
00064
00069 function setupTemplate($subclass = false) {
00070 parent::validate();
00071 $templateMgr = &TemplateManager::getManager();
00072 $journal =& Request::getJournal();
00073
00074 if (!$journal || !$journal->getSetting('restrictSiteAccess')) {
00075 $templateMgr->setCacheability(CACHEABILITY_PUBLIC);
00076 }
00077 $templateMgr->assign('pageHierarchy', array(array(Request::url(null, 'about'), 'about.aboutTheJournal')));
00078 }
00079
00083 function contact() {
00084 parent::validate(true);
00085
00086 AboutHandler::setupTemplate(true);
00087
00088 $journalSettingsDao = &DAORegistry::getDAO('JournalSettingsDAO');
00089 $journal = &Request::getJournal();
00090
00091 $templateMgr = &TemplateManager::getManager();
00092 $journalSettings = &$journalSettingsDao->getJournalSettings($journal->getJournalId());
00093 $templateMgr->assign_by_ref('journalSettings', $journalSettings);
00094 $templateMgr->display('about/contact.tpl');
00095 }
00096
00100 function editorialTeam() {
00101 parent::validate(true);
00102 AboutHandler::setupTemplate(true);
00103 $journal = &Request::getJournal();
00104 $templateMgr = &TemplateManager::getManager();
00105
00106 $countryDao =& DAORegistry::getDAO('CountryDAO');
00107 $countries =& $countryDao->getCountries();
00108 $templateMgr->assign_by_ref('countries', $countries);
00109
00110
00111
00112 if ($journal->getSetting('boardEnabled') != true) {
00113
00114
00115 $roleDao = &DAORegistry::getDAO('RoleDAO');
00116
00117 $editors = &$roleDao->getUsersByRoleId(ROLE_ID_EDITOR, $journal->getJournalId());
00118 $editors = &$editors->toArray();
00119
00120 $sectionEditors = &$roleDao->getUsersByRoleId(ROLE_ID_SECTION_EDITOR, $journal->getJournalId());
00121 $sectionEditors = &$sectionEditors->toArray();
00122
00123 $layoutEditors = &$roleDao->getUsersByRoleId(ROLE_ID_LAYOUT_EDITOR, $journal->getJournalId());
00124 $layoutEditors = &$layoutEditors->toArray();
00125
00126 $copyEditors = &$roleDao->getUsersByRoleId(ROLE_ID_COPYEDITOR, $journal->getJournalId());
00127 $copyEditors = &$copyEditors->toArray();
00128
00129 $proofreaders = &$roleDao->getUsersByRoleId(ROLE_ID_PROOFREADER, $journal->getJournalId());
00130 $proofreaders = &$proofreaders->toArray();
00131
00132 $templateMgr->assign_by_ref('editors', $editors);
00133 $templateMgr->assign_by_ref('sectionEditors', $sectionEditors);
00134 $templateMgr->assign_by_ref('layoutEditors', $layoutEditors);
00135 $templateMgr->assign_by_ref('copyEditors', $copyEditors);
00136 $templateMgr->assign_by_ref('proofreaders', $proofreaders);
00137 $templateMgr->display('about/editorialTeam.tpl');
00138 } else {
00139
00140
00141 $groupDao =& DAORegistry::getDAO('GroupDAO');
00142 $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO');
00143
00144 $allGroups =& $groupDao->getGroups($journal->getJournalId(), GROUP_CONTEXT_EDITORIAL_TEAM);
00145 $teamInfo = array();
00146 $groups = array();
00147 while ($group =& $allGroups->next()) {
00148 if (!$group->getAboutDisplayed()) continue;
00149 $memberships = array();
00150 $allMemberships =& $groupMembershipDao->getMemberships($group->getGroupId());
00151 while ($membership =& $allMemberships->next()) {
00152 if (!$membership->getAboutDisplayed()) continue;
00153 $memberships[] =& $membership;
00154 unset($membership);
00155 }
00156 if (!empty($memberships)) $groups[] =& $group;
00157 $teamInfo[$group->getGroupId()] = $memberships;
00158 unset($group);
00159 }
00160
00161 $templateMgr->assign_by_ref('groups', $groups);
00162 $templateMgr->assign_by_ref('teamInfo', $teamInfo);
00163 $templateMgr->display('about/editorialTeamBoard.tpl');
00164 }
00165 }
00166
00171 function displayMembership($args) {
00172 parent::validate(true);
00173 AboutHandler::setupTemplate(true);
00174 $journal = &Request::getJournal();
00175 $templateMgr = &TemplateManager::getManager();
00176 $groupId = (int) array_shift($args);
00177
00178 $groupDao =& DAORegistry::getDAO('GroupDAO');
00179 $group =& $groupDao->getGroup($groupId);
00180
00181 if ( !$journal || !$group ||
00182 $group->getContext() != GROUP_CONTEXT_PEOPLE ||
00183 $group->getJournalId() != $journal->getJournalId()
00184 ) {
00185 Request::redirect(null, 'about');
00186 }
00187
00188 $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO');
00189 $allMemberships =& $groupMembershipDao->getMemberships($group->getGroupId());
00190 $memberships = array();
00191 while ($membership =& $allMemberships->next()) {
00192 if (!$membership->getAboutDisplayed()) continue;
00193 $memberships[] =& $membership;
00194 unset($membership);
00195 }
00196
00197 $countryDao =& DAORegistry::getDAO('CountryDAO');
00198 $countries =& $countryDao->getCountries();
00199 $templateMgr->assign_by_ref('countries', $countries);
00200
00201 $templateMgr->assign_by_ref('group', $group);
00202 $templateMgr->assign_by_ref('memberships', $memberships);
00203 $templateMgr->display('about/displayMembership.tpl');
00204 }
00205
00210 function editorialTeamBio($args) {
00211 parent::validate(true);
00212
00213 AboutHandler::setupTemplate(true);
00214
00215 $roleDao = &DAORegistry::getDAO('RoleDAO');
00216 $journal = &Request::getJournal();
00217
00218 $templateMgr = &TemplateManager::getManager();
00219
00220 $userId = isset($args[0])?(int)$args[0]:0;
00221
00222
00223
00224
00225
00226
00227
00228
00229 $user = null;
00230 if ($journal->getSetting('boardEnabled') != true) {
00231 $editors = &$roleDao->getUsersByRoleId(ROLE_ID_EDITOR, $journal->getJournalId());
00232 while ($potentialUser =& $editors->next()) {
00233 if ($potentialUser->getUserId() == $userId)
00234 $user =& $potentialUser;
00235 unset($potentialUser);
00236 }
00237
00238 $sectionEditors = &$roleDao->getUsersByRoleId(ROLE_ID_SECTION_EDITOR, $journal->getJournalId());
00239 while ($potentialUser =& $sectionEditors->next()) {
00240 if ($potentialUser->getUserId() == $userId)
00241 $user =& $potentialUser;
00242 unset($potentialUser);
00243 }
00244
00245 $layoutEditors = &$roleDao->getUsersByRoleId(ROLE_ID_LAYOUT_EDITOR, $journal->getJournalId());
00246 while ($potentialUser =& $layoutEditors->next()) {
00247 if ($potentialUser->getUserId() == $userId)
00248 $user = $potentialUser;
00249 unset($potentialUser);
00250 }
00251
00252 $copyEditors = &$roleDao->getUsersByRoleId(ROLE_ID_COPYEDITOR, $journal->getJournalId());
00253 while ($potentialUser =& $copyEditors->next()) {
00254 if ($potentialUser->getUserId() == $userId)
00255 $user = $potentialUser;
00256 unset($potentialUser);
00257 }
00258
00259 $proofreaders = &$roleDao->getUsersByRoleId(ROLE_ID_PROOFREADER, $journal->getJournalId());
00260 while ($potentialUser =& $proofreaders->next()) {
00261 if ($potentialUser->getUserId() == $userId)
00262 $user = $potentialUser;
00263 unset($potentialUser);
00264 }
00265
00266 } else {
00267 $groupDao =& DAORegistry::getDAO('GroupDAO');
00268 $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO');
00269
00270 $allGroups =& $groupDao->getGroups($journal->getJournalId());
00271 while ($group =& $allGroups->next()) {
00272 if (!$group->getAboutDisplayed()) continue;
00273 $allMemberships =& $groupMembershipDao->getMemberships($group->getGroupId());
00274 while ($membership =& $allMemberships->next()) {
00275 if (!$membership->getAboutDisplayed()) continue;
00276 $potentialUser =& $membership->getUser();
00277 if ($potentialUser->getUserId() == $userId)
00278 $user = $potentialUser;
00279 unset($membership);
00280 }
00281 unset($group);
00282 }
00283 }
00284
00285 if (!$user) Request::redirect(null, 'about', 'editorialTeam');
00286
00287 $countryDao =& DAORegistry::getDAO('CountryDAO');
00288 if ($user && $user->getCountry() != '') {
00289 $country = $countryDao->getCountry($user->getCountry());
00290 $templateMgr->assign('country', $country);
00291 }
00292
00293 $templateMgr->assign_by_ref('user', $user);
00294 $templateMgr->display('about/editorialTeamBio.tpl');
00295 }
00296
00300 function editorialPolicies() {
00301 parent::validate(true);
00302
00303 AboutHandler::setupTemplate(true);
00304
00305 $journalSettingsDao = &DAORegistry::getDAO('JournalSettingsDAO');
00306 $sectionDao = &DAORegistry::getDAO('SectionDAO');
00307 $sectionEditorsDao = &DAORegistry::getDAO('SectionEditorsDAO');
00308 $journal = &Request::getJournal();
00309
00310 $templateMgr = &TemplateManager::getManager();
00311 $journalSettings = &$journalSettingsDao->getJournalSettings($journal->getJournalId());
00312 $templateMgr->assign_by_ref('journalSettings', $journalSettings);
00313 $sections = &$sectionDao->getJournalSections($journal->getJournalId());
00314 $sections = &$sections->toArray();
00315 $templateMgr->assign_by_ref('sections', $sections);
00316
00317 $sectionEditorEntriesBySection = array();
00318 foreach ($sections as $section) {
00319 $sectionEditorEntriesBySection[$section->getSectionId()] = &$sectionEditorsDao->getEditorsBySectionId($journal->getJournalId(), $section->getSectionId());
00320 }
00321 $templateMgr->assign_by_ref('sectionEditorEntriesBySection', $sectionEditorEntriesBySection);
00322
00323 $templateMgr->display('about/editorialPolicies.tpl');
00324 }
00325
00329 function subscriptions() {
00330 parent::validate(true);
00331
00332 AboutHandler::setupTemplate(true);
00333
00334 $journalDao = &DAORegistry::getDAO('JournalSettingsDAO');
00335 $journalSettingsDao = &DAORegistry::getDAO('JournalSettingsDAO');
00336 $subscriptionTypeDao = &DAORegistry::getDAO('SubscriptionTypeDAO');
00337
00338 $journal = &Request::getJournal();
00339 $journalId = $journal->getJournalId();
00340
00341 $subscriptionName = &$journalSettingsDao->getSetting($journalId, 'subscriptionName');
00342 $subscriptionEmail = &$journalSettingsDao->getSetting($journalId, 'subscriptionEmail');
00343 $subscriptionPhone = &$journalSettingsDao->getSetting($journalId, 'subscriptionPhone');
00344 $subscriptionFax = &$journalSettingsDao->getSetting($journalId, 'subscriptionFax');
00345 $subscriptionMailingAddress = &$journalSettingsDao->getSetting($journalId, 'subscriptionMailingAddress');
00346 $subscriptionAdditionalInformation = &$journal->getLocalizedSetting('subscriptionAdditionalInformation');
00347 $subscriptionTypes = &$subscriptionTypeDao->getSubscriptionTypesByJournalId($journalId);
00348
00349 $templateMgr = &TemplateManager::getManager();
00350 $templateMgr->assign('subscriptionName', $subscriptionName);
00351 $templateMgr->assign('subscriptionEmail', $subscriptionEmail);
00352 $templateMgr->assign('subscriptionPhone', $subscriptionPhone);
00353 $templateMgr->assign('subscriptionFax', $subscriptionFax);
00354 $templateMgr->assign('subscriptionMailingAddress', $subscriptionMailingAddress);
00355 $templateMgr->assign('subscriptionAdditionalInformation', $subscriptionAdditionalInformation);
00356 $templateMgr->assign('subscriptionTypes', $subscriptionTypes);
00357
00358 $templateMgr->display('about/subscriptions.tpl');
00359 }
00360
00364 function memberships() {
00365 parent::validate(true);
00366
00367 AboutHandler::setupTemplate(true);
00368
00369 $journal = &Request::getJournal();
00370 $journalId = $journal->getJournalId();
00371
00372 import('payment.ojs.OJSPaymentManager');
00373 $paymentManager =& OJSPaymentManager::getManager();
00374
00375 $membershipEnabled = $paymentManager->membershipEnabled();
00376
00377 $templateMgr = &TemplateManager::getManager();
00378 $templateMgr->assign('membershipEnabled', $membershipEnabled);
00379 if ( $membershipEnabled ) {
00380 $membershipFee = $journal->getSetting('membershipFee');
00381 $membershipFeeName =& $journal->getLocalizedSetting('membershipFeeName');
00382 $membershipFeeDescription =& $journal->getLocalizedSetting('membershipFeeDescription');
00383 $currency = $journal->getSetting('currency');
00384
00385 $templateMgr->assign('membershipFee', $membershipFee);
00386 $templateMgr->assign('currency', $currency);
00387 $templateMgr->assign('membershipFeeName', $membershipFeeName);
00388 $templateMgr->assign('membershipFeeDescription', $membershipFeeDescription);
00389 $templateMgr->display('about/memberships.tpl');
00390 return;
00391 }
00392 Request::redirect(null, 'about');
00393 }
00394
00398 function submissions() {
00399 parent::validate(true);
00400
00401 AboutHandler::setupTemplate(true);
00402
00403 $journalDao = &DAORegistry::getDAO('JournalSettingsDAO');
00404 $journal = &Request::getJournal();
00405
00406 $templateMgr = &TemplateManager::getManager();
00407 $journalSettings = &$journalDao->getJournalSettings($journal->getJournalId());
00408 $submissionChecklist = $journal->getLocalizedSetting('submissionChecklist');
00409 if (!empty($submissionChecklist)) {
00410 ksort($submissionChecklist);
00411 reset($submissionChecklist);
00412 }
00413 $templateMgr->assign('submissionChecklist', $submissionChecklist);
00414 $templateMgr->assign_by_ref('journalSettings', $journalSettings);
00415 $templateMgr->assign('helpTopicId','submission.authorGuidelines');
00416 $templateMgr->display('about/submissions.tpl');
00417 }
00418
00422 function journalSponsorship() {
00423 parent::validate();
00424
00425 AboutHandler::setupTemplate(true);
00426
00427 $journal = &Request::getJournal();
00428
00429 $templateMgr = &TemplateManager::getManager();
00430 $templateMgr->assign_by_ref('publisherInstitution', $journal->getSetting('publisherInstitution'));
00431 $templateMgr->assign_by_ref('publisherUrl', $journal->getSetting('publisherUrl'));
00432 $templateMgr->assign_by_ref('publisherNote', $journal->getLocalizedSetting('publisherNote'));
00433 $templateMgr->assign_by_ref('contributorNote', $journal->getLocalizedSetting('contributorNote'));
00434 $templateMgr->assign_by_ref('contributors', $journal->getSetting('contributors'));
00435 $templateMgr->assign('sponsorNote', $journal->getLocalizedSetting('sponsorNote'));
00436 $templateMgr->assign_by_ref('sponsors', $journal->getSetting('sponsors'));
00437 $templateMgr->display('about/journalSponsorship.tpl');
00438 }
00439
00443 function siteMap() {
00444 parent::validate();
00445
00446 AboutHandler::setupTemplate(true);
00447 $templateMgr = &TemplateManager::getManager();
00448
00449 $journalDao = &DAORegistry::getDAO('JournalDAO');
00450
00451 $user = &Request::getUser();
00452 $roleDao = &DAORegistry::getDAO('RoleDAO');
00453
00454 if ($user) {
00455 $rolesByJournal = array();
00456 $journals = &$journalDao->getEnabledJournals();
00457
00458 foreach ($journals->toArray() as $journal) {
00459 $roles = &$roleDao->getRolesByUserId($user->getUserId(), $journal->getJournalId());
00460 if (!empty($roles)) {
00461 $rolesByJournal[$journal->getJournalId()] = &$roles;
00462 }
00463 }
00464 }
00465
00466 $journals = &$journalDao->getEnabledJournals();
00467 $templateMgr->assign_by_ref('journals', $journals->toArray());
00468 if (isset($rolesByJournal)) {
00469 $templateMgr->assign_by_ref('rolesByJournal', $rolesByJournal);
00470 }
00471 if ($user) {
00472 $templateMgr->assign('isSiteAdmin', $roleDao->getRole(0, $user->getUserId(), ROLE_ID_SITE_ADMIN));
00473 }
00474
00475 $templateMgr->display('about/siteMap.tpl');
00476 }
00477
00481 function aboutThisPublishingSystem() {
00482 parent::validate();
00483
00484 AboutHandler::setupTemplate(true);
00485
00486 $versionDao =& DAORegistry::getDAO('VersionDAO');
00487 $version =& $versionDao->getCurrentVersion();
00488
00489 $templateMgr = &TemplateManager::getManager();
00490 $templateMgr->assign('ojsVersion', $version->getVersionString());
00491
00492 foreach (array(Locale::getLocale(), $primaryLocale = Locale::getPrimaryLocale(), 'en_US') as $locale) {
00493 $edProcessFile = "locale/$locale/edprocesslarge.png";
00494 if (file_exists($edProcessFile)) break;
00495 }
00496 $templateMgr->assign('edProcessFile', $edProcessFile);
00497
00498 $templateMgr->display('about/aboutThisPublishingSystem.tpl');
00499 }
00500
00506 function statistics() {
00507 parent::validate();
00508 AboutHandler::setupTemplate(true);
00509
00510 $journal = &Request::getJournal();
00511 $templateMgr = &TemplateManager::getManager();
00512 $templateMgr->assign('helpTopicId','user.about');
00513
00514 $statisticsYear = Request::getUserVar('statisticsYear');
00515 if (empty($statisticsYear)) $statisticsYear = date('Y');
00516 $templateMgr->assign('statisticsYear', $statisticsYear);
00517
00518 $sectionIds = $journal->getSetting('statisticsSectionIds');
00519 if (!is_array($sectionIds)) $sectionIds = array();
00520 $templateMgr->assign('sectionIds', $sectionIds);
00521
00522 foreach (AboutHandler::getPublicStatisticsNames() as $name) {
00523 $templateMgr->assign($name, $journal->getSetting($name));
00524 }
00525 $fromDate = mktime(0, 0, 0, 1, 1, $statisticsYear);
00526 $toDate = mktime(23, 59, 59, 12, 31, $statisticsYear);
00527
00528 $journalStatisticsDao =& DAORegistry::getDAO('JournalStatisticsDAO');
00529 $articleStatistics = $journalStatisticsDao->getArticleStatistics($journal->getJournalId(), null, $fromDate, $toDate);
00530 $templateMgr->assign('articleStatistics', $articleStatistics);
00531
00532 $limitedArticleStatistics = $journalStatisticsDao->getArticleStatistics($journal->getJournalId(), $sectionIds, $fromDate, $toDate);
00533 $templateMgr->assign('limitedArticleStatistics', $limitedArticleStatistics);
00534
00535 $sectionDao =& DAORegistry::getDAO('SectionDAO');
00536 $sections =& $sectionDao->getJournalSections($journal->getJournalId());
00537 $templateMgr->assign('sections', $sections->toArray());
00538
00539 $issueStatistics = $journalStatisticsDao->getIssueStatistics($journal->getJournalId(), $fromDate, $toDate);
00540 $templateMgr->assign('issueStatistics', $issueStatistics);
00541
00542 $reviewerStatistics = $journalStatisticsDao->getReviewerStatistics($journal->getJournalId(), $sectionIds, $fromDate, $toDate);
00543 $templateMgr->assign('reviewerStatistics', $reviewerStatistics);
00544
00545 $allUserStatistics = $journalStatisticsDao->getUserStatistics($journal->getJournalId(), null, $toDate);
00546 $templateMgr->assign('allUserStatistics', $allUserStatistics);
00547
00548 $userStatistics = $journalStatisticsDao->getUserStatistics($journal->getJournalId(), $fromDate, $toDate);
00549 $templateMgr->assign('userStatistics', $userStatistics);
00550
00551 $enableSubscriptions = $journal->getSetting('enableSubscriptions');
00552 if ($enableSubscriptions) {
00553 $templateMgr->assign('enableSubscriptions', true);
00554 $allSubscriptionStatistics = $journalStatisticsDao->getSubscriptionStatistics($journal->getJournalId(), null, $toDate);
00555 $templateMgr->assign('allSubscriptionStatistics', $allSubscriptionStatistics);
00556
00557 $subscriptionStatistics = $journalStatisticsDao->getSubscriptionStatistics($journal->getJournalId(), $fromDate, $toDate);
00558 $templateMgr->assign('subscriptionStatistics', $subscriptionStatistics);
00559 }
00560
00561 $notificationStatusDao =& DAORegistry::getDAO('NotificationStatusDAO');
00562 $notifiableUsers = $notificationStatusDao->getNotifiableUsersCount($journal->getJournalId());
00563 $templateMgr->assign('notifiableUsers', $notifiableUsers);
00564
00565 $templateMgr->display('about/statistics.tpl');
00566 }
00567
00568 function getPublicStatisticsNames() {
00569 import ('pages.manager.ManagerHandler');
00570 import ('pages.manager.StatisticsHandler');
00571 return StatisticsHandler::getPublicStatisticsNames();
00572 }
00573
00574 }
00575
00576 ?>