コード例 #1
0
 /**
  * @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();
 }
コード例 #2
0
 /**
  * @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]);
                 }
             }
         }
     }
 }
コード例 #3
0
 /**
  * @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();
         }
     }
 }