/** * 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; }