Esempio n. 1
0
 /**
  * Returns available offers, taking account of the invitation.
  * @param WpInvitation $invitation Optional invitation
  * @return array array of WpPlans 
  * @todo also add plan available using an invitation
  */
 public static function factoryAvailableForFirstSubscription($invitation = null)
 {
     $offers = array();
     if ($invitation instanceof WpInvitation) {
         $invitatonOffers = $invitation->getCategory()->getPlans();
         foreach ($invitatonOffers as $offer) {
             $offer->cleverAppendToArray($offers);
         }
     }
     $nb_wikiplaces = 0;
     $nb_wikiplace_pages = 0;
     $diskspace = 0;
     $dbr = wfGetDB(DB_SLAVE);
     $now = $dbr->addQuotes(wfTimestamp(TS_DB));
     $conds = $dbr->makeList(array("wpp_start_date <= {$now}", "wpp_end_date > {$now}", "wpp_invitation_only" => 0, "wpp_nb_wikiplaces >= {$nb_wikiplaces}", "wpp_nb_wikiplace_pages >= {$nb_wikiplace_pages}", "wpp_diskspace >= {$diskspace}"), LIST_AND);
     $result = $dbr->select('wp_plan', '*', $conds, __METHOD__);
     foreach ($result as $row) {
         $offer = self::constructFromDatabaseRow($row);
         $offer->cleverAppendToArray($offers);
     }
     $dbr->freeResult($result);
     return $offers;
 }