Пример #1
0
 protected function displayList()
 {
     $user = $this->getUser();
     $output = $this->getOutput();
     /**
      *  @Todo BAD, does 2 db query for same results! And uses TP for just 1 line!
      */
     $tp = new WpSubscriptionsTablePager();
     $tp->setSelectConds(array('wps_buyer_user_id' => $this->getUser()->getId()));
     $subs = WpSubscription::newByUserId($user->getId());
     if (!isset($subs)) {
         if ($this->msgKey != null) {
             $tp->setHeader(wfMessage('wp-subscriptionslist-noactive-header')->parse());
         } else {
             $this->action = self::ACTION_NEW;
             $this->display();
             return;
         }
     } elseif ($subs->getTmrStatus() == 'PE') {
         $tp->setHeader(wfMessage('wp-subscriptionslist-pending-header')->parse());
     } elseif (!$subs->isActive()) {
         $tp->setHeader(wfMessage('wp-subscriptionslist-noactive-header')->parse());
     } else {
         $tp->setHeader(wfMessage('wp-subscriptionslist-header')->parse());
         $tp->setFooter(wfMessage('wp-subscriptionslist-footer')->parse());
     }
     $output->addHTML($tp->getWholeHtml());
 }
Пример #2
0
 /**
  * Try to create a wikiplace owned by the given user.
  * <ul>
  * <li>try to fetch last user subscription</li>
  * <li>try to create new wikiplace record linked to $homepage_article_id</li>
  * <li>try to initialize the new wikiplace usage</li>
  * </ul>
  * @param int $user_id
  * @param int $homepage_article_id
  * @return WpWikiplace or null if an error occured
  */
 private static function doCreateWikiplace($user_id, $homepage_article_id)
 {
     // creating a new wikiplace
     $subscription = WpSubscription::newByUserId($user_id);
     if ($subscription == null) {
         wfDebugLog('wikiplaces', 'doCreateWikiplace() ERROR cannot create wikiplace, user has no subscription, user='******' article_id=' . $homepage_article_id);
         return null;
     }
     $wikiplace = WpWikiplace::create($homepage_article_id, $subscription);
     if ($wikiplace == null) {
         wfDebugLog('wikiplaces', 'doCreateWikiplace() ERROR while creating wikiplace, user='******' article_id=' . $homepage_article_id);
         return null;
     }
     if (!$wikiplace->forceArchiveAndResetUsage()) {
         wfDebugLog('wikiplaces', 'doCreateWikiplace() ERROR while initialization of wikiplace usage, user='******' article_id=' . $homepage_article_id);
         return null;
     }
     return $wikiplace;
 }
 private function subscribeFor($plan_id = null, $user_name = null, $confirm = false)
 {
     $output = $this->getOutput();
     $output->addWikiText("=== Subscribe For ===");
     $this->prettyOutput($output, array('plan' => $plan_id, 'user' => $user_name));
     $output->addWikiText("----");
     if (empty($plan_id) || !is_numeric($plan_id)) {
         $output->addWikiText("=== Specify a plan id in integer format. ===");
         return;
     }
     $plan = WpPlan::newFromId($plan_id);
     if (is_null($plan)) {
         $output->addWikiText("=== No plan with that identifier was found. ===");
         return;
     }
     $output->addWikiText("=== Plan ===");
     $price = $plan->getPrice();
     $this->prettyOutput($output, array('id' => $plan->getId(), 'name' => $plan->getName(), 'period' => $plan->getPeriod() . ' month(s)', 'by invitation only' => $plan->isInvitationRequired() ? 'yes' : 'no', 'price' => $price['amount'] . ' ' . $price['currency']));
     $output->addWikiText("----");
     if (empty($user_name)) {
         $output->addWikiText("=== Specify a user name. ===");
         return;
     }
     $user = User::newFromName($user_name);
     if (!$user || $user->getId() == 0) {
         $output->addWikiText("=== ERROR The user doesn't exist ! ===");
         return;
     }
     $output->addWikiText("=== User to subscribe for ===");
     $this->prettyOutput($output, array('id' => $user->getId(), 'name' => $user->getName(), 'email' => $user->getEmail(), 'email confirmed' => $user->isEmailConfirmed() ? 'yes' : 'no', 'timestamp of account creation' => $user->getRegistration()));
     if (!$user->isEmailConfirmed()) {
         $output->addWikiText("==== WARNING Email is not confirmed ! ====");
     }
     $last_subscription = WpSubscription::newByUserId($user->getId());
     if (is_null($last_subscription)) {
         $output->addWikiText("=== The user doesn't have any subscription. ===");
     } else {
         $output->addWikiText("==== Last subscription ====");
         $this->prettyOutput($output, array('id' => $last_subscription->getId(), 'starts' => $last_subscription->getStart(), 'ends' => $last_subscription->getEnd(), 'active' => $last_subscription->isActive() ? "yes" : "no", 'transaction status' => $last_subscription->getTmrStatus()));
         if ($last_subscription->isActive()) {
             $output->addWikiText("==== ERROR Last subscription is still active ! ====");
             return;
         }
         $lastPlan = $last_subscription->getPlan();
         if (is_null($lastPlan)) {
             $output->addWikiText("=== ERROR The subscribed plan doesn't exist ! ===");
             return;
         }
         $output->addWikiText("==== Subscribed plan ====");
         $price = $lastPlan->getPrice();
         $this->prettyOutput($output, array('id' => $lastPlan->getId(), 'name' => $lastPlan->getName(), 'period' => $lastPlan->getPeriod() . ' month(s)', 'by invitation only' => $lastPlan->isInvitationRequired() ? 'yes' : 'no', 'price' => $price['amount'] . ' ' . $price['currency']));
     }
     $check = WpSubscription::canSubscribe($user);
     if (is_string($check)) {
         $output->addWikiText("=== ERROR The user cannot take a subscription ! ===");
         $output->addWikiText($check);
         return;
     } else {
         $output->addWikiText("=== The user can take a subscription. ===");
     }
     $output->addWikiText("----");
     if ($confirm !== true) {
         $output->addWikiText("=== To confirm ===");
         $output->addHTML($this->getLink(self::ACTION_SUBSCRIBER_FOR, array('plan' => $plan_id, 'user' => $user_name), true));
     } else {
         $subscription = WpSubscription::subscribe($user, $plan);
         if (is_null($subscription)) {
             $output->addWikiText("=== An error occured ! ===");
         } else {
             $output->addWikiText("== Done ! ==");
             $output->addWikiText("==== New subscription ====");
             $this->prettyOutput($output, array('id' => $subscription->getId(), 'buyer user id' => $subscription->getBuyerUserId(), 'starts' => $subscription->getStart(), 'ends' => $subscription->getEnd(), 'active' => $subscription->isActive() ? "yes" : "no", 'transaction status' => $subscription->getTmrStatus()));
         }
     }
 }