userData implementation

This commit is contained in:
exodus4d
2015-04-11 18:46:54 +02:00
parent 3b27517daa
commit 1be444cc32
54 changed files with 2628 additions and 1025 deletions

View File

@@ -288,13 +288,13 @@ class MapModel extends BasicModel{
// get users with map access
$users = $this->getUsers();
$characterLogsData = [];
$activeUserCharactersData = [];
foreach($users as $user){
// get all active character logs for a user
$activeCharacters = $user->getActiveCharacters();
$tempActiveUserCharacters = $user->getActiveUserCharacters();
foreach($activeCharacters as $activeCharacter){
$characterLogsData[] = $activeCharacter->getData(true);
foreach($tempActiveUserCharacters as $tempActiveUserCharacter){
$activeUserCharactersData[] = $tempActiveUserCharacter->getData(true);
}
}
@@ -304,19 +304,21 @@ class MapModel extends BasicModel{
$mapUserData->data = (object) [];
$mapUserData->data->systems = [];
foreach($systems as $system){
$systemUserData = (object) [];
$systemUserData->id = $system->id;
$systemUserData->user = [];
// check if a system has active characters
foreach($characterLogsData as $characterLogData){
if($characterLogData->log->system->Id == $system->systemId){
$systemUserData->user[] = $characterLogData;
foreach($activeUserCharactersData as $key => $activeUserCharacterData){
if($activeUserCharacterData->log->system->Id == $system->systemId){
$systemUserData->user[] = $activeUserCharacterData;
// remove user from array -> speed up looping over characters.
// each userCharacter can only be active in a SINGLE system
unset($activeUserCharactersData[$key]);
}
}
// add system if active users were found
if(count($systemUserData->user) > 0){
$mapUserData->data->systems[] = $systemUserData;
@@ -324,7 +326,6 @@ class MapModel extends BasicModel{
}
return $mapUserData;
}