示例#1
0
 /**
  * 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'])));
 }
示例#2
0
    /**
     * 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 &raquo;</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 &raquo;</a></p>
	</div>
</div>';
    }
示例#3
0
$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>';
示例#4
0
    /**
     * 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;
    }
示例#5
0
    /**
     * 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);
    }
示例#6
0
<?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;