Exemplo n.º 1
0
 /**
  * Create a wikiplace from homepage, owned by this user
  * @param int $homepage_id The Article id of the homepage
  * @param WpSubscription $subscription
  * @return WpWikiplace The created Wikiplace, or null if a db error occured
  */
 public static function create($homepage_id, $subscription)
 {
     if (!is_int($homepage_id) || !$subscription instanceof WpSubscription) {
         throw new MWException('Cannot create Wikiplace, invalid argument.');
     }
     $user_id = $subscription->getBuyerUserId();
     $wps_id = $subscription->getId();
     $wpw_report_updated = WpSubscription::now();
     $wpw_date_expires = self::calculateNextDateExpiresFromSubscription($subscription);
     $dbw = wfGetDB(DB_MASTER);
     $dbw->begin();
     $id = $dbw->nextSequenceValue('wpw_id');
     $success = $dbw->insert('wp_wikiplace', array('wpw_id' => $id, 'wpw_owner_user_id' => $user_id, 'wpw_home_page_id' => $homepage_id, 'wpw_wps_id' => $wps_id, 'wpw_previous_total_page_hits' => 0, 'wpw_monthly_page_hits' => 0, 'wpw_previous_total_bandwidth' => 0, 'wpw_monthly_bandwidth' => 0, 'wpw_report_updated' => $wpw_report_updated, 'wpw_date_expires' => $wpw_date_expires));
     // Setting id from auto incremented id in DB
     $id = $dbw->insertId();
     $dbw->commit();
     if (!$success) {
         return null;
     }
     $wp = new self($id, $user_id, $homepage_id, $wps_id, 0, 0, 0, 0, $wpw_report_updated, $wpw_date_expires);
     return $wp;
 }