/** * @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\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\data\IEditableCachedObject::resetCache() */ public static function resetCache() { PaidSubscriptionCacheBuilder::getInstance()->reset(); }
/** * @see \wcf\page\AbstractPage::assignVariables() */ public function assignVariables() { parent::assignVariables(); WCF::getTPL()->assign(array('transactionID' => $this->transactionID, 'username' => $this->username, 'subscriptionID' => $this->subscriptionID, 'availableSubscriptions' => PaidSubscriptionCacheBuilder::getInstance()->getData())); }