/** * @see \wcf\page\AbstractPage::readData() */ public function readData() { parent::readData(); // get available subscriptions $this->subscriptions = PaidSubscriptionCacheBuilder::getInstance()->getData(); // get user subscriptions $this->userSubscriptionList = new PaidSubscriptionUserList(); $this->userSubscriptionList->getConditionBuilder()->add('userID = ?', array(WCF::getUser()->userID)); $this->userSubscriptionList->getConditionBuilder()->add('isActive = ?', array(1)); $this->userSubscriptionList->readObjects(); foreach ($this->userSubscriptionList as $userSubscription) { if (isset($this->subscriptions[$userSubscription->subscriptionID])) { $userSubscription->setSubscription($this->subscriptions[$userSubscription->subscriptionID]); unset($this->subscriptions[$userSubscription->subscriptionID]); } } foreach ($this->userSubscriptionList as $userSubscription) { if ($userSubscription->getSubscription()->excludedSubscriptionIDs) { foreach (explode(',', $userSubscription->getSubscription()->excludedSubscriptionIDs) as $subscriptionID) { if (isset($this->subscriptions[$subscriptionID])) { unset($this->subscriptions[$subscriptionID]); } } } } }
/** * @see \wcf\system\dashboard\box\IDashboardBox::init() */ public function init(DashboardBox $box, IPage $page) { parent::init($box, $page); if (WCF::getUser()->userID && MODULE_PAID_SUBSCRIPTION) { // get available subscriptions $this->subscriptions = PaidSubscriptionCacheBuilder::getInstance()->getData(); // get purchased subscriptions $userSubscriptionList = new PaidSubscriptionUserList(); $userSubscriptionList->getConditionBuilder()->add('userID = ?', array(WCF::getUser()->userID)); $userSubscriptionList->getConditionBuilder()->add('isActive = ?', array(1)); $userSubscriptionList->readObjects(); // remove purchased subscriptions foreach ($userSubscriptionList as $userSubscription) { if (isset($this->subscriptions[$userSubscription->subscriptionID])) { $userSubscription->setSubscription($this->subscriptions[$userSubscription->subscriptionID]); unset($this->subscriptions[$userSubscription->subscriptionID]); } } // remove excluded subscriptions foreach ($userSubscriptionList as $userSubscription) { if ($userSubscription->getSubscription()->excludedSubscriptionIDs) { foreach (explode(',', $userSubscription->getSubscription()->excludedSubscriptionIDs) as $subscriptionID) { if (isset($this->subscriptions[$subscriptionID])) { unset($this->subscriptions[$subscriptionID]); } } } } } $this->fetched(); }
/** * @see \wcf\system\cronjob\ICronjob::execute() */ public function execute(Cronjob $cronjob) { parent::execute($cronjob); // disable expired paid subscriptions if (MODULE_PAID_SUBSCRIPTION) { $subscriptionUserList = new PaidSubscriptionUserList(); $subscriptionUserList->getConditionBuilder()->add('isActive = ?', array(1)); $subscriptionUserList->getConditionBuilder()->add('endDate > 0 AND endDate < ?', array(TIME_NOW)); $subscriptionUserList->readObjects(); if (count($subscriptionUserList->getObjects())) { $action = new PaidSubscriptionUserAction($subscriptionUserList->getObjects(), 'revoke'); $action->executeAction(); } } }