/** * Get the HTML contents for this block. * @param $templateMgr object * @return $string */ function getContents(&$templateMgr) { $journal =& Request::getJournal(); $journalId = $journal ? $journal->getJournalId() : null; if (!$journal) { return ''; } $user =& Request::getUser(); $userId = $user ? $user->getUserId() : null; $domain = Request::getRemoteDomain(); $IP = Request::getRemoteAddr(); // This replicates the order of SubscriptionDAO::isValidSubscription // Checks for valid Subscription and assigns vars accordingly for display $subscriptionDao =& DAORegistry::getDAO('SubscriptionDAO'); $subscriptionId = false; $userHasSubscription = false; if ($userId != null) { $subscriptionId = $subscriptionDao->isValidSubscriptionByUser($userId, $journalId); $userHasSubscription = true; } if (!$userHasSubscription && $domain != null) { $subscriptionId = $subscriptionDao->isValidSubscriptionByDomain($domain, $journalId); } if (!$userHasSubscription && $IP != null) { $subscriptionId = $subscriptionDao->isValidSubscriptionByIP($IP, $journalId); } if ($subscriptionId !== false) { $subscription =& $subscriptionDao->getSubscription($subscriptionId); $templateMgr->assign('userHasSubscription', $userHasSubscription); if ($userHasSubscription) { import('payment.ojs.OJSPaymentManager'); $paymentManager =& OJSPaymentManager::getManager(); $subscriptionEnabled = $paymentManager->acceptSubscriptionPayments(); $templateMgr->assign('subscriptionEnabled', $subscriptionEnabled); } $templateMgr->assign('subscriptionMembership', $subscription->getMembership()); $templateMgr->assign('subscriptionDateEnd', $subscription->getDateEnd()); $templateMgr->assign('subscriptionTypeName', $subscription->getSubscriptionTypeName()); $templateMgr->assign('userIP', $IP); return parent::getContents($templateMgr); } return ''; }
/** * Get the HTML contents for this block. * @param $templateMgr object * @param $request PKPRequest * @return $string */ function getContents(&$templateMgr, $request) { $journal =& $request->getJournal(); $journalId = $journal ? $journal->getId() : null; if (!$journal) { return ''; } if ($journal->getSetting('publishingMode') != PUBLISHING_MODE_SUBSCRIPTION) { return ''; } $user =& $request->getUser(); $userId = $user ? $user->getId() : null; $templateMgr->assign('userLoggedIn', isset($userId) ? true : false); if (isset($userId)) { $subscriptionDao =& DAORegistry::getDAO('IndividualSubscriptionDAO'); $individualSubscription =& $subscriptionDao->getSubscriptionByUserForJournal($userId, $journalId); $templateMgr->assign_by_ref('individualSubscription', $individualSubscription); } // If no individual subscription or if not valid, check for institutional subscription if (!isset($individualSubscription) || !$individualSubscription->isValid()) { $ip = $request->getRemoteAddr(); $domain = Request::getRemoteDomain(); $subscriptionDao =& DAORegistry::getDAO('InstitutionalSubscriptionDAO'); $subscriptionId = $subscriptionDao->isValidInstitutionalSubscription($domain, $ip, $journalId); if ($subscriptionId) { $institutionalSubscription =& $subscriptionDao->getSubscription($subscriptionId); $templateMgr->assign_by_ref('institutionalSubscription', $institutionalSubscription); $templateMgr->assign('userIP', $ip); } } import('classes.payment.ojs.OJSPaymentManager'); $paymentManager = new OJSPaymentManager($request); if (isset($individualSubscription) || isset($institutionalSubscription)) { $acceptSubscriptionPayments = $paymentManager->acceptSubscriptionPayments(); $templateMgr->assign('acceptSubscriptionPayments', $acceptSubscriptionPayments); } $acceptGiftSubscriptionPayments = $paymentManager->acceptGiftSubscriptionPayments(); $templateMgr->assign('acceptGiftSubscriptionPayments', $acceptGiftSubscriptionPayments); return parent::getContents($templateMgr, $request); }
/** * Checks if remote client domain or ip is allowed * @return bool */ function subscribedDomain(&$journal, $issueId = null, $articleId = null) { $subscriptionDao =& DAORegistry::getDAO('SubscriptionDAO'); $result = false; if (isset($journal)) { $result = $subscriptionDao->isValidSubscription(Request::getRemoteDomain(), Request::getRemoteAddr(), null, $journal->getJournalId()); // If no valid subscription, check if there is an expired subscription // that was valid during publication date of requested content if (!$result && $journal->getSetting('subscriptionExpiryPartial')) { if (isset($articleId)) { $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO'); $publishedArticle =& $publishedArticleDao->getPublishedArticleByArticleId($articleId); if (isset($publishedArticle)) { import('subscription.SubscriptionDAO'); $result = $subscriptionDao->isValidSubscription(Request::getRemoteDomain(), Request::getRemoteAddr(), null, $journal->getJournalId(), SUBSCRIPTION_DATE_END, $publishedArticle->getDatePublished()); } } else { if (isset($issueId)) { $issueDao =& DAORegistry::getDAO('IssueDAO'); $issue =& $issueDao->getIssueById($issueId); if (isset($issue) && $issue->getPublished()) { import('subscription.SubscriptionDAO'); $result = $subscriptionDao->isValidSubscription(Request::getRemoteDomain(), Request::getRemoteAddr(), null, $journal->getJournalId(), SUBSCRIPTION_DATE_END, $issue->getDatePublished()); } } } } } HookRegistry::call('IssueAction::subscribedDomain', array(&$journal, &$result)); return $result; }
/** * Checks if remote client domain or ip is allowed * @return bool */ function registeredDomain(&$schedConf) { $schedConf =& Request::getSchedConf(); $registrationDao = DAORegistry::getDAO('RegistrationDAO'); $result = $registrationDao->isValidRegistration(Request::getRemoteDomain(), Request::getRemoteAddr(), null, $schedConf->getId()); HookRegistry::call('SchedConfAction::registeredDomain', array(&$schedConf, &$result)); return $result; }