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); }