Пример #1
0
 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);
 }