* CACHES & VARS * $award_map[wl] => ork * $park_map[wl] => ork * $class_map[wl] => ork * $Token * $KingdomId * ******************************************************************************/ $sql = "\n\tselect m.*, p.persona, max(a.date) lastattendance, count(a.date) as attendancecount \n\t\tfrom mundanes m \n\t\t\tleft join personas p on m.mundanepk = p.mundanefk\n\t\t\tleft join attendance a on a.mundanefk = m.mundanepk\n\t\tgroup by m.mundanepk"; $count = 0; $players = $WL->query($sql); $player_map = array(); $Player = new APIModel('Player'); do { if ($players->attendancecount > 1) { $player = $Player->CreatePlayer(array('Token' => $Token, 'GivenName' => $players->first, 'Surname' => $players->last, 'OtherName' => '', 'UserName' => $players->username, 'Password' => $players->password, 'Persona' => $players->persona, 'Email' => $players->email, 'ParkId' => $park_map[$players->parkfk], 'KingdomId' => $KingdomId, 'Restricted' => $players->restricted, 'IsActive' => $players->attendancecount > 2 && strtotime($players->lastattendance) > strtotime("-6 month") ? 1 : 0, 'Waivered' => 0, 'Waiver' => '', 'WaiverExt' => '', 'HasHeraldry' => 0, 'Heraldry' => '', 'HasImage' => 0, 'Image' => '')); $reconciled->clear(); $reconciled->mundanefk = $players->mundanepk; $reconcile = array('Token' => $Token, 'ParkId' => $park_map[$players->parkfk], 'MundaneId' => $player['Detail'], 'Reconcile' => array()); $limit = 25; if ($reconciled->find()) { do { $reconcile['Reconcile'][] = array('ClassId' => $class_map[$reconciled->classfk], 'Quantity' => $reconciled->credits); } while ($reconciled->next() && $limit--); } $Player->SetPlayerReconciledCredits($reconcile); $count++; if ($count % 50 == 0) { gc_enable(); gc_collect_cycles(); set_time_limit(10);
function ImportPlayers($number = 20) { set_time_limit(120); echo "<h2>Import Players</h2>"; list($playerID, $detail) = $this->LastStatus('players'); $sql = "select * \n from players \n left join chapters on players.chapterID = chapters.chapterID\n where playerID > {$playerID} and (players.chapterID > 0 and chapters.kingdomID != 14) order by playerID limit {$number}"; $players = $this->ORK2->query($sql); $Player = new APIModel('Player'); echo $sql . "<p>"; $imported = 0; if ($players->size() > 0) { do { set_time_limit(120); if ($players->kingdomID == 2) { continue; } list($tmp, $chapter_id) = $this->CacheMap('chapters', $players->chapterID); if ($chapter_id == 0) { list($tmp, $chapter_id) = $this->CacheMap('principality-chapters', $players->chapterID); } if ($chapter_id == 0) { continue; } echo "Create Player {$players->aname}; "; $imported++; $player = $Player->CreatePlayer(array('Token' => $this->token, 'GivenName' => $players->fname, 'Surname' => $players->lname, 'OtherName' => '', 'UserName' => str_replace(array(" ", ".", "'"), "_", strtolower($players->fullaname)), 'Password' => md5($players->fullaname), 'Persona' => $players->fullaname, 'Email' => $players->email, 'ParkId' => $chapter_id, 'KingdomId' => 0, 'Restricted' => 0, 'IsActive' => $players->active == 'Y' ? 1 : 0, 'Waivered' => 0, 'Waiver' => '', 'WaiverExt' => '', 'HasHeraldry' => 0, 'Heraldry' => '', 'HasImage' => 0, 'Image' => '')); /* if (trimlen($players->heraldry) > 0) $Player->SetHeraldry(array( 'Token' => $this->token, 'MundaneId' => $player['Detail'], 'HeraldryUrl' => $players->heraldry )); if (trimlen($players->photo) > 0) $Player->SetImage(array( 'Token' => $this->token, 'MundaneId' => $player['Detail'], 'ImageUrl' => $players->photo )); */ $this->RecordTransfer('players', 'Player', $players->playerID, $player['Detail'], array()); } while ($players->next()); } echo "<h3>Import Players Complete ({$imported})</h3>"; return $imported; }