/** * Hent beste ranker siste 24 timer */ public function action_bestranker() { $stats = new \Kofradia\Users\Stats(); $players = $stats->getBestRankers(); if (count($players) == 0) { return \Kofradia\View::forgeTwig('users/login/helpers/best_ranker', array("player" => null)); } $player = reset($players); return \Kofradia\View::forgeTwig('users/login/helpers/best_ranker', array("player" => $player, "img" => \player::get_profile_image_static($player['up_profile_image_url']), "rank" => new \Kofradia\Game\Player\Rank($player['up_points'], $player['upr_rank_pos'], $player['up_access_level']), "profile_link" => \game::profile_link($player['up_id'], $player['up_name'], $player['up_access_level']))); }
/** * Vis toppliste */ protected function top() { if (access::has("crewet") && !isset($_GET['update'])) { echo ' <p class="c"><a href="ranklist?update">Oppdater ranklista hvis det er feil i den »</a></p>'; } // hent folka.. $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT up_id, up_name, up_access_level, up_points, up_last_online, up_profile_image_url, upr_rank_pos\n\t\t\tFROM users_players\n\t\t\t\tLEFT JOIN users_players_rank ON upr_up_id = up_id\n\t\t\tWHERE up_access_level < " . ess::$g['access_noplay'] . " AND up_access_level != 0\n\t\t\tORDER BY up_points DESC\n\t\t\tLIMIT 15"); // hent familier hvor spilleren er medlem $result_ff = \Kofradia\DB::get()->query("\n\t\t\tSELECT ffm_up_id, ffm_priority, ff_id, ff_type, ff_name\n\t\t\tFROM\n\t\t\t\t(\n\t\t\t\t\tSELECT up_id\n\t\t\t\t\tFROM users_players\n\t\t\t\t\tWHERE up_access_level < " . ess::$g['access_noplay'] . " AND up_access_level != 0\n\t\t\t\t\tORDER BY up_points DESC\n\t\t\t\t\tLIMIT 15\n\t\t\t\t) ref\n\t\t\t\tJOIN ff_members ON ffm_up_id = up_id AND ffm_status = " . ff_member::STATUS_MEMBER . "\n\t\t\t\tJOIN ff ON ff_id = ffm_ff_id AND ff_type = 1 AND ff_inactive = 0\n\t\t\tORDER BY ff_name"); $familier = array(); while ($row = $result_ff->fetch()) { $pos = ff::$types[$row['ff_type']]['priority'][$row['ffm_priority']]; $text = '<a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '" title="' . htmlspecialchars($pos) . '">' . htmlspecialchars($row['ff_name']) . '</a>'; $familier[$row['ffm_up_id']][] = $text; } ess::$b->page->add_css(' .ranklist_box { background-color: #1D1D1D; margin: 15px auto; overflow: hidden; padding-left: 10px; position: relative; /*width: 60%;*/ } .ranklist_box .profile_image { float: left; margin: 0 10px 0 -10px; border: 0; } .ranklist_box_1 { max-height: 100px; min-height: 80px; } .ranklist_box_2 { min-height: 60px; max-height: 60px; } .ranklist_box_2 .profile_image { width: 80px; } .ranklist_pos { position: absolute; top: 10px; right: 10px; font-size: 30px; } .ranklist_box_2 .ranklist_pos { font-size: 20px } .ranklist_player { position: absolute; top: 10px; left: 130px; } .ranklist_player img { display: none } .ranklist_box_2 .ranklist_player { left: 90px } .rp_up { font-size: 16px } .rp_rank { display: block; padding-top: 5px; color: #555; } .rp_familie { position: absolute; bottom: 10px; right: 10px; text-align: right; } .rp_no_familie { color: #555 }'); echo ' <div class="bg1_c small"> <h1 class="bg1">Rangeringsoversikt<span class="left"></span><span class="right"></span></h1> <div class="bg1">'; $e = 0; while ($row = $result->fetch()) { $e++; $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']); echo ' <p class="ranklist_box ranklist_box_' . ($e > 5 ? "2" : "1") . '"> <img src="' . htmlspecialchars(player::get_profile_image_static($row['up_profile_image_url'])) . '" alt="Profilbilde" class="profile_image" /> <span class="ranklist_pos">#' . $e . '</span> <span class="ranklist_player"> <span class="rp_up">' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</span><br /> <span class="rp_rank">' . $rank['name'] . '</span> </span> <span class="rp_familie">' . (!isset($familier[$row['up_id']]) ? '<i class="rp_no_familie">Ingen broderskap</i>' : implode(", ", $familier[$row['up_id']])) . '</span> </p>'; if ($e == 15) { break; } } echo ' <p class="c"><a href="ranklist?alle">Vis komplett liste »</a></p> </div> </div>'; }
$up_id = intval($_POST['up_id']); // hent spillerdata $result = \Kofradia\DB::get()->query("\n\tSELECT\n\t\tusers_players.*,\n\t\tup_cash + up_bank AS money,\n\t\tu_email, u_online_ip,\n\t\tupr_rank_pos\n\tFROM users_players\n\t\tLEFT JOIN users_players_rank ON upr_up_id = up_id,\n\t\tusers\n\tWHERE up_id = {$up_id} AND up_u_id = u_id\n\tGROUP BY up_id"); if (!($player = $result->fetch())) { ajax::text("ERROR:404-USER", ajax::TYPE_404); } // hent FF $result = \Kofradia\DB::get()->query("\n\tSELECT ffm_priority, ff_id, ff_name, ff_type\n\tFROM ff_members JOIN ff ON ffm_ff_id = ff_id\n\tWHERE ffm_up_id = {$up_id} AND ffm_status = 1 AND ff_inactive = 0\n\tORDER BY ff_name"); $ff = array(); while ($row = $result->fetch()) { $type = ff::$types[$row['ff_type']]; $row['posisjon'] = ucfirst($type['priority'][$row['ffm_priority']]); $ff[] = $row; } // profilbildet $profile_image = player::get_profile_image_static($player['up_profile_image_url']); // ranken $rank = game::rank_info($player['up_points'], $player['upr_rank_pos'], $player['up_access_level']); #$rank_name = $rank['name']; // statusen $status = ""; // drept? if ($player['up_access_level'] == 0 && $player['up_deactivated_dead'] != 0) { $status = '<span class="c_deactivated">[Død]</span>'; } else { $types = access::types($player['up_access_level']); if (!in_array("none", $types)) { $type = access::type($player['up_access_level']); $type_name = access::name($type); $class = access::html_class($type); $status = '<span class="' . $class . '">[' . htmlspecialchars($type_name) . ']</span>';
/** * Lag HTML for forhåndsvisning av et forumsvar * @param array $data * * $data må inneholde: * * ft_id * fr_text * fr_last_edit [optional] * fr_last_edit_up_id [optional] * * fr_up_id * up_name * up_access_level * up_points * upr_rank_pos * up_forum_signature * up_profile_image_url * * fs_new [boolean, optional] */ public static function template_topic_reply_preview($data) { if (!\login::$logged_in) { throw new \HSNotLoggedIn(); } $date = \ess::$b->date->get(); // sett opp ranken $rank = \game::rank_info($data['up_points'], $data['upr_rank_pos'], $data['up_access_level']); $rank = $rank['name']; $player_ff_position = ''; $html = ' <div class="forum_topic"> <h2 class="forum_title"><a href="topic?id=' . $data['ft_id'] . '" class="forum_permlink r4">#XX</a> - ' . $date->format(\date::FORMAT_NOTIME) . ' <b>' . $date->format("H:i:s") . '</b> - Av ' . \game::profile_link($data['fr_up_id'], $data['up_name'], $data['up_access_level']) . $player_ff_position . (isset($data['fs_new']) && $data['fs_new'] ? ' <span class="fs_new">(Ny)</span>' : '') . '</h2> <p class="h_left"><a href="#default_header_wrap"><img src="' . STATIC_LINK . '/other/up.gif" title="Til toppen" /></a></p> <p class="h_right" style="text-transform: uppercase; margin: -17px 10px 0 !important; color: #DDD">Forhåndsvisning</p>'; // profilbildet og rank $img = ' <div class="forum_profile_image"><a href="' . \ess::$s['relative_path'] . '/p/' . $data['up_name'] . '/' . $data['fr_up_id'] . '"><img src="' . htmlspecialchars(\player::get_profile_image_static($data['up_profile_image_url'])) . '" class="profile_image" alt="" /><span class="forum_rank">' . $rank . '</span></a></div>'; // innlegget $html .= ' <div class="forum_text">' . $img . ' ' . \game::format_data($data['fr_text']) . ' </div>'; // signaturen $signatur = false; if (\login::$user->data['u_forum_show_signature']) { $signatur = \game::format_data($data['up_forum_signature']); } if (!empty($signatur)) { $html .= ' <div class="forum_signature">' . $signatur . '</div>'; } // sist endret if (!empty($data['fr_last_edit'])) { $html .= ' <p class="forum_last_edit">Sist redigert av <user id="' . $data['fr_last_edit_up_id'] . '" /> ' . \ess::$b->date->get($data['fr_last_edit'])->format(\date::FORMAT_SEC) . '</p>'; } $html .= ' </div>'; return $html; }
/** * Vis beste rankere forrige periode */ protected function show_beste_rankere() { $d = ess::$b->date->get(); $a = $d->format("H") < 21 ? 2 : 1; $d->modify("-{$a} day"); $d->setTime(21, 0, 0); $date_from = $d->format("U"); $d->modify("+1 day"); $date_to = $d->format("U"); // hent statistikk $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT up_id, up_name, up_access_level, sum_uhi_points, up_points, up_last_online, up_profile_image_url, upr_rank_pos\n\t\t\tFROM\n\t\t\t\t(\n\t\t\t\t\tSELECT uhi_up_id, SUM(uhi_points) sum_uhi_points\n\t\t\t\t\tFROM users_hits\n\t\t\t\t\t\tJOIN users_players ON up_id = uhi_up_id AND (up_access_level != 0 OR up_deactivated_time < {$date_to}) AND up_access_level < " . ess::$g['access_noplay'] . "\n\t\t\t\t\tWHERE uhi_secs_hour >= {$date_from} AND uhi_secs_hour < {$date_to}\n\t\t\t\t\tGROUP BY uhi_up_id\n\t\t\t\t\tHAVING sum_uhi_points > 0\n\t\t\t\t\tORDER BY sum_uhi_points DESC\n\t\t\t\t\tLIMIT 3\n\t\t\t\t) ref,\n\t\t\t\tusers_players\n\t\t\t\tLEFT JOIN users_players_rank ON upr_up_id = up_id\n\t\t\tWHERE uhi_up_id = up_id"); if ($result->rowCount() == 0) { return; } $players = array(); $up_list = array(); while ($row = $result->fetch()) { $players[] = $row; $up_list[] = $row['up_id']; } // hent familier hvor spilleren er medlem $result_ff = \Kofradia\DB::get()->query("\n\t\t\tSELECT ffm_up_id, ffm_priority, ff_id, ff_type, ff_name\n\t\t\tFROM\n\t\t\t\tff_members\n\t\t\t\tJOIN ff ON ff_id = ffm_ff_id AND ff_type = 1 AND ff_inactive = 0\n\t\t\tWHERE ffm_up_id IN (" . implode(",", $up_list) . ") AND ffm_status = " . ff_member::STATUS_MEMBER . "\n\t\t\tORDER BY ff_name"); $familier = array(); while ($row = $result_ff->fetch()) { $pos = ff::$types[$row['ff_type']]['priority'][$row['ffm_priority']]; $text = '<a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '" title="' . htmlspecialchars($pos) . '">' . htmlspecialchars($row['ff_name']) . '</a>'; $familier[$row['ffm_up_id']][] = $text; } $data = ' <p>Beste rankere siste periode</p>'; $e = 0; foreach ($players as $row) { $e++; $img = player::get_profile_image_static($row['up_profile_image_url']); $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']); $data .= ' <p class="ranklist_box"> <a href="' . ess::$s['relative_path'] . '/p/' . rawurlencode($row['up_name']) . '" title="Vis profil"><img src="' . htmlspecialchars($img) . '" alt="Profilbilde" class="profile_image" /></a> <span class="ranklist_pos">#' . $e . '</span> <span class="ranklist_player"> <span class="rp_up">' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</span><br /> <span class="rp_rank">' . $rank['name'] . '</span> </span> <span class="rp_familie">' . (!isset($familier[$row['up_id']]) ? '<i class="rp_no_familie">Ingen broderskap</i>' : implode(", ", $familier[$row['up_id']])) . '</span> </p>'; if ($e == 15) { break; } } $data .= ' <p class="dark">En rankperiode er fra sist klokka var 21:00 og 24 timer før. De beste rankerene <a href="' . ess::$s['rpath'] . '/node/59">mottar bonus</a> for sin innsats.</p>'; $this->put_box($data); }
<?php require "../../app/ajax.php"; ajax::validate_sid(); global $_game, $__server, $_base; // hent egen informasjon // TODO: Velge kun det vi skal bruke? $result = \Kofradia\DB::get()->query("\n\tSELECT\n\t\tusers_players.*,\n\t\tupr_rank_pos,\n\t\tusers.*,\n\t\tup_cash + up_bank AS money\n\tFROM\n\t\tusers_players\n\t\tLEFT JOIN users_players_rank ON upr_up_id = up_id,\n\t\tusers\n\tWHERE up_id = " . login::$user->player->id . " AND up_u_id = u_id\n\tGROUP BY up_id"); // fant ikke? if ($result->rowCount() == 0) { ajax::text("ERROR:NO-USER", ajax::TYPE_404); } // les info $user = $result->fetch(); // profilbilde $profile_image = parse_html(player::get_profile_image_static($user['up_profile_image_url'])); // ranken $rank = game::rank_info($user['up_points'], $user['upr_rank_pos'], $user['up_access_level']); // statusen $status = ""; $types = access::types($user['up_access_level']); if (!in_array("none", $types)) { $type = access::type($user['up_access_level']); $type_name = access::name($type); $class = access::html_class($type); $status = '<span class="' . $class . '">[' . htmlspecialchars($type_name) . ']</span>'; } // bydel $bydel = game::$bydeler[$user['up_b_id']]; $health = $user['up_health'] / $user['up_health_max'] * 100; $energy = $user['up_energy'] / $user['up_energy_max'] * 100;