private static function _getDefFields($obj, $node, $node_id) { /* Shared use by standings() and nodeSelector(). These are the default fields (general/regular stats) in standings() and the "having" filters of nodeSelector(). mv_ fields are accumulated stats from MV tables. rg_ (regular) are regular/static/all-time fields from non mv-tables (players, teams, coaches etc.) */ global $lng; $fields = array('mv_won' => array('desc' => 'W'), 'mv_draw' => array('desc' => 'D'), 'mv_lost' => array('desc' => 'L'), 'mv_played' => array('desc' => 'GP'), 'rg_win_pct' => array('desc' => 'WIN%'), 'rg_swon' => array('desc' => 'SW'), 'rg_sdraw' => array('desc' => 'SD'), 'rg_slost' => array('desc' => 'SL'), 'mv_gf' => array('desc' => 'GF'), 'mv_ga' => array('desc' => 'GA'), 'mv_td' => array('desc' => 'Td'), 'mv_cp' => array('desc' => 'Cp'), 'mv_intcpt' => array('desc' => 'Int'), 'mv_cas' => array('desc' => 'Cas'), 'mv_bh' => array('desc' => 'BH'), 'mv_si' => array('desc' => 'Si'), 'mv_ki' => array('desc' => 'Ki')); // These fields are not summable!!! //ie. you dont get the division/league value of these fields by summing over the related/underlying tournaments field's values. global $objFields_notsum; # Look non-summable field and remove them. $ALL_TIME = self::_isNodeAllTime($obj, $node, $node_id); if (!$ALL_TIME) { if ($node == T_NODE_TOURNAMENT) { $new_fields = array(); foreach ($fields as $fname => $fcont) { $f = preg_replace('/^\\w\\w\\_/', '', $fname); $new_fields[in_array($f, $objFields_notsum) ? "mv_{$f}" : $fname] = $fcont; } $fields = $new_fields; } foreach ($objFields_notsum as $f) { unset($fields["rg_{$f}"]); } } $fields_before = $fields_after = array(); switch ($obj) { case STATS_PLAYER: $fields_after = array('mv_mvp' => array('desc' => 'MVP'), 'mv_spp' => array('desc' => 'SPP'), 'value' => array('desc' => $lng->getTrn('common/value'), 'nosort' => !$ALL_TIME, 'kilo' => true, 'suffix' => 'k')); foreach (array('won', 'lost', 'draw') as $f) { unset($fields["rg_s{$f}"]); unset($fields["mv_s{$f}"]); } break; case STATS_TEAM: $fields_before = array('tv' => array('desc' => $lng->getTrn('common/value'), 'kilo' => true, 'suffix' => 'k')); $fields_after = array('mv_tcasf' => array('desc' => 'tcasf'), 'mv_tcasa' => array('desc' => 'tcasa'), 'mv_tcdiff' => array('desc' => 'tcdiff'), 'mv_smp' => array('desc' => 'SMP')); if ($ALL_TIME) { $fields_after['wt_cnt'] = array('desc' => 'WT'); $fields_after['rg_elo'] = array('desc' => 'ELO'); } else { if ($node == T_NODE_TOURNAMENT) { $fields_after['mv_elo'] = array('desc' => 'ELO'); $tr = new Tour($node_id); if ($tr->isRSWithPoints()) { $fields_after['mv_pts'] = array('desc' => 'PTS'); } unset($fields_after['tv']); } } break; case STATS_RACE: if ($node == T_NODE_TOURNAMENT) { $fields_before['mv_team_cnt'] = array('desc' => $lng->getTrn('common/teams')); } else { if ($ALL_TIME) { $fields_before['rg_team_cnt'] = array('desc' => $lng->getTrn('common/teams')); } } foreach (array('won', 'lost', 'draw') as $f) { unset($fields["rg_s{$f}"]); unset($fields["mv_s{$f}"]); } break; case STATS_COACH: $fields_after = array('mv_tcasf' => array('desc' => 'tcasf'), 'mv_tcasa' => array('desc' => 'tcasa'), 'mv_tcdiff' => array('desc' => 'tcdiff'), 'mv_smp' => array('desc' => 'SMP')); if ($node == T_NODE_TOURNAMENT) { $fields_before['mv_team_cnt'] = array('desc' => $lng->getTrn('common/teams')); $fields_after['mv_elo'] = array('desc' => 'ELO'); } else { if ($ALL_TIME) { $fields_before['rg_team_cnt'] = array('desc' => $lng->getTrn('common/teams')); $fields_after['rg_elo'] = array('desc' => 'ELO'); } } break; case STATS_STAR: $fields_after = array('mv_mvp' => array('desc' => 'MVP'), 'mv_spp' => array('desc' => 'SPP')); foreach (array('won', 'lost', 'draw', 'ga', 'gf') as $f) { unset($fields["rg_s{$f}"]); unset($fields["mv_s{$f}"]); } unset($fields["rg_win_pct"]); break; } return array_merge($fields_before, $fields, $fields_after); }