$date = gmdate('Y-m-d'); //Bug 33.4 - Extended params array to default to season for current user $objParams = array('end_time' => array('type' => 'query', 'query' => "> '{$date}'"), 'left_join' => array('type' => 'left_join', 'join_table' => '#__jtips_users', 'lhs_table' => '#__jtips_seasons', 'lhs_key' => 'id', 'rhs_table' => '#__jtips_users', 'rhs_key' => 'season_id')); if (isset($jTipsUser->user_id) and !empty($jTipsUser->user_id)) { $objParams['#__jtips_users.user_id'] = $jTipsUser->user_id; } $jSeasons = forceArray($jSeason->loadByParams($objParams)); if (count($jSeasons) > 0) { $jSeason =& array_shift($jSeasons); } } $jRound = new jRound($database); $round_id = $jSeason->getCurrentRound(); $jRound->load($round_id); if ($jRound->scored == 0) { $prev_round_id = $jSeason->getLastRound(); $prev_round = new jRound($database); $prev_round->load($prev_round_id); $jRound =& $prev_round; $load_round = $prev_round_id; } else { $load_round = $jRound->id; } $jHistory = new jHistory($database); $jTipsUsers = $jHistory->getLadder($jTips['NumDefault'], $load_round); ?> <table width='100%' cellspacing="0"> <thead> <tr class='sectiontableheader jtableheader'> <th>#</th> <th><?php
function getLadder($num_to_show, $round_id, $page = 0, $field = 'rank', $dir = 'asc') { global $database; $debug_args = func_get_args(); jTipsLogger::_log('jHistory: getLadder: ' . implode(', ', $debug_args)); if ($round_id === FALSE) { $jSeason = new jSeason($database); $round_id = $jSeason->getLastRound(); } if ($dir != 'asc' and $dir != 'desc') { $dir = 'desc'; } if ($field == 'pointst') { $field = 'rank'; } if ($field == 'prect') { return $this->getOverallLadder($num_to_show, $round_id, $page, $field, $dir); } else { if ($field == 'user') { return $this->getNameLadder($num_to_show, $round_id, $page, $dir); } else { if ($field == 'comment') { return $this->getCommentLadder($num_to_show, $round_id, $page, $dir); } } } if ($field == 'prec') { $field = 'precision'; } $params = array('round_id' => $round_id, 'join_jtips_users' => array('type' => 'join', 'join_table' => '#__jtips_users', 'lhs_table' => '#__jtips_history', 'lhs_key' => 'user_id', 'rhs_table' => '#__jtips_users', 'rhs_key' => 'id'), 'join_users' => array('type' => 'join', 'join_table' => '#__users', 'lhs_table' => '#__jtips_users', 'lhs_key' => 'user_id', 'rhs_table' => '#__users', 'rhs_key' => 'id'), 'o2' => array('type' => 'order', 'by' => $field, 'direction' => "{$dir}")); $offset = $page * $num_to_show; jTipsLogger::_log("USER LADDER PAGINATION - OFFSET: {$offset}. PAGE: {$page}. NUMTOSHOW: {$num_to_show}", 'DEBUG'); $jHistories = forceArray($this->loadByParams($params, $num_to_show, $offset, true)); $users = array(); foreach ($jHistories as $history) { $jTipsUser = new jTipsUser($database); $jTipsUser->load($history->user_id); array_push($users, $jTipsUser); } return $users; }
function getRank($round_id = FALSE) { global $database; $jHistory = new jHistory($database); if ($round_id === FALSE) { $jSeason = new jSeason($database); $jSeason->load($this->season_id); $round_id = $jSeason->getLastRound(); } $params = array('user_id' => $this->id, 'round_id' => $round_id); $jHistory->loadByParams($params); return $jHistory->rank; }
function getSummaryDetail(&$jTipsUser, $col) { global $database, $jTips, $jLang, $mosConfig_live_site; $Itemid = jTipsGetParam($_REQUEST, 'Itemid', ''); $jSeason = new jSeason($database); $jSeason->load($jTipsUser->season_id); switch ($col) { case 'season': return $jSeason->name; break; case 'rank': $rank = $jTipsUser->getRank(); if (empty($rank)) { return "N/A"; } else { return $rank . " / " . $jTipsUser->getTotalUsers(); } break; case 'score': return $jTipsUser->getTotalScore('points'); break; case 'average': $jRound = new jRound($database); $jRound->load($jSeason->getLastRound()); $round = $jRound->round ? $jRound->round : 1; return round($jTipsUser->getTotalScore('points') / $round, 1); break; case 'precision': return $jTipsUser->getTotalScore('precision'); break; case 'projected': $jRound = new jRound($database); $jRound->load($jSeason->getLatestRound()); $round = $jRound->round ? $jRound->round : 1; $average = $jTipsUser->getTotalScore('points') / $round; return round($average * $jSeason->rounds, 1); break; case 'doubleup': return "<img src='{$mosConfig_live_site}/administrator/images/" . ($jTipsUser->doubleup > 0 ? "publish_x.png' title='" . $jLang['_COM_DASH_ROUND'] . " " . $jTipsUser->doubleup . "'" : "tick.png' />"); break; case 'paid': global $Itemid; if ($jTips['Payments'] == 'paypal' and !$jTipsUser->paid) { $sid = $jSeason->id; if (!$sid) { $sid = getSeasonID(); } return parsePayPalCode($jTips['PayPal'], 'join', $sid); } else { if ($jTips['Payments'] == 'manual' and !$jTipsUser->paid) { return "<img src='{$mosConfig_live_site}/administrator/images/publish_x.png' />"; } else { if ($jTips['Payments'] and $jTipsUser->paid) { $confirm_unsub = 'return confirm("' . $jLang['_COM_UNSUBLINK_PART1'] . ' ' . $jSeason->name . ' ' . $jLang['_COM_UNSUBLINK_PART2'] . '");'; return "<div style='text-align:center;'>\n\t\t\t\t\t\t\t<img src='{$mosConfig_live_site}/administrator/images/tick.png' alt='Paid' border='0' />\n\t\t\t\t\t\t\t<!-- br />\n\t\t\t\t\t\t\t<a href='" . jTipsRoute("index.php?option=com_jtips&Itemid={$Itemid}&view=Dashboard&action=remove&season={$jSeason->id}") . "' onclick='" . $confirm_unsub . "'>" . $jLang['_COM_UNSUBSCRIBE'] . "</a -->\n\t\t\t\t\t\t</div>"; } else { return "-"; } } } /*if ($jTips['Payments'] == 'paypal') { if (!$jTipsUser->paid) { return parsePayPalCode($jTips['PayPal'], 'join', $jSeason->id); } else { $confirm_unsub = 'return confirm("' . $jLang['_COM_UNSUBLINK_PART1'] . ' ' . $jSeason->name . ' ' . $jLang['_COM_UNSUBLINK_PART2'] . '");'; return "<div style='text-align:center;'> <img src='$mosConfig_live_site/administrator/images/tick.png' alt='Paid' border='0' /> <br /> <a href='" .jTipsRoute("index.php?option=com_jtips&Itemid=$Itemid&view=Dashboard&action=remove&season={$jSeason->id}"). "' onclick='" .$confirm_unsub ."'>" .$jLang['_COM_UNSUBSCRIBE']. "</a> </div>"; } } else if ($jTips['Payments'] == 'manual') { return "<img src='$mosConfig_live_site/administrator/images/" .($jTipsUser->paid == 1 ? "tick.png" : "publish_x.png"). "' />"; } else { return "-"; }*/ break; default: return "-"; break; } }