00001 <?php
00002
00016 import('plugins.BlockPlugin');
00017
00018 class SubscriptionBlockPlugin extends BlockPlugin {
00019 function register($category, $path) {
00020 $success = parent::register($category, $path);
00021 if ($success) {
00022 $this->addLocaleData();
00023 }
00024 return $success;
00025 }
00026
00032 function getName() {
00033 return 'SubscriptionBlockPlugin';
00034 }
00035
00040 function getNewJournalPluginSettingsFile() {
00041 return $this->getPluginPath() . '/settings.xml';
00042 }
00043
00048 function getDisplayName() {
00049 return Locale::translate('plugins.block.subscription.displayName');
00050 }
00051
00055 function getDescription() {
00056 return Locale::translate('plugins.block.subscription.description');
00057 }
00058
00063 function getSupportedContexts() {
00064 return array(BLOCK_CONTEXT_LEFT_SIDEBAR, BLOCK_CONTEXT_RIGHT_SIDEBAR);
00065 }
00066
00072 function getContents(&$templateMgr) {
00073 $journal =& Request::getJournal();
00074 $journalId = ($journal)?$journal->getJournalId():null;
00075 if (!$journal) return '';
00076
00077 $user = &Request::getUser();
00078 $userId = ($user)?$user->getUserId():null;
00079
00080 $domain = Request::getRemoteDomain();
00081 $IP = Request::getRemoteAddr();
00082
00083
00084
00085 $subscriptionDao = &DAORegistry::getDAO('SubscriptionDAO');
00086 $subscriptionId = false;
00087 $userHasSubscription = false;
00088 if ($userId != null) {
00089 $subscriptionId = $subscriptionDao->isValidSubscriptionByUser($userId, $journalId);
00090 $userHasSubscription = true;
00091 }
00092
00093 if (!$userHasSubscription && $domain != null) {
00094 $subscriptionId = $subscriptionDao->isValidSubscriptionByDomain($domain, $journalId);
00095 }
00096
00097 if (!$userHasSubscription && $IP != null) {
00098 $subscriptionId = $subscriptionDao->isValidSubscriptionByIP($IP, $journalId);
00099 }
00100
00101 if ( $subscriptionId !== false ) {
00102 $subscription =& $subscriptionDao->getSubscription($subscriptionId);
00103
00104 $templateMgr->assign('userHasSubscription', $userHasSubscription);
00105 if ($userHasSubscription) {
00106 import('payment.ojs.OJSPaymentManager');
00107 $paymentManager =& OJSPaymentManager::getManager();
00108 $subscriptionEnabled = $paymentManager->acceptSubscriptionPayments();
00109 $templateMgr->assign('subscriptionEnabled', $subscriptionEnabled);
00110 }
00111
00112 $templateMgr->assign('subscriptionMembership', $subscription->getMembership());
00113 $templateMgr->assign('subscriptionDateEnd', $subscription->getDateEnd());
00114 $templateMgr->assign('subscriptionTypeName', $subscription->getSubscriptionTypeName());
00115 $templateMgr->assign('userIP', $IP);
00116
00117 return parent::getContents($templateMgr);
00118 }
00119
00120 return '';
00121 }
00122 }
00123
00124 ?>