/**
  * 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);
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 /**
  * 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;
 }