示例#1
0
 function getUserLadder($num_to_show, $page = 0, $field = 'points', $dir = 'desc', $round_id = FALSE)
 {
     global $database, $jTips;
     $org_round_id = $round_id;
     if ($round_id === FALSE) {
         $round_id = $this->getLatestRound();
     }
     $jHistory = new jHistory($database);
     $this->getUsers($round_id);
     $jTipsUsers = array();
     $start_from = $num_to_show * $page;
     $go_to = min($start_from + $num_to_show, count($this->users));
     for ($i = $start_from; $i < $go_to; $i++) {
         $jTipsUser =& $this->users[$i];
         $params = array('user_id' => $this->users[$i]->id, 'round_id' => $round_id, 'left_join' => array('type' => 'left_join', 'join_table' => '#__jtips_rounds', 'lhs_table' => '#__jtips_history', 'rhs_table' => '#__jtips_rounds', 'lhs_key' => 'round_id', 'rhs_key' => 'id', 'supplement' => 'AND #__jtips_rounds.scored = 1'));
         $jHistory->loadByParams($params);
         if (is_property($jHistory, $field)) {
             $jTipsUser->{$field} = $jHistory->{$field};
         } else {
             if ($field == 'pointst') {
                 $jTipsUser->{$field} = $jTipsUser->getTotalScore('points');
             } else {
                 if ($field == 'prect') {
                     $jTipsUser->{$field} = $jTipsUser->getTotalScore('precision');
                 } else {
                     if ($field == 'rank') {
                         $jTipsUser->{$field} = $jTipsUser->getRank($org_round_id);
                     } else {
                         if ($field == 'comment') {
                             $jComment = new jComment($database);
                             $params = array('user_id' => $jTipsUser->id, 'round_id' => $round_id);
                             $jComment->loadByParams($params);
                             $jTipsUser->{$field} = !empty($jComment->comment) ? $jComment->comment : "";
                         } else {
                             $jTipsUser->{$field} = $jTipsUser->getName();
                         }
                     }
                 }
             }
         }
         array_push($jTipsUsers, $jTipsUser);
     }
     //jTipsSortArrayObjects($jTipsUsers, $field, $dir);
     //return $jTipsUsers;
     return jTipsUser::sort($jTipsUsers, $field, $dir);
 }