示例#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
文件: crewet.php 项目: Kuzat/kofradia
function visliste($name, $where)
{
    global $_base;
    $result = \Kofradia\DB::get()->query("SELECT up_id, up_name, up_access_level, up_last_online FROM users_players WHERE {$where} ORDER BY up_name");
    // hopp over hvis det ikke finnes noen
    if ($result->rowCount() == 0) {
        return;
    }
    echo '
		<h2 class="bg1">' . $name . '<span class="left2"></span><span class="right2"></span></h2>
		<div class="bg1">
			<dl class="dd_right">';
    while ($row = $result->fetch()) {
        echo '
				<dt>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</dt>
				<dd>' . game::timespan($row['up_last_online'], game::TIME_ABS | game::TIME_NOBOLD) . '</dd>';
    }
    echo '
			</dl>
		</div>';
}
示例#3
0
    protected static function show_stats_users($players, $id, &$reply_users, $last_online)
    {
        if (!isset($players[$id])) {
            return '
						<tr>
							<td colspan="3">Ingen brukere.</td>
						</tr>';
        }
        $i = 0;
        $ret = '';
        foreach ($players[$id] as $player) {
            $ant = array_key_exists($player['up_id'], $reply_users) ? $reply_users[$player['up_id']] : 0;
            unset($reply_users[$player['up_id']]);
            $ret .= '
						<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
							<td>' . game::profile_link($player['up_id'], $player['up_name'], $player['up_access_level']) . '</td>
							<td class="r">' . game::format_number($ant) . '</td>
							<td class="r">' . game::timespan($last_online[$player['up_id']], game::TIME_ABS) . '</td>
						</tr>';
        }
        return $ret;
    }
示例#4
0
文件: lock.php 项目: Kuzat/kofradia
    /**
     * Behandle ny spiller
     */
    protected function solve_player()
    {
        ess::$b->page->add_title("Ny spiller");
        redirect::store($_SERVER['REQUEST_URI']);
        // sjekk om vi allerede har en spiller fra før som ikke er den aktive
        $result = \Kofradia\DB::get()->query("SELECT up_id, up_name, up_created_time, up_last_online, up_access_level FROM users_players WHERE up_u_id = " . login::$user->id . " AND up_access_level != 0");
        if ($result->rowCount() > 0) {
            // sett opp liste over spillere
            $players = array();
            while ($row = $result->fetch()) {
                $players[$row['up_id']] = $row;
            }
            // velge aktiv spiller?
            if (isset($_POST['select']) && isset($_POST['up_id']) && validate_sid()) {
                $up_id = (int) $_POST['up_id'];
                if (!isset($players[$up_id])) {
                    ess::$b->page->add_message("Fant ikke spillere.", "error");
                    redirect::handle();
                }
                // sett som aktiv spiller
                \Kofradia\DB::get()->exec("UPDATE users SET u_active_up_id = {$up_id} WHERE u_id = " . login::$user->id);
                ess::$b->page->add_message('Du har valgt <user="******" /> som din aktive spiller.');
                redirect::handle("min_side");
            }
            echo '
<div class="bg1_c xmedium">
	<h1 class="bg1">Ny spiller<span class="left2"></span><span class="right2"></span></h1>
	<p class="h_left"><a href="' . htmlspecialchars($this->url) . '">Tilbake</a></p>
	<div class="bg1">
		<form action="" method="post">
			<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
			<p>Du har allerede en annen spiller som er i live. Du må enten deaktivere spilleren eller velge å bruke den som din aktive spiller.</p>
			<table class="table center">
				<thead>
					<tr>
						<th>ID</th>
						<th>Spiller</th>
						<th>Opprettet</th>
						<th>Sist aktiv</th>
						<th>Deaktiver</th>
					</tr>
				</head>
				<tbody>';
            foreach ($players as $row) {
                echo '
					<tr class="box_handle">
						<td><input type="radio" name="up_id" value="' . $row['up_id'] . '" />' . $row['up_id'] . '</td>
						<td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td>
						<td>' . ess::$b->date->get($row['up_created_time'])->format() . '</td>
						<td>' . ess::$b->date->get($row['up_last_online'])->format() . '</td>
						<td><a href="min_side?up_id=' . $row['up_id'] . '&amp;a=deact">Deaktiver</a></td>
					</tr>';
            }
            echo '
				</tbody>
			</table>
			<p class="c">' . show_sbutton("Velg som aktiv spiller", 'name="select"') . '</p>
		</form>
	</div>
</div>';
            ess::$b->page->load();
        }
        // opprette ny spiller?
        if (isset($_POST['name']) && !isset($_POST['abort']) && validate_sid()) {
            $name = trim($_POST['name']);
            $bydel = postval("bydel");
            if (!isset(game::$bydeler[$bydel]) || !game::$bydeler[$bydel]['active']) {
                $bydel = false;
            }
            // kontroller navnet
            $result1 = \Kofradia\DB::get()->query("SELECT " . \Kofradia\DB::quoteNoNull($name) . " REGEXP regex AS m, error FROM regex_checks WHERE (type = 'reg_user_special' OR type = 'reg_user_strength') HAVING m = 1");
            $where = ALLOW_SAME_PLAYERNAME ? " AND (up_u_id != " . login::$user->id . " OR up_access_level != 0)" : "";
            $result2 = \Kofradia\DB::get()->query("SELECT up_id FROM users_players WHERE up_name = " . \Kofradia\DB::quote($name) . $where);
            $result3 = \Kofradia\DB::get()->query("SELECT id FROM registration WHERE user = "******"Spillernavnet var ikke gyldig:<ul>" . implode("", $feil) . "</ul>", "error");
            } elseif (empty($name)) {
                ess::$b->page->add_message("Du må skrive inn et navn du ønsker at din nye spiller skal ha.", "error");
            } elseif ($result2->rowCount() > 0) {
                ess::$b->page->add_message("Spillernavnet er allerede tatt! Velg et annet.", "error");
            } elseif ($result3->rowCount() > 0) {
                ess::$b->page->add_message("Noen holder allerede på å registrere seg med dette spillernavnet. Velg et annet.", "error");
            } else {
                // godkjent?
                if (isset($_POST['confirm'])) {
                    // finne tilfeldig bydel?
                    if (!$bydel) {
                        // finn en tilfeldig bydel
                        $result = \Kofradia\DB::get()->query("SELECT id FROM bydeler WHERE active = 1 ORDER BY RAND()");
                        $bydel = $result->fetchColumn(0);
                    }
                    \Kofradia\DB::get()->beginTransaction();
                    // opprett spiller og tilknytt brukeren
                    \Kofradia\DB::get()->exec("INSERT INTO users_players SET up_u_id = " . login::$user->id . ", up_name = " . \Kofradia\DB::quote($name) . ", up_created_time = " . time() . ", up_b_id = {$bydel}");
                    $up_id = \Kofradia\DB::get()->lastInsertId();
                    // sett opp riktig rank plassering
                    #\Kofradia\DB::get()->exec("UPDATE users_players AS main, (SELECT COUNT(users_players.up_id)+1 AS pos, ref.up_id FROM users_players AS ref LEFT JOIN users_players ON users_players.up_points > ref.up_points AND users_players.up_access_level < ".ess::$g['access_noplay']." AND users_players.up_access_level != 0 WHERE ref.up_id = $up_id GROUP BY ref.up_id) AS rp SET main.up_rank_pos = rp.pos WHERE main.up_id = rp.up_id");
                    \Kofradia\DB::get()->exec("INSERT INTO users_players_rank SET upr_up_id = {$up_id}");
                    ranklist::update();
                    // sett spilleren som den aktive spilleren for brukerne
                    \Kofradia\DB::get()->exec("UPDATE users SET u_active_up_id = {$up_id} WHERE u_id = " . login::$user->id);
                    \Kofradia\DB::get()->commit();
                    // hent antall medlemmer
                    $result = \Kofradia\DB::get()->query("SELECT COUNT(up_id) FROM users_players WHERE up_access_level < " . ess::$g['access_noplay'] . " AND up_access_level != 0");
                    putlog("INFO", "%bNY SPILLER:%b (#{$up_id} - Nummer %b" . $result->fetchColumn(0) . "%b) %u{$name}%u registrerte seg! " . ess::$s['path'] . "/p/" . rawurlencode($name));
                    ess::$b->page->add_message("Du har opprettet en ny spiller med navnet <b>" . htmlspecialchars($name) . "</b>!");
                    redirect::handle("min_side");
                }
                echo '
<div class="bg1_c xxsmall">
	<h1 class="bg1">Bekreft ny spiller<span class="left2"></span><span class="right2"></span></h1>
	<div class="bg1">
		<form action="" method="post">' . ($bydel ? '
			<input type="hidden" name="bydel" value="' . $bydel['id'] . '" />' : '') . '
			<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
			<input type="hidden" name="name" value="' . htmlspecialchars($name) . '" />
			<p>Du er i ferd med å opprette følgende spiller:</p>
			<dl class="dd_right">
				<dt>Spillernavn</dt>
				<dd><b>' . htmlspecialchars($name) . '</b></dd>
				<dt>Bydel</dt>
				<dd>' . ($bydel ? htmlspecialchars(game::$bydeler[$bydel]['name']) : 'Tilfeldig valgt') . '</dd>
			</dl> 
			<p>Du kan ikke bytte dette spillernavnet senere uten og opprette en ny spiller.</p>
			<p class="c">' . show_sbutton("Opprett spiller", 'name="confirm"') . ' ' . show_sbutton("Avbryt", 'name="abort"') . '</p>
		</form>
	</div>
</div>';
                ess::$b->page->load();
            }
        }
        ess::$b->page->add_css('
#name_validate { color: #AAA }
#name_validate_ok { color: #CCFF00 }
#name_validate_loading img { vertical-align: text-bottom; margin: -2px 0 }
#name_validate_taken { color: #900000 }
');
        ess::$b->page->add_js_domready('
	var status = function(val)
	{
		if (val == "") $("name_validate").removeClass("hide"); else $("name_validate").addClass("hide");
		if (val == "taken") $("name_validate_taken").removeClass("hide"); else $("name_validate_taken").addClass("hide");
		if (val == "ok") $("name_validate_ok").removeClass("hide"); else $("name_validate_ok").addClass("hide");
		if (val == "loading") $("name_validate_loading").removeClass("hide"); else $("name_validate_loading").addClass("hide");
	};
	var change_last = null, change_timer;
	var change = function()
	{
		if (this.get("value") == change_last) return; change_last = this.get("value");
		if (this.get("value") == "") { status(""); return; }
		
		$clear(change_timer);
		change_timer = this.search.delay(500, this, true);
		
		status("loading");
	};
	
	$("name_enter").addEvents({
		"keyup": change,
		"change": change
	}).focus();
	var xhr;
	$("name_enter").search = function()
	{
		if (!xhr)
		{
			xhr = new Request({"url": relative_path + "/ajax/find_user"});
			xhr.addEvent("success", function(text, xml)
			{
				if (xmlGetValue(xml, "user"))
					status("taken");
				else
					status("ok");
			});
			xhr.addEvent("failure", function(x)
			{
				alert("En feil oppsto.");
			});
		}
		xhr.send({"data": {"q": $("name_enter").get("value").trim()' . (ALLOW_SAME_PLAYERNAME ? ', "is": true' : '') . '}});
	};
	if ($("name_enter").get("value") != "") $("name_enter").search.run(null, $("name_enter"));
	else status("");
	change_last = $("name_enter").get("value");');
        echo '
<div class="bg1_c xsmall">
	<h1 class="bg1">Ny spiller<span class="left2"></span><span class="right2"></span></h1>
	<p class="h_left"><a href="' . htmlspecialchars($this->url) . '">Tilbake</a></p>
	<div class="bg1">
		<form action="" method="post">
			<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
			<p>Du er nå i ferd med å opprette en ny spiller. Du kan også se informasjon for din tidligere spiller <a href="min_side?up_id=' . login::$user->player->id . '">' . htmlspecialchars(login::$user->player->data['up_name']) . '</a>.</p>
			<p>Du kan ikke bytte spillernavnet du velger å opprette her uten og opprette en ny spiller.</p>
			<dl class="dd_right" style="overflow: hidden">
				<dt>Nytt spillernavn</dt>
				<dd><input type="text" id="name_enter" name="name" class="styled w120" value="' . htmlspecialchars(postval("name")) . '" /></dd>
				<dt>Status:
					<span class="name_v hide" id="name_validate_loading"><img src="' . STATIC_LINK . '/other/loading-black.gif" /></span>
					<span class="name_v hide" id="name_validate">Skriv inn ønsket navn</span>
					<span class="name_v hide" id="name_validate_ok">Ledig</span>
					<span class="name_v hide" id="name_validate_taken">Opptatt</span>
				</dt>
			</dl>
			<dl class="dd_right">
				<dt>Bydel</dt>
				<dd>
					<select name="bydel">';
        $active = postval("bydel");
        if (!isset(game::$bydeler[$active]) || !game::$bydeler[$active]['active']) {
            $active = false;
        }
        echo '
						<option' . (!$active ? ' selected="selected"' : '') . '>Velg tilfeldig</option>';
        foreach (game::$bydeler as $bydel) {
            if (!$bydel['active']) {
                continue;
            }
            echo '
						<option value="' . $bydel['id'] . '"' . ($active == $bydel['id'] ? ' selected="selected"' : '') . '>' . htmlspecialchars($bydel['name']) . '</option>';
        }
        echo '
					</select>
				</dd>
			</dl>
			<p class="c">' . show_sbutton("Fortsett") . '</p>
		</form>
	</div>
</div>';
    }
示例#5
0
    protected function js()
    {
        // mottakere
        $list = array();
        foreach ($this->receivers as $row) {
            $list[] = array($row['up_id'], $row['up_name'], game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']));
        }
        // hent javascript filen til innboksen
        ess::$b->page->add_js_file(ess::$s['relative_path'] . "/js/innboks.js");
        // javascript
        ess::$b->page->add_js_domready('
	innboks_ny.receivers = ' . js_encode($list) . ';
	innboks_ny.limit = ' . $this->receivers_limit . ';
	innboks_ny.init();');
    }
示例#6
0
		<?php 
$i = 0;
foreach ($contacts as $contact) {
    ?>
				<tr class="box_handle<?php 
    echo ++$i % 2 == 0 ? ' color' : '';
    ?>
">
					<td><input type="checkbox" name="id[]" rel="id_<?php 
    echo $type;
    ?>
" value="<?php 
    echo $contact->data['uc_id'];
    ?>
" /><?php 
    echo \game::profile_link($contact->data['uc_contact_up_id'], $contact->data['up_name'], $contact->data['up_access_level']);
    ?>
</td>
					<td class="r"><?php 
    echo \game::timespan($contact->data['up_last_online'], game::TIME_ABS);
    ?>
</td>
					<td class="r"><?php 
    echo \ess::$b->date->get($contact->data['uc_time'])->format(date::FORMAT_NOTIME);
    ?>
</td>
					<td><?php 
    echo empty($contact->data['uc_info']) ? '<span class="dark">Ingen info</span>' : \game::bb_to_html($contact->data['uc_info']);
    ?>
</td>
					<td><a href="kontakter/edit/<?php 
示例#7
0
文件: sok.php 项目: Kuzat/kofradia
.f_lock { color: #FFFFFF }
.f_u a span { color: #FFFFFF; text-decoration: none }
.f_u a:hover span { text-decoration: underline }
.f_time { color: #AAAAAA }
.f_deld { color: #FFF; font-size: 11px }');
        // vis hver topic
        $i = 0;
        while ($row = $result->fetch()) {
            echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td><a href="forum?id=' . $row['ft_fse_id'] . '">' . htmlspecialchars($sections[$row['ft_fse_id']]['name']) . '</a></td>
					<td class="l' . ($row['ft_type'] == 3 ? ' f_viktig' : ($row['ft_type'] == 2 ? ' f_sticky' : '')) . '"><a href="topic?id=' . $row['ft_id'] . '">' . htmlspecialchars($row['ft_title']) . '</a>' . ($row['ft_type'] == 3 ? ' <span class="info">(Viktig)</span>' : ($row['ft_type'] == 2 ? ' <span class="info">(Sticky)</span>' : '')) . ($row['ft_locked'] == 1 ? ' <span class="f_lock">(låst)</span>' : '') . ($row['ft_deleted'] != 0 ? ' <span class="f_deld">(Slettet)</span>' : '') . '</td>
					<td class="f_u">' . game::profile_link($row['ft_up_id'], $row['up_name'], $row['up_access_level']) . '<br /><span class="f_time">' . $_base->date->get($row['ft_time'])->format() . '</span></td>
					<td>' . game::format_number($row['ft_replies']) . '</td>
					<td>' . game::format_number($row['ft_views']) . '</td>
					<td class="f_u">' . ($row['fr_time'] ? game::profile_link($row['fr_up_id'], $row['r_up_name'], $row['r_up_access_level']) . '<br /><span class="f_time">' . game::timespan($row['fr_time'], game::TIME_ABS) . '</span>' : '<span style="color: #AAA">Ingen</span>') . '</td>
					<td>' . ($row['tr_match_type'] == 'subject' ? 'Tittel' : ($row['tr_match_type'] == 'topic' ? 'Hoved' : '<a href="topic?id=' . $row['ft_id'] . '&amp;replyid=' . $row['tr_fr_id'] . '">Svar &raquo;</a>')) . '</td>
				</tr>';
        }
        echo '
			</tbody>
		</table>';
        // flere sider?
        if ($pagei->pages > 1) {
            echo '
		<p class="c">' . $pagei->pagenumbers() . '</p>';
        }
    }
    echo '
	</div>
</div>';
示例#8
0
/**
 * Rette på HTML før output.
 * 
 * @param string $content
 * @return string
 */
function parse_html($content)
{
    global $__server;
    // fikse noen <user="" /> ?
    $matches = false;
    if (preg_match_all("/(<user=\"([0-9a-zA-Z\\-_ ]+)\"( nolink)? \\/>|<user id=\"([0-9]+)\"( nolink)? \\/>)/", $content, $matches)) {
        $users = array();
        $ids = array();
        // sett opp brukernavn liste
        foreach ($matches[2] as $user) {
            if (!empty($user)) {
                if (!in_array($user, $users)) {
                    $users[] = $user;
                }
            }
        }
        // sett opp ID liste
        foreach ($matches[4] as $id) {
            if (!empty($id)) {
                if (!in_array($id, $ids)) {
                    $ids[] = $id;
                }
            }
        }
        // fant gyldige treff
        if (count($users) > 0 || count($ids) > 0) {
            global $_base;
            $q = array();
            // brukernavn
            if (count($users) > 0) {
                $q[] = "\n\t\t\t\t\tSELECT up_id, up_name, up_access_level FROM (\n\t\t\t\t\t\tSELECT up_id, up_name, up_access_level\n\t\t\t\t\t\tFROM users_players\n\t\t\t\t\t\tWHERE up_name IN (" . implode(",", array_map(array($_base->db, "quote"), $users)) . ")\n\t\t\t\t\t\tORDER BY up_access_level = 0, up_last_online DESC\n\t\t\t\t\t) ref\n\t\t\t\t\tGROUP BY up_name";
            }
            // id
            if (count($ids) > 0) {
                $q[] = "SELECT up_id, up_name, up_access_level FROM users_players WHERE up_id IN (" . implode(",", array_unique(array_map("intval", $ids))) . ")";
            }
            // hent info og bytt om
            $result = \Kofradia\DB::get()->query(implode(" UNION ", $q));
            while ($row = $result->fetch()) {
                $content = preg_replace('/(<user="******"/") . '" \\/>|<user id="' . $row['up_id'] . '" \\/>)/i', game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']), $content);
                $content = preg_replace('/(<user="******"/") . '" nolink \\/>|<user id="' . $row['up_id'] . '" nolink \\/>)/i', game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level'], false), $content);
            }
        }
        // ordne de som ikke ble funnet
        $content = preg_replace('~<user="******"( nolink)? />~i', '<a href="' . $__server['relative_path'] . '/finn_spiller?finn=$1">$1 (ukjent spiller)</a>', $content);
        $content = preg_replace('~<user id="([0-9]+)"( nolink)? />~i', '<a href="' . $__server['relative_path'] . '/finn_spiller">#$1 (ukjent spiller)</a>', $content);
    }
    // fikse noen <ff_link>id</ff_link> ?
    $matches = false;
    if (preg_match_all("~(<ff_link>([0-9]+)</ff_link>)~", $content, $matches)) {
        $ids = array();
        // sett opp ID liste
        foreach ($matches[2] as $id) {
            if (!in_array($id, $ids)) {
                $ids[] = (int) $id;
            }
        }
        // fant gyldige treff
        if (count($ids) > 0) {
            // hent info og bytt om
            $result = \Kofradia\DB::get()->query("SELECT ff_id, ff_name, ff_inactive FROM ff WHERE ff_id IN (" . implode(",", $ids) . ")");
            while ($row = $result->fetch()) {
                $link = $row['ff_inactive'] && !access::has("mod") ? htmlspecialchars($row['ff_name']) : '<a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '">' . htmlspecialchars($row['ff_name']) . '</a>';
                $content = preg_replace('~(<ff_link>' . $row['ff_id'] . '</ff_link>)~', $link, $content);
            }
        }
        // ordne de som ikke ble funnet
        $content = preg_replace('~<ff_link>([0-9]+)</ff_link>~', '<span class="ff_unknown">ukjent firma/broderskap (#$1)</span>', $content);
    }
    // fiks entities
    $content = str_replace(array("&rpath;", "&spath;", "&path;", "&staticlink;"), array(ess::$s['rpath'], ess::$s['spath'], ess::$s['path'], STATIC_LINK), $content);
    return $content;
}
示例#9
0
    /**
     * Vis deaktiverte spillere
     */
    protected static function vis_spillere()
    {
        global $__server;
        ess::$b->page->add_title("Deaktiverte brukere");
        // hente listen over brukere
        $pagei = new pagei(pagei::PER_PAGE, 20, pagei::ACTIVE_GET, "side");
        $result = $pagei->query("\n\t\t\tSELECT\n\t\t\t\tu_id, u_email, u_access_level, u_deactivated_time, u_deactivated_up_id, u_deactivated_reason, u_deactivated_note,\n\t\t\t\tup_id, up_name, up_access_level, up_deactivated_time, up_deactivated_up_id, up_deactivated_reason, up_deactivated_note\n\t\t\tFROM\n\t\t\t\tusers\n\t\t\t\tJOIN users_players ON u_id = up_u_id\n\t\t\tWHERE\n\t\t\t\tup_access_level = 0 AND (u_access_level != 0 OR u_deactivated_time != up_deactivated_time)\n\t\t\tORDER BY up_deactivated_time DESC");
        echo '
<h1>Deaktiverte spillere</h1>
<p>Merk: Denne listen viser ikke spillere som har blitt deaktivert samtidig som brukeren ble deaktivert.</p>';
        self::table_header();
        while ($row = $result->fetch()) {
            if ($row['u_access_level'] == 0) {
                echo '
		<tr>
			<td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level'], true, $__server['relative_path'] . '/min_side?up_id=' . $row['up_id']) . '</td>
			<td class="nowrap r">' . ess::$b->date->get($row['up_deactivated_time'])->format() . '</td>
			<td' . ($row['up_deactivated_up_id'] == $row['up_id'] ? ' class="pcd_self">Ja' : ' class="pcd_crew">Nei') . '</td>
			<td>' . game::format_data($row['up_deactivated_reason']) . '</td>
		</tr>';
            }
        }
        self::table_footer($pagei);
    }
示例#10
0
 /**
  * Returner profillenke
  */
 public function profile_link($link = true, $linkurl = NULL)
 {
     return game::profile_link($this->id, $this->data['up_name'], $this->data['up_access_level'], $link, $linkurl);
 }
示例#11
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;
    }
示例#12
0
    protected static function generate_page()
    {
        /*<div class="default_hidden" id="content"><a href="#top">Til toppen av siden</a></div>
        		<div class="default_hidden"><a href="#content">Til toppen av innholdet</a></div>*/
        $extra_classes = '';
        // vise juleheader?
        $d = ess::$b->date->get();
        if ($d->format("m") == 12) {
            $extra_classes .= ' juleheader';
        }
        echo '<!DOCTYPE html>
<html lang="no">
<head>
<title>' . ess::$b->page->generate_title() . '</title>' . ess::$b->page->generate_head() . '</head>
<body class="' . self::$class_browser . self::$class_crew . (self::$locked ? ' is_lock' : '') . $extra_classes . '" id="default_th">' . ess::$b->page->body_start . '
	<!--<div class="default_hidden print" id="top">
		<h1><a href="' . ess::$s['absolute_path'] . '">kofradia.no</a></h1>
		<p class="default_hidden"><a href="#content">Til innholdet</a></p>
	</div>-->
	<div id="default_header_wrap">
		<div id="default_header_img"></div>
		<div id="default_header">';
        $boxes = theme_helper::get_extended_access_boxes();
        if ($boxes) {
            echo '
			<div id="cboxes"' . (!access::has("mod") ? ' class="nocus"' : '') . '>';
            foreach ($boxes as $box) {
                echo '
				<p class="box"><a href="' . $box[0] . '">' . $box[1] . '</a></p>';
            }
            echo '
			</div>';
        }
        echo self::get_extended_access_login();
        echo self::get_extended_access_links();
        echo self::get_extended_access_search();
        echo '
			
			<p id="toplink"><a href="' . ess::$s['path'] . '/" title="Gå til forsiden"></a></p>
			<p id="fb_link"><a href="http://www.facebook.com/kofradia" target="_blank"><span>Du finner oss på Facebook</span></a></p>';
        //<p id="donate_link"><a href="'.ess::$s['relative_path'].'/donasjon" title="Doner &raquo;"><span>Donér &raquo;</span></a></p>';
        $blog_links = self::get_blog_links();
        if ($blog_links) {
            echo '
			<p id="blog_link">' . implode("<br />", $blog_links) . '</p>';
        }
        echo '
			<ul id="default_topmenu">
				<li><a href="' . ess::$s['relative_path'] . '/loggut?sid=' . login::$info['ses_id'] . '" onclick="return confirm(\'Er du sikker på at du vil logge ut?\\n\\nTips! Trykk Esc knappen tre ganger for å logge ut uten å måtte trykke på denne knappen!\')"><b>Logg ut</b></a></li>
				<li><a href="' . ess::$s['relative_path'] . '/innboks">Meldinger</a></li>';
        if (!self::$locked) {
            echo '
				<li><a href="' . ess::$s['relative_path'] . '/kontakter">Kontakter</a></li>
				<li><a href="' . ess::$s['relative_path'] . '/finn_spiller">Finn spiller</a></li>';
        }
        echo '
				<li><a href="' . ess::$s['relative_path'] . '/min_side?u&amp;a=set">Innstillinger</a></li>';
        if (!self::$locked) {
            echo '
				<li><a href="' . ess::$s['relative_path'] . '/irc/client/" target="_blank">Chat</a></li>';
        }
        echo '
			</ul>
			<div id="status_info"></div>
			<p id="default_profilbilde">
				<span id="default_profilbilde_wrap">
					<a href="' . ess::$s['relative_path'] . '/min_side?' . (!login::$user->player->active ? "up_id=" . login::$user->player->id . '&amp;' : '') . 'a=profil&amp;b=profilbilde" class="profile_image_edit"><img src="/static/icon/image.png" /> endre</a>
					<a href="' . ess::$s['relative_path'] . '/p/' . login::$user->player->data['up_name'] . '"><img src="' . htmlspecialchars(login::$user->player->get_profile_image()) . '" alt="Ditt profilbilde" class="profile_image" /></a>
				</span>
			</p>
			<p id="default_playername">' . game::profile_link() . '</p>' . self::get_oppdrag_status() . '
		</div>
		<div id="default_header_subline">
			<p id="server_klokka"><span>' . self::$date_now->format(date::FORMAT_WEEKDAY) . ' ' . self::$date_now->format(date::FORMAT_NOTIME) . ' - ' . self::$date_now->format("H:i:s") . '</span></p>
			<div id="pm_new">' . (self::$num_pm > 0 ? '<p class="notification_box"><a href="' . ess::$s['relative_path'] . '/innboks"><b>' . self::$num_pm . ' ' . fword("ny</b> melding", "nye</b> meldinger", self::$num_pm) . '</a></p>' : '') . '</div>
			<div id="log_new">' . (self::$num_log > 0 ? '<p class="notification_box"><a href="' . ess::$s['relative_path'] . '/min_side?log"><b>' . self::$num_log . ' ' . fword("ny</b> hendelse", "nye</b> hendelser", self::$num_log) . '</a></p>' : '') . '</div>';
        if (login::$user->data['u_log_crew_new'] > 0 && isset(login::$extended_access)) {
            echo '
			<p class="notification_box"><a href="' . ess::$s['relative_path'] . '/min_side?u&a=crewlog"><b>' . login::$user->data['u_log_crew_new'] . '</b> ' . fword("ny hendelse som crew", "nye hendelser som crew", login::$user->data['u_log_crew_new']) . '</a></p>';
        }
        if (!self::$locked) {
            echo '
			<div id="def_ui2">
				<p>' . login::$user->player->getRank()->getName() . '</p>
				<p><span class="farge">Sted: </span> <span id="status_bydel">' . game::$bydeler[login::$user->player->data['up_b_id']]['name'] . '</span></p>
				<p><span class="farge">Har ute</span> <span id="status_cash">' . game::format_cash(login::$user->player->data['up_cash']) . '</span></p>
				<p><span class="farge">Plassering: </span> nr. <span id="status_rankpos">' . login::$user->player->data['upr_rank_pos'] . '</span></p>
			</div>';
        }
        echo '
		</div>
	</div>
	<div id="default_left">';
        if (!login::$user->player->active) {
            echo '
		<div id="default_info_dead">
			<a href="' . ess::$s['relative_path'] . '/lock?f=player">' . (login::$user->player->data['up_deactivated_dead'] == 2 ? '
				<span>Din spiller blødde ihjel pga. lite energi.</span>' : (login::$user->player->data['up_deactivated_dead'] ? '
				<span>Din spiller har blitt drept.</span>' : '
				<span>Din spiller er deaktivert.</span>')) . '
				<span class="link">Ny spiller &raquo;</span>
			</a>
		</div>';
        }
        echo '
		<nav>' . kf_menu::build_menu() . '
		</nav>
	</div>';
        if (defined("DISABLE_RIGHT_COL")) {
            $content_right = '';
        } else {
            $content_right = ess::$b->page->generate_content_right();
            # self::$locked ..?
        }
        echo '
	<div id="default_main">';
        if ($content_right) {
            echo '
		<div id="default_right">' . $content_right . '</div>';
        }
        echo '
		<div id="default_content_wrap"' . (!$content_right ? ' class="noright"' : '') . '>' . self::get_status_bars() . '
			<section id="default_content">' . ess::$b->page->content . '</section>
		</div>
	</div>
	<div id="default_bottom_1">
		<p><a href="/">Kofradia</a> &copy; - Beskyttet av <a href="http://www.lovdata.no/all/nl-19610512-002.html" target="_blank">åndsverkloven</a> - Utviklet av <a href="http://www.henrist.net/" target="_blank">Henrik Steen</a></p>
		<p><a href="' . ess::$s['relative_path'] . '/betingelser">Betingelser for bruk</a> - Besøk <a href="irc://irc.quakenet.org/kofradia" target="_blank">#Kofradia</a> på QuakeNet<!-- <a href="' . ess::$s['relative_path'] . '/forum/topic?id=85">(Hjelp)</a>--> - <a href="' . ess::$s['relative_path'] . '/credits">Takk til</a></p>
	</div>
	<div id="default_bottom_2">';
        $profiler = \Kofradia\DB::getProfiler();
        echo '
		<p>Script: ' . round(microtime(true) - SCRIPT_START - $profiler->time, 4) . ' sek - Database: ' . round($profiler->time, 4) . ' sek (' . $profiler->num . ' spørring' . ($profiler->num == 1 ? '' : 'er') . ')<span id="js_time"></span></p>';
        $revision = self::get_revision_info();
        if ($revision) {
            echo '
		<p>Versjon <a href="https://github.com/hswno/kofradia/commit/' . $revision['commit'] . '" title="' . htmlspecialchars($revision['message']) . '">' . mb_substr($revision['commit'], 0, 8) . '</a> oppdatert ' . ess::$b->date->get($revision['date'])->format() . '. <a href="&rpath;/github">Logg</a></p>';
        } else {
            echo '
		<p>Versjonsinformasjon er utilgjengelig.</p>';
        }
        echo '
		<p>Tid og dato ved visning: <b>' . self::$date_now->format(date::FORMAT_SEC) . '</b>.</p>
	</div>' . ess::$b->page->body_end;
        // debug time
        /*$time = SCRIPT_START;
        		ess::$b->dt("end");
        		$dt = 'start';
        		foreach (ess::$b->time_debug as $row)
        		{
        			$dt .= ' -> '.round(($row[1]-$time)*1000, 2).' -> '.$row[0];
        			$time = $row[1];
        		}*/
        /*if (MAIN_SERVER)
        		{
        			$text = ess::$b->date->get()->format("Y-m-d\tH:i:s\t")."{$_SERVER['REMOTE_ADDR']}\t{$_SERVER['REQUEST_METHOD']}\t{$_SERVER['REQUEST_URI']}\t".login::$user->player->id."\t".login::$user->player->data['up_name']."\t".round(microtime(true)-SCRIPT_START-ess::$b->db->time, 4)."\t".round(ess::$b->db->time, 4)."\t".ess::$b->db->queries."\t".str_replace(" -> ", "\t", $dt)."\n"; 
        			@file_put_contents("/home/smafia/debugtime.log", $text, FILE_APPEND);
        		}*/
        /*echo '
        	<!-- '.$dt.' -->*/
        echo '
</body>
</html>';
    }
示例#13
0
    /** Behandle respons */
    public function handle_ret($id, $data = NULL)
    {
        switch ($id) {
            case self::RET_INFO_DELETED_OWN:
                echo '
<p class="info_box">Du viser en av dine egne meldinger som har blitt slettet.</p>';
                break;
            case self::RET_INFO_DELETED:
                echo '
<p class="info_box">Denne meldingen tilhører ikke deg.</p>';
                break;
            case self::RET_INFO_REPORTED:
                echo '
<p class="info_box">Du har tilgang til denne meldingstråden fordi den er eller har vært rapportert.</p>';
                break;
            case self::RET_ERROR_404:
                ess::$b->page->add_message("Fant ikke meldingstråden.", "error");
                redirect::handle("innboks");
                break;
            case self::RET_ERROR_CANNOT_REPLY:
                ess::$b->page->add_message("Du kan ikke svare på denne meldingstråden.", "error");
                redirect::handle();
                break;
            case self::RET_ERROR_NO_RECEIVERS:
                ess::$b->page->add_message("Det er ingen mottakere du kan sende svar til.", "error");
                redirect::handle();
                break;
            case self::RET_ERROR_BAN_CREW:
                ess::$b->page->add_message("Du er blokkert fra å sende meldinger til andre enn Crewet. Du kan kun ha én mottaker. Blokkeringen varer til " . ess::$b->date->get($data['ub_time_expire'])->format(date::FORMAT_SEC) . ".<br /><b>Begrunnelse:</b> " . game::format_data($data['ub_reason'], "bb-opt", "Ingen begrunnelse gitt."), "error");
                break;
            case self::RET_ERROR_BAN:
                ess::$b->page->add_message("Du er blokkert fra å sende meldinger til andre enn Crewet. Blokkeringen varer til " . ess::$b->date->get($data['ub_time_expire'])->format(date::FORMAT_SEC) . ".<br /><b>Begrunnelse:</b> " . game::format_data($data['ub_reason'], "bb-opt", "Ingen begrunnelse gitt."), "error");
                break;
            case self::RET_ERROR_BLOCKED:
                foreach ($data as &$row) {
                    $row = game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . (($reason = game::bb_to_html($row['uc_info'])) == "" ? "" : ' - begrunnelse: ' . $reason);
                }
                ess::$b->page->add_message("Du kan ikke svare på denne meldingstråden fordi følgende brukere har blokkert deg:<ul><li>" . implode("</li><li>", $data) . "</li></ul>", "error");
                break;
            case self::RET_INFO_BLOCKED:
                foreach ($data as &$row) {
                    $row = game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . (($reason = game::bb_to_html($row['uc_info'])) == "" ? "" : ' - begrunnelse: ' . $reason);
                }
                ess::$b->page->add_message("Følgende brukere har egentlig blokkert deg:<ul><li>" . implode("</li><li>", $data) . "</li></ul>");
                break;
            case self::RET_ERROR_WAIT:
                global $__server;
                ess::$b->page->add_message('Du må vente ' . game::counter($data) . ' før du kan sende en melding!', "error");
                putlog("LOG", "%c13%bMELDING FORSØK%b%c: %u" . login::$user->player->data['up_name'] . "%u forsøkte å svare på en melding til it_id {$this->id} (%u{$this->data_thread['it_title']}%u). Må vente {$data} sekunder. {$__server['path']}/innboks_les?id={$this->id}");
                break;
            case self::RET_ERROR_CONTENT_SHORT:
                ess::$b->page->add_message("Meldingen kan ikke inneholde færre enn 3 bokstaver/tall.", "error");
                break;
            case self::RET_ERROR_MARK_NO_REL:
                ess::$b->page->add_message("Du har ikke mulighet til å markere denne meldingstråden da du ikke er en deltaker i den.", "error");
                break;
            case self::RET_INFO_MARK_ALREADY:
                if ($this->data_rel['ir_marked']) {
                    ess::$b->page->add_message("Meldingstråden er allerede markert som merket.");
                } else {
                    ess::$b->page->add_message("Meldingstråden er ikke merket fra før.");
                }
                break;
            case self::RET_INFO_MARK_TRUE:
                ess::$b->page->add_message("Meldingstråden er nå markert for oppfølging.");
                break;
            case self::RET_INFO_MARK_FALSE:
                ess::$b->page->add_message("Meldingstråden er ikke lenger markert for oppfølging.");
                break;
            default:
                throw new HSException("Ukjent behandler.");
        }
    }
示例#14
0
    public static function format_data($data, $type = "bb", $args = null)
    {
        global $_base;
        switch ($type) {
            case "bb":
            case "signature":
                // bb kode
                return game::bb_to_html($data);
                // bb-kode eller egendefinert tekst hvis bb-kode er tom
            // bb-kode eller egendefinert tekst hvis bb-kode er tom
            case "bb-opt":
                $bb = trim(game::bb_to_html($data));
                if ($bb == "") {
                    return $args;
                }
                return $bb;
            case "music_pre":
                return preg_replace('~\\[music\\](https?://.+?)\\[/music\\]~ieu', 'game::music_add(\'$1\')', $data);
            case "music_post":
                return game::music_replace($data);
            case "profile":
                $data = game::format_data($data, "music_pre");
                // sett opp ranken
                $rank = game::rank_info($args->data['up_points'], $args->data['upr_rank_pos'], $args->data['up_access_level']);
                // diverse bb koder
                $data = str_replace(array("[counter]", "[visits]", "[visitor]", "[rank]", "[bank]", "[cash]", "[money]", "[renter]", "[pm_ulest]", "[pengerank]"), array('<img src="&rpath;/counter?count=' . $args->data['up_profile_hits'] . '" alt="Antall visninger: ' . $args->data['up_profile_hits'] . '" />', $args->data['up_profile_hits'], game::profile_link(), $rank['orig'] ? $rank['orig'] : $rank['name'], game::format_cash($args->data['up_bank']), game::format_cash($args->data['up_cash']), game::format_cash($args->data['up_cash'] + $args->data['up_bank']), game::format_cash($args->data['up_interest_last']), game::format_number($args->user->data['u_inbox_new']), game::cash_name($args->data['up_cash'] + $args->data['up_bank'])), game::bb_to_html($data));
                // rankbar
                $type = false;
                $match_rank = preg_match("~\\[rank_(neste_tid|neste_dato|tid|dato)\\]~iu", $data);
                if (preg_match("~\\[rankbar( type=(1|2))?\\]~iu", $data, $type) || $match_rank) {
                    // høyeste rank?
                    if ($rank['need_points'] == 0) {
                        global $_game;
                        $prosent = $args->data['up_points'] / game::$ranks['items_number'][count(game::$ranks['items_number'])]['points'] * 100;
                        $rankbar_total = '
<div class="progressbar">
	<div class="progress"><p>' . game::format_num($prosent, 3) . ' %</p></div>
</div>';
                        $rankbar_total2 = '
<div class="progressbar" style="margin-top: 1em">
	<div class="progress"><p>' . game::format_num($prosent, 3) . ' %</p></div>
</div>';
                        $data = str_replace(array("[rankbar]", "[rankbar type=1]", "[rankbar type=2]", "[rank_tid]", "[rank_dato]", "[rank_neste_tid]", "[rank_neste_dato]"), array($rankbar_total . $rankbar_total2, $rankbar_total, $rankbar_total, "Oppnådd", "Oppnådd", "Oppnådd", "Oppnådd"), $data);
                    } else {
                        // i forhold til den høyeste ranken
                        global $_game;
                        // antall poeng for den høyeste ranken
                        $points_max = game::$ranks['items'];
                        end($points_max);
                        $points_max = current($points_max);
                        $points_max = $points_max['points'];
                        // hvor langt ifra er vi?
                        $percent_total = round($args->data['up_points'] / $points_max, 2) * 100;
                        #if ($percent_total > 100) $percent_total = 100;
                        if ($percent_total == 0) {
                            $percent_total = 0.01;
                        }
                        $rankbar_total = '
<div class="progressbar">
	<div class="progress" style="width: ' . floor($percent_total) . '%"><p>' . game::format_num($percent_total, 2) . ' % i forhold til høyeste rank.</p></div>
</div>';
                        // i forhold til neste rank
                        $points_rank = $args->data['up_points'] - $rank['points'];
                        $percent = round($points_rank / $rank['need_points'] * 100, 2);
                        #if ($percent  )
                        $rankbar_next = '
<div class="progressbar">
	<div class="progress" style="width: ' . floor($percent) . '%"><p>' . game::format_num($percent, 2) . ' % i forhold til neste rank</p></div>
</div>';
                        $rankbar_next2 = '
<div class="progressbar" style="margin-top: 1em">
	<div class="progress" style="width: ' . floor($percent) . '%"><p>' . game::format_num($percent, 2) . ' % i forhold til neste rank</p></div>
</div>';
                        // fiks bb kodene
                        $data = str_replace(array("[rankbar]", "[rankbar type=1]", "[rankbar type=2]"), array($rankbar_total . $rankbar_next2, $rankbar_total, $rankbar_next), $data);
                        // beregn antatt tid det tar å nå høyeste rank
                        if ($match_rank) {
                            // hent ut aktiviteten de siste X dagene
                            $expire = ess::$b->date->get();
                            $expire->modify("-21 days");
                            $expire = max($args->data['up_created_time'], $expire->format("U"));
                            // maks tid: siste 21 dager eller siden reg (om registrert innen 30 dager)
                            $result = \Kofradia\DB::get()->query("SELECT SUM(uhi_points) FROM users_hits WHERE uhi_up_id = {$args->id} AND uhi_secs_hour >= {$expire}");
                            $points = (int) $result->fetchColumn(0);
                            if ($points == 0) {
                                $data = str_replace(array("[rank_tid]", "[rank_dato]", "[rank_neste_tid]", "[rank_neste_dato]"), array("ukjent", "ukjent", "ukjent", "ukjent"), $data);
                            } else {
                                // antall sekunder poengene skal fordeles på
                                $time_elapsed = time() - $expire;
                                // beregn til neste rank og erstatt BB-kode
                                $need = $rank['points'] + $rank['need_points'] - $args->data['up_points'];
                                $time_left = $need / $points * $time_elapsed;
                                if ($time_left > 63072000) {
                                    $text_left = "over 2 år";
                                    $text_date = "om over 2 år";
                                } else {
                                    $text_left = game::timespan($time_left);
                                    $text_date = ess::$b->date->get($time_left + time())->format(date::FORMAT_NOTIME);
                                }
                                $data = str_replace(array("[rank_neste_tid]", "[rank_neste_dato]"), array($text_left, $text_date), $data);
                                // beregn til øverste rank og erstatt BB-kode
                                $need = $points_max - $args->data['up_points'];
                                $time_left = $need / $points * $time_elapsed;
                                if ($time_left > 63072000) {
                                    $text_left = "over 2 år";
                                    $text_date = "om over 2 år";
                                } else {
                                    $text_left = game::timespan($time_left);
                                    $text_date = ess::$b->date->get($time_left + time())->format(date::FORMAT_NOTIME);
                                }
                                $data = str_replace(array("[rank_tid]", "[rank_dato]"), array($text_left, $text_date), $data);
                            }
                        }
                    }
                }
                // kontaktliste?
                if (mb_strpos($data, "[kontakter]") !== false) {
                    // hent kontaktliste
                    $result = \Kofradia\DB::get()->query("SELECT uc_contact_up_id, up_name, up_access_level, up_last_online FROM users_contacts LEFT JOIN users_players ON uc_contact_up_id = up_id WHERE uc_u_id = {$args->data['up_u_id']} AND uc_type = 1 ORDER BY up_name");
                    $html = '
<table class="table l tablem">
	<thead>
		<tr>
			<th>Spiller</th>
			<th>Sist pålogget</th>
		</tr>
	</thead>
	<tbody>';
                    while ($row = $result->fetch()) {
                        $html .= '
		<tr>
			<td>' . game::profile_link($row['uc_contact_up_id'], $row['up_name'], $row['up_access_level']) . '</td>
			<td class="r">' . game::timespan($row['up_last_online'], game::TIME_ABS) . '</td>
		</tr>';
                    }
                    $html .= '
	</tbody>
</table>';
                    // sett inn som bb kode
                    $data = str_replace("[kontakter]", $html, $data);
                }
                // blokkeringliste?
                if (mb_strpos($data, "[blokkert]") !== false) {
                    // hent blokkeringliste
                    $result = \Kofradia\DB::get()->query("SELECT uc_contact_up_id, up_name, up_access_level, up_last_online FROM users_contacts LEFT JOIN users_players ON uc_contact_up_id = up_id WHERE uc_u_id = {$args->data['up_u_id']} AND uc_type = 2 ORDER BY up_name");
                    $html = '
<table class="table l tablem">
	<thead>
		<tr>
			<th>Spiller</th>
			<th>Sist pålogget</th>
		</tr>
	</thead>
	<tbody>';
                    while ($row = $result->fetch()) {
                        $html .= '
		<tr>
			<td>' . game::profile_link($row['uc_contact_up_id'], $row['up_name'], $row['up_access_level']) . '</td>
			<td class="r">' . game::timespan($row['up_last_online'], game::TIME_ABS) . '</td>
		</tr>';
                    }
                    $html .= '
	</thead>
</table>';
                    // sett inn som bb kode
                    $data = str_replace("[blokkert]", $html, $data);
                }
                return game::format_data($data, "music_post");
            default:
                // ukjent!
                throw new HSException("Ukjent type ({$type})");
        }
        return false;
    }
示例#15
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);
    }
示例#16
0
    /**
     * Vis fengsel
     */
    protected function show()
    {
        // er vi i fengsel nå?
        if ($wait = $this->up->fengsel_wait()) {
            ess::$b->page->add_js_domready('$("fengsel_dusor").focus();');
            echo '
<div class="bg1_c xsmall">
	<h1 class="bg1">Du er i fengsel<span class="left"></span><span class="right"></span></h1>
	<p class="h_right"><a href="node/16">Hjelp</a></p>
	<div class="bg1">
		<p>Du befinner deg for øyeblikket i fengsel og slipper ut om ' . game::counter($wait, true) . '.</p>' . (!$this->up->is_nostat() ? '
		<form action="" method="post">
			<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
			<input type="hidden" name="expire" value="' . $this->up->data['up_fengsel_time'] . '" />
			<dl class="dd_right">
				<dt>Dusør for å bryte deg ut</dt>
				<dd><input type="text" class="styled w80" name="amount" id="fengsel_dusor" value="' . game::format_cash($this->up->data['up_fengsel_dusor']) . '" /></dd>
			</dl>
			<p class="c">' . show_sbutton($this->up->data['up_fengsel_dusor'] > 0 ? "Endre dusør" : "Sett dusør", 'name="dusor"') . '</p>
			<p class="c">Spilleren som bryter ut mottar kun ' . self::DUSOR_PROFIT * 100 . ' % av dusøren.</p>
		</form>' : '') . '
	</div>
</div>';
        }
        // sortering
        $sort = new sorts("sort");
        $sort->append("asc", "Spiller", "up_name");
        $sort->append("desc", "Spiller", "up_name DESC");
        $sort->append("asc", "Wanted nivå", "up_wanted_level, up_fengsel_time DESC");
        $sort->append("desc", "Wanted nivå", "up_wanted_level DESC, up_fengsel_time DESC");
        $sort->append("asc", "Tid igjen", "up_fengsel_time");
        $sort->append("desc", "Tid igjen", "up_fengsel_time DESC");
        $sort->set_active(requestval("sort"), 5);
        // hent folk i fengsel
        $sort_info = $sort->active();
        $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 15);
        $result = $pagei->query("\n\t\t\tSELECT up_id, up_name, up_access_level, up_fengsel_time, up_fengsel_num, up_fengsel_dusor, ROUND(up_fengsel_dusor * " . self::DUSOR_PROFIT . ") up_fengsel_dusor_get, up_wanted_level\n\t\t\tFROM users_players\n\t\t\tWHERE up_fengsel_time > " . time() . " AND up_access_level != 0\n\t\t\tORDER BY {$sort_info['params']}");
        $num = $result->rowCount();
        echo '
<div class="bg1_c ' . ($num == 0 ? 'xsmall' : 'xlarge') . '">
	<h1 class="bg1">Fengsel<span class="left"></span><span class="right"></span></h1>
	<p class="h_right"><a href="node/16">Hjelp</a></p>
	<div class="bg1">
		<form action="" method="post">
			<p class="c dark">Ditt wanted nivå er på ' . game::format_number($this->up->data['up_wanted_level'] / 10, 1) . ' %.</p>';
        if ($num == 0) {
            echo '
			<p class="c dark">Ingen er i fengselet for øyeblikket.</p>
			<p class="c"><a href="' . htmlspecialchars(game::address("fengsel", $_GET)) . '" class="button">Oppdater</a></p>';
        } else {
            echo '
			<table class="table center" width="100%">
				<thead>
					<tr>
						<th>Spiller ' . $sort->show_link(0, 1) . '</th>
						<th>Wanted<br />nivå ' . $sort->show_link(2, 3) . '</th>
						<th>Utbrytning<br />sannsynlighet</th>
						<th>Ca. poeng</th>
						<th>Dusør</th>
						<th>Tid igjen ' . $sort->show_link(4, 5) . '</th>
					</tr>
				</thead>
				<tbody>';
            $i = 0;
            while ($row = $result->fetch()) {
                $prefix = "";
                $attr = new attr("class");
                if (++$i % 2 == 0) {
                    $attr->add("color");
                }
                if (!$this->up->fengsel_check()) {
                    $attr->add("box_handle");
                    $prefix = '<input type="radio" name="up_id" value="' . $row['up_id'] . '_' . $row['up_fengsel_time'] . '_' . $row['up_fengsel_dusor'] . '" /> ';
                }
                $time = $row['up_fengsel_time'] - time();
                $prob = self::calc_prob($time, $row['up_wanted_level'] / 10);
                $points = self::calc_points($prob);
                echo '
					<tr' . $attr->build() . '>
						<td>' . $prefix . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td>
						<td class="c">' . game::format_number($row['up_wanted_level'] / 10, 1) . ' %</td>
						<td class="c">' . game::format_number($prob, 1) . ' %</td>
						<td class="c">' . game::format_num($points) . '</td>
						<td class="r nowrap">' . game::format_cash($row['up_fengsel_dusor_get']) . '</td>
						<td class="r">' . game::counter($time) . '</td>
					</tr>';
            }
            echo '
				</tbody>
			</table>
			<p class="c">' . (($wait = $this->up->fengsel_wait()) == 0 ? '
				' . show_sbutton("Bryt ut", 'name="brytut"') : '
				Du er i fengsel og slipper ut om ' . game::counter($wait, true) . '.
			</p>
			<p class="c">') . '
				<a href="' . htmlspecialchars(game::address("fengsel", $_GET)) . '" class="button">Oppdater</a>
			</p>';
            // flere sider?
            if ($pagei->pages > 1) {
                echo '
			<div class="hr"></div>
			<p class="c">
				' . $pagei->pagenumbers() . '
			</p>';
            }
        }
        echo '
		</form>
	</div>
</div>';
        // testing
        if (!MAIN_SERVER || access::is_nostat() && access::has("mod")) {
            echo '
<div class="bg1_c xxsmall bg1_padding">
	<h1 class="bg1">' . (MAIN_SERVER ? 'No-stat' : 'Testing') . '<span class="left"></span><span class="right"></span></h1>
	<div class="bg1">
		<form action="" method="post">' . ($this->up->fengsel_check() ? '
			<p class="c">' . show_sbutton("Gå ut av fengsel", 'name="remove"') . '</p>' : '
			<dl class="dd_right dl_2x">
				<dt>Tid</dt>
				<dd><input type="text" name="time" value="' . htmlspecialchars(postval("time", 20)) . '" class="styled w40" /> sekunder</dd>
			</dl>
			<p class="c">' . show_sbutton("Gå inn i fensgel") . '</p>') . '
		</form>
	</div>
</div>';
        }
    }
示例#17
0
			box.setStyle(p, s);
		}
	};
	fn();
	img.addEvent("load", fn);
})();
</script>';
    die;
}
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>
<playerinfo>
	<up_id>' . $player['up_id'] . '</up_id>
	<url>' . htmlspecialchars($__server['relative_path'] . "/p/" . rawurlencode($player['up_name']) . "/" . $player['up_id']) . '</url>
	<up_name>' . htmlspecialchars($player['up_name']) . '</up_name>
	<up_name_display>' . htmlspecialchars(game::profile_link($player['up_id'], $player['up_name'], $player['up_access_level'])) . '</up_name_display>
	<status>' . htmlspecialchars($status) . '</status>
	<reg_time_abs>' . htmlspecialchars($_base->date->get($player['up_created_time'])->format(date::FORMAT_SEC)) . '</reg_time_abs>
	<reg_time_rel>' . htmlspecialchars(game::timespan($player['up_created_time'], game::TIME_ABS)) . '</reg_time_rel>
	<last_online_abs>' . htmlspecialchars($_base->date->get($player['up_last_online'])->format(date::FORMAT_SEC)) . '</last_online_abs>
	<last_online_rel>' . htmlspecialchars(game::timespan($player['up_last_online'], game::TIME_ABS)) . '</last_online_rel>
	<activated>' . htmlspecialchars($player['up_access_level'] == 0 ? 0 : 1) . '</activated>
	<profile_image>' . htmlspecialchars($profile_image) . '</profile_image>
	<rank_name>' . htmlspecialchars($rank['name'] . ($rank['orig'] ? ' (' . $rank['orig'] . ')' : '')) . '</rank_name>';
// moderator stæsj
if ($mod) {
    echo '
	<ip>' . $player['u_online_ip'] . '</ip>
	<email>' . htmlspecialchars($player['u_email']) . '</email>
	<hits>' . $player['up_hits'] . '</hits>
	<money>' . game::format_cash($player['money']) . '</money>';
示例#18
0
    /**
     * Kaste ut en spiller
     */
    protected function kick_handle()
    {
        // valider sid
        validate_sid();
        // kan vi ikke kaste ut noen spillere nå?
        if (login::$user->player->fengsel_check() || login::$user->player->bomberom_check() || login::$user->player->data['up_b_id'] != $this->ff->data['br_b_id'] || !$this->kick_hour_ok) {
            redirect::handle();
        }
        // mangler spillervalg?
        if (!isset($_POST['player'])) {
            ess::$b->page->add_message("Du må velge en spiller du vil kaste ut.", "error");
            redirect::handle();
        }
        // er ikke spilleren i bomberommet?
        $up_id = (int) $_POST['player'];
        $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT u_email, up_id, up_name, up_access_level, up_brom_expire\n\t\t\tFROM users_players JOIN users ON up_u_id = u_id\n\t\t\tWHERE up_id = {$up_id} AND up_brom_ff_id = {$this->ff->id} AND up_brom_expire > " . time() . " AND up_access_level != 0");
        $cost = $this->fam ? self::KICK_PLAYER_COST_FAMILIE : self::KICK_PLAYER_COST;
        $up = $result->fetch();
        if (!$up) {
            ess::$b->page->add_message("Fant ikke spilleren.", "error");
            redirect::handle();
        }
        // sett opp skjema
        $form = \Kofradia\Form::getByDomain("other", login::$user);
        // har vi bekreftet ønsket om å kaste ut en spiller?
        if (isset($_POST['confirm']) && $form->validateHashOrAlert(null, "Kast ut spiller fra bomberom")) {
            \Kofradia\DB::get()->beginTransaction();
            // forsøk å trekk fra pengene
            if (!$this->ff->bank(ff::BANK_BETALING, $cost, "Kaste ut spilleren [user id={$up['up_id']}] fra bomberommet")) {
                ess::$b->page->add_message("Det er ikke nok penger i " . ($this->fam ? "broderskapbanken" : "firmabanken") . ".", "error");
                \Kofradia\DB::get()->commit();
            } else {
                // finn en tilfeldig bydel å plassere spilleren
                $result = \Kofradia\DB::get()->query("SELECT id, name FROM bydeler WHERE active != 0 ORDER BY RAND() LIMIT 1");
                $b_id = $result->fetchColumn(0);
                // forsøk å trekk ut spilleren fra bomberommet
                $a = \Kofradia\DB::get()->exec("\n\t\t\t\t\tUPDATE users_players\n\t\t\t\t\tSET up_brom_expire = 0, up_b_id = {$b_id}\n\t\t\t\t\tWHERE up_id = {$up['up_id']} AND up_brom_ff_id = {$this->ff->id} AND up_brom_expire = {$up['up_brom_expire']} AND up_access_level != 0");
                // feilet?
                if ($a == 0) {
                    // avbryt transaksjon
                    \Kofradia\DB::get()->rollback();
                    ess::$b->page->add_message("Kunne ikke kaste ut spilleren fra bomberommet.", "error");
                } else {
                    // legg til hendelse hos spilleren
                    player::add_log_static("bomberom_kicked", login::$user->player->id . ":" . urlencode($this->ff->data['ff_name']) . ":{$up['up_brom_expire']}", $this->ff->id, $up['up_id']);
                    // send e-post til spilleren
                    $email = new email();
                    $email->text = 'Hei,

Din spiller ble kastet ut fra bomberommet av ' . ($this->fam ? 'broderskapet' : 'firmaet') . ' som styrer bomberommet.

--
www.kofradia.no';
                    $email->send($up['u_email'], "Kastet ut av bomberom");
                    // firmalogg
                    $this->ff->add_log("bomberom_kick", login::$user->player->id . ":{$up['up_id']}:{$up['up_brom_expire']}");
                    // logg
                    putlog("DF", "BOMBEROM: {$up['up_name']} ble kastet ut av bomberommet {$this->ff->data['ff_name']} av " . login::$user->player->data['up_name'] . " " . ess::$s['spath'] . "/min_side?up_id={$up['up_id']}");
                    ess::$b->page->add_message('Du kastet ut <user id="' . $up['up_id'] . '" /> fra bomberommet. ' . ($this->fam ? 'Broderskapet' : 'Firmaet') . ' betalte et gebyr på ' . game::format_cash($cost) . '.');
                    \Kofradia\DB::get()->commit();
                    redirect::handle();
                }
            }
        }
        ess::$b->page->add_title("Kaste ut spiller");
        // vis informasjon
        echo '
<div class="bg1_c xsmall">
	<h1 class="bg1">Kaste ut spiller fra bomberommet<span class="left2"></span><span class="right2"></span></h1>
	<div class="bg1">
		<p>Du er i ferd med å kaste ut ' . game::profile_link($up['up_id'], $up['up_name'], $up['up_access_level']) . ' fra bomberommet.</p>
		<p>Spilleren skal i utgangspunktet sitte i bomberommet til ' . ess::$b->date->get($up['up_brom_expire'])->format(date::FORMAT_SEC) . ' (' . game::counter($up['up_brom_expire'] - time()) . ' gjenstår).</p>
		<p>For å kaste ut spilleren må det betales en avgift på <b>' . game::format_cash($cost) . '</b> som betales fra ' . ($this->fam ? 'broderskapkontoen' : 'firmakontoen') . '.</p>';
        // har vi ikke nok penger i firmakontoen?
        if ($this->ff->data['ff_bank'] < $cost) {
            echo '
		<p>' . ($this->fam ? 'Broderskapet' : 'Firmaet') . ' har for øyeblikket kun ' . game::format_cash($this->ff->data['ff_bank']) . ' på konto, noe som ikke er nok. ' . ($this->ff->access(1) ? '<a href="' . ess::$s['relative_path'] . '/ff/banken?ff_id=' . $this->ff->id . '">Sett inn penger på ' . ($this->fam ? 'broderskapkontoen' : 'firmakontoen') . '</a>' : '<a href="' . ess::$s['relative_path'] . '/ff/panel?ff_id=' . $this->ff->id . '">Donér til ' . ($this->fam ? 'broderskapet' : 'firmaet') . '</a>') . ' først for å kunne kaste ut spilleren.</p>
		<p class="c"><a href="bomberom?ff_id=' . $this->ff->id . '">Tilbake</a></p>';
        } else {
            echo '
		<p>' . ($this->fam ? 'Broderskapet' : 'Firmaet') . ' har for øyeblikket ' . game::format_cash($this->ff->data['ff_bank']) . ' på konto.</p>
		<form action="" method="post">
			' . $form->getHTMLInput() . '
			<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
			<input type="hidden" name="player" value="' . $up['up_id'] . '" />
			<input type="hidden" name="kick" />
			<p class="c">' . show_sbutton("Bekreft, kast ut spilleren", 'name="confirm"') . ' <a href="bomberom?ff_id=' . $this->ff->id . '">Avbryt</a></p>
		</form>';
        }
        echo '
	</div>
</div>';
        $this->ff->load_page();
    }
示例#19
0
<?php

require "base.php";
global $_base;
$_base->page->add_title("Lotto", "Vinn");
// hvem skal vi vise oversikten over?
$up_id = login::$user->player->id;
if (isset($_GET['up_id']) && access::has("mod")) {
    $find = (int) getval("up_id");
    $result = \Kofradia\DB::get()->query("SELECT up_id, up_name, up_access_level FROM users_players WHERE up_id = {$find}");
    if ($result->rowCount() == 0) {
        $_base->page->add_message("Fant ingen spiller med ID <b>" . htmlspecialchars($_GET['up_id']) . "</b>!", "error");
    } else {
        $row = $result->fetch();
        $up_id = $row['up_id'];
        $_base->page->add_message("Du viser lottoresultatene for spilleren " . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . "!");
    }
}
echo '
<div class="bg1_c medium">
	<h1 class="bg1">Lotto: Historie<span class="left"></span><span class="right"></span></h1>
	<p class="h_left"><a href="lotto">&laquo; Tilbake</a></p>
	<div class="bg1">
		<p class="c">Her er en oversikt over alle gangene du har vunnet på lotto!</p>';
// antall vinn og totalt vunnet
$result = \Kofradia\DB::get()->query("SELECT COUNT(id), SUM(won) FROM lotto_vinnere WHERE lv_up_id = {$up_id}");
$row = $result->fetch(\PDO::FETCH_NUM);
$ant = $row[0];
$won = $row[1];
if ($ant == 0) {
    echo '
示例#20
0
    /**
     * Plukk ut en parent
     * @param array $priority
     * @param array $members spillerene som skal flyttes
     * @param array $player (enten $member eller $player må sendes med, den andre null)
     * @param string $back_link (skal være html safe)
     */
    protected function pick_parent($priority, $members = null, $player, $back_link, $form_html = null, $invite = false)
    {
        // ikke pri4 eller parent aktivert?
        if ($priority['priority'] != 4 || !$this->ff->type['parent']) {
            return null;
        }
        $parent = null;
        // har vi valgt pri3?
        if (isset($_POST['parent'])) {
            $ok = true;
            // gyldig pri3?
            $pri3_id = (int) $_POST['parent'];
            if (!isset($this->ff->members['members_priority'][3][$pri3_id])) {
                ess::$b->page->add_message("Fant ikke valgt {$this->ff->type['priority'][3]}.", "error");
                $ok = false;
            }
            // kontroller at det er en gyldig pri3 og om ingen parents endret?
            if ($ok && $members) {
                $changed = false;
                foreach ($members as $member) {
                    if (!$changed && ($priority['priority'] != $member->data['ffm_priority'] || $pri3_id != $member->data['ffm_parent_up_id'])) {
                        $changed = true;
                    }
                    // seg selv?
                    if ($member->id == $pri3_id) {
                        ess::$b->page->add_message("Du kan ikke velge en spiller du skal flytte.", "error");
                        $ok = false;
                        break;
                    }
                }
                if (!$changed) {
                    ess::$b->page->add_message(fword("Medlemmet", "Medlemmene", count($members)) . " er allerede underordnet denne {$this->ff->type['priority'][3]}.", "error");
                    $ok = false;
                }
            }
            if ($ok) {
                return $pri3_id;
            }
        }
        // vis oversikt over pri3 man kan velge mellom
        ess::$b->page->add_title("Velg overordnet {$this->ff->type['priority'][3]}");
        $text = "";
        $up_ids = array();
        if (!$members || count($members) == 1) {
            $member = $members ? $members[0] : null;
            $up_ids[] = $member ? $member->id : $player['up_id'];
            $text = '
		<p>Du må velge en ' . $this->ff->type['priority'][3] . ' som skal være overordnet for ' . ($member ? game::profile_link($member->id, $member->data['up_name'], $member->data['up_access_level']) : game::profile_link($player['up_id'], $player['up_name'], $player['up_access_level'])) . ' som vil ' . ($invite ? 'invitert' : 'få posisjonen') . ' som ' . $this->ff->type['priority'][4] . '.' . ($member ? ' (Nåværende posisjon: ' . ucfirst($member->get_priority_name()) . ($member->data['ffm_parent_up_id'] ? ' underordnet <user id="' . $member->data['ffm_parent_up_id'] . '" />' : '') . ')' : '') . '</p>';
        } else {
            $list = array();
            foreach ($members as $member) {
                $up_ids[] = $member->id;
                $list[] = '<li><user id="' . $member->id . '" /> (' . $member->get_priority_name() . ($member->data['ffm_parent_up_id'] ? ' underordnet <user id="' . $member->data['ffm_parent_up_id'] . '" />' : '') . ')</li>';
            }
            $text = '
		<p>Du må velge en ' . $this->ff->type['priority'][3] . ' som skal være overordnet for følgende spillere:</p>
		<ul>' . implode("", $list) . '</ul>';
        }
        echo '
<div class="section" style="width: 400px">
	<h1>Velg overordnet ' . $this->ff->type['priority'][3] . '</h1>
	<p class="h_right"><a href="' . $back_link . '">Tilbake</a></p>
	<boxes />
	<form action="" method="post">' . $form_html . '
		<input type="hidden" name="up_id' . ($members ? 's' : '') . '" value="' . ($members ? implode(",", $up_ids) : $player['up_id']) . '" />
		<input type="hidden" name="priority" value="' . $priority['priority'] . '" />' . $text . '
		<table class="table center">
			<thead>
				<tr>
					<th>' . ucfirst($this->ff->type['priority'][3]) . '</th>
					<th>Sist pålogget</th>
					<th>' . ucfirst($this->ff->type['priority'][4]) . '</th>
					<th>Inviterte ' . $this->ff->type['priority'][4] . '</th>
				</tr>
			</thead>
			<tbody>';
        $i = 0;
        foreach ($this->ff->members['members_priority'][3] as $member_parent) {
            if ($members && in_array($member_parent->id, $up_ids)) {
                continue;
            }
            echo '
				<tr class="box_handle' . (++$i % 2 == 0 ? ' color' : '') . '">
					<td><input type="radio" name="parent" value="' . $member_parent->id . '" /> ' . game::profile_link($member_parent->id, $member_parent->data['up_name'], $member_parent->data['up_access_level']) . '</td>
					<td class="r">' . ess::$b->date->get($member_parent->data['up_last_online'])->format() . '</td>
					<td class="r">' . (isset($this->ff->members['members_parent'][$member_parent->id]) ? count($this->ff->members['members_parent'][$member_parent->id]) : 0) . '</td>
					<td class="r">' . (isset($this->ff->members['invited_parent'][$member_parent->id]) ? count($this->ff->members['invited_parent'][$member_parent->id]) : 0) . '</td>
				</tr>';
        }
        echo '
			</tbody>
		</table>
		<p class="c">
			' . show_sbutton("Velg {$this->ff->type['priority'][3]}") . '
			<a href="' . $back_link . '">Tilbake</a>
		</p>
	</form>
</div>';
        $this->ff->load_page();
    }
示例#21
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>';
    }
示例#22
0
文件: ip.php 项目: Kuzat/kofradia
		</tr>';
        $count = count($row);
        echo '
		<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
			<td rowspan="' . $count . '" valign="top"><a href="finn?ip=' . urlencode($row[0]['u_online_ip']) . '">' . htmlspecialchars($row[0]['u_online_ip']) . '</a><br />(' . $count . ' ' . fword("bruker", "brukere", $count) . ')</td>';
        $e = 0;
        foreach ($row as $player) {
            // ny rad?
            if (++$e > 1) {
                echo '
		</tr>
		<tr' . ($i % 2 == 0 ? ' class="color"' : '') . '>';
            }
            $birth = explode("-", $player['u_birth']);
            echo '
			<td>' . game::profile_link($player['up_id'], $player['up_name'], $player['up_access_level']) . '</td>
			<td><a href="finn?email=' . urlencode($player['u_email']) . '">' . htmlspecialchars($player['u_email']) . '</a></td>
			<td>' . $_base->date->get($player['up_created_time'])->format(date::FORMAT_SEC) . '</td>
			<td>' . $_base->date->get($player['up_last_online'])->format(date::FORMAT_SEC) . '</td>
			<td class="r">' . game::timespan($player['up_last_online'], game::TIME_ABS | game::TIME_SHORT | game::TIME_NOBOLD) . '</td>
			<td class="r">' . game::format_number($player['up_hits']) . '</td>
			<td class="r">' . game::format_number($player['up_points']) . '</td>
			<td class="r">' . game::format_cash($player['money']) . '</td>
			<td class="r">' . (empty($player['u_birth']) || $player['u_birth'] == "0000-00-00" ? 'Ikke registrert' : intval($birth[2]) . ". " . $_lang['months'][intval($birth[1])] . " " . $birth[0]) . '</td>';
        }
        echo '
		</tr>';
    }
    echo '
	</tbody>
</table>';
示例#23
0
    /**
     * Rankplassering siden kl 21
     */
    protected static function page_rank_pos()
    {
        // finn vår plassering for ranking siden forrige rankperiode startet
        $d = ess::$b->date->get();
        if ($d->format("H") < 21) {
            $d->modify("-1 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 5\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");
        $players = array();
        $up_list = array();
        $in_list = false;
        $pos = null;
        while ($row = $result->fetch()) {
            $players[] = $row;
            $up_list[] = $row['up_id'];
            if ($row['up_id'] == page_min_side::$active_player->id) {
                $in_list = true;
            }
        }
        // er vi ikke i lista?
        if (!$in_list) {
            // hvor mange poeng har vi fått?
            $result = \Kofradia\DB::get()->query("\n\t\t\t\tSELECT SUM(uhi_points) sum_uhi_points\n\t\t\t\tFROM users_hits\n\t\t\t\tWHERE uhi_up_id = " . page_min_side::$active_player->id . " AND uhi_secs_hour >= {$date_from} AND uhi_secs_hour < {$date_to}");
            $points = $result->fetchColumn(0);
            if ($points > 0) {
                // finn plasseringen vår
                $result = \Kofradia\DB::get()->query("\n\t\t\t\t\tSELECT COUNT(uhi_up_id) FROM (\n\t\t\t\t\t\tSELECT uhi_up_id, SUM(uhi_points) sum_uhi_points\n\t\t\t\t\t\tFROM users_hits\n\t\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\t\tWHERE uhi_secs_hour >= {$date_from} AND uhi_secs_hour < {$date_to}\n\t\t\t\t\t\tGROUP BY uhi_up_id\n\t\t\t\t\t\tHAVING sum_uhi_points > {$points}\n\t\t\t\t\t) ref");
                $pos = $result->fetchColumn(0) + 1;
            }
        }
        echo '
	<div class="bg1_c">
		<h1 class="bg1">Rankplassering siste periode<span class="left2"></span><span class="right2"></span></h1>
		<div class="bg1">
			<p>Statistikk gjelder fra kl 21.</p>';
        if (count($players) == 0) {
            echo '
			<p>Ingen har ranket i denne perioden.</p>';
        } else {
            echo '
			<ol>';
            foreach ($players as $row) {
                $me = $row['up_id'] == page_min_side::$active_player->id ? " (meg)" : "";
                echo '
				<li>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . $me . '</li>';
            }
            echo '
			</ol>';
            if (!$in_list && !$pos) {
                echo '
			<p>Du har ikke ranket i perioden og har ingen plassering.</p>';
            } elseif ($pos) {
                echo '
			<p>Din plassering: ' . game::format_num($pos) . '</p>';
            }
        }
        echo '
		</div>
	</div>';
    }
示例#24
0
文件: banken.php 项目: Kuzat/kofradia
    /**
     * Vis banken
     */
    protected function show()
    {
        ess::$b->page->add_js('
var user_bank = ' . js_encode(game::format_cash($this->up->data['up_bank'])) . ';
var user_cash = ' . js_encode(game::format_cash($this->up->data['up_cash'])) . ';');
        ess::$b->page->add_js_domready('
	$$(".bank_amount_set").each(function(elm)
	{
		var amount = elm.get("rel").substring(0, 4) == "bank" ? user_bank : user_cash;
		var e_id = elm.get("rel").substring(5);
		elm
			.appendText(" (")
			.grab(new Element("a", {"text":"alt"}).addEvent("click", function()
			{
				$(e_id).set("value", amount);
			}))
			.appendText(")");
	});');
        echo '
<div class="bg1_c small" style="width: 420px">
	<h1 class="bg1">
		Banken
		<span class="left"></span><span class="right"></span>
	</h1>
	<p class="h_left">
		<a href="' . ess::$s['rpath'] . '/node/31">Hjelp</a>
	</p>
	<p class="h_right">' . (!isset(login::$extended_access['authed']) ? '
		<a href="banken?logout">Logg ut av banken</a>' : '') . '
		<a href="banken?authc">Endre pass</a>
	</p>
	<div class="bg1" style="padding: 0 15px">
		<!-- bankkonto informasjon -->
		<div style="width: 50%; margin-left: -5px; float: left">
			<h2 class="bg1">Bankkonto informasjon<span class="left2"></span><span class="right2"></span></h2>
			<div class="bg1">
				<dl class="dd_right">
					<dt>Kontoeier</dt>
					<dd>' . game::profile_link() . '</dd>
					<dt>Bankfirma</dt>
					<dd><a href="ff/?ff_id=' . $this->bank->id . '">' . htmlspecialchars($this->bank->data['ff_name']) . '</a></dd>
					<dt><abbr title="Overføringstap">Overf.tap</abbr></dt>
					<dd>' . $this->bank->overforingstap * 100 . ' %</dd>
					<dt>Plassering</dt>
					<dd>' . (!isset(game::$bydeler[$this->bank->data['br_b_id']]) ? '<span style="color: #777777">Ukjent</span>' : htmlspecialchars(game::$bydeler[$this->bank->data['br_b_id']]['name'])) . '</dd>
					<dt>Balanse</dt>
					<dd>' . game::format_cash($this->up->data['up_bank']) . '</dd>
				</dl>
				<p class="c">
					<a href="javascript:void(0)" onclick="this.parentNode.style.display=\'none\'; document.getElementById(\'bank_stats\').style.display=\'block\'">Vis statistikk</a>
				</p>
				<div id="bank_stats" style="display: none">
					<dl class="dd_right">
						<dt>Sendt</dt>
						<dd>' . game::format_number($this->up->data['up_bank_num_sent']) . ' stk</dd>
						<dd>' . game::format_cash($this->up->data['up_bank_sent']) . '</dd>
					</dl>
					<dl class="dd_right">
						<dt>Mottatt</dt>
						<dd>' . game::format_number($this->up->data['up_bank_num_received']) . ' stk</dd>
						<dd>' . game::format_cash($this->up->data['up_bank_received']) . '</dd>
					</dl>
					<dl class="dd_right">
						<dt>Overskudd</dt>
						<dd>' . game::format_cash($this->up->data['up_bank_profit']) . '</dd>
					</dl>
					<dl class="dd_right">
						<dt><abbr title="Overføringstap">Overf.tap</abbr></dt>
						<dd>' . game::format_cash($this->up->data['up_bank_charge']) . '</dd>
					</dl>
					<dl class="dd_right">
						<dt>Renter</dt>
						<dd>' . game::format_number($this->up->data['up_interest_num']) . ' stk</dd>
						<dd>' . game::format_cash($this->up->data['up_interest_total']) . '</dd>
					</dl>
				</div>
				<form action="" method="post">
					<p class="c">' . show_sbutton("Bytt bank", 'name="switch"') . '</p>
				</form>
			</div>
		</div>
		
		<!-- send penger -->
		<div style="width: 50%; margin-right: -5px; float: right">
			<h2 class="bg1">Send penger<span class="left2"></span><span class="right2"></span></h2>
			<div class="bg1">
				<form action="" method="post">
					<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
					<input type="hidden" name="a" value="send" />
					<dl class="dd_right dl_2x">
						<dt>Mottaker</dt>
						<dd><input type="text" name="mottaker" value="' . htmlspecialchars(postval("mottaker")) . '" class="styled w100" /></dd>
		
						<dt>Kontakt?</dt>
						<dd>
							<select onchange="if(this.value==\'\')var name=prompt(\'Brukernavn?\');else var name=this.value;if(name)document.getElementsByName(\'mottaker\')[0].value=name;this.selectedIndex=0" style="width: 110px; overflow: hidden">
								<option>Velg kontakt</option>';
        foreach (login::$info['contacts'][1] as $row) {
            echo '
								<option value="' . htmlspecialchars($row['up_name']) . '">' . htmlspecialchars($row['up_name']) . '</option>';
        }
        echo '
								<option value="">Egendefinert..</option>
							</select>
						</dd>
		
						<dt class="bank_amount_set" rel="bank,transf_amount">Beløp</dt>
						<dd><input type="text" id="transf_amount" name="amount" class="styled w100" value="' . game::format_cash(postval("amount", 0)) . '" /></dd>
		
						<dt>Melding?</dt>
						<dd><input type="text" name="note" value="' . htmlspecialchars(postval("note")) . '" class="styled w100" maxlength="100" /></dd>';
        // hoppe over overføringsgebyret?
        if (access::is_nostat()) {
            echo '
						<dt>Uten gebyr?</dt>
						<dd><input type="checkbox" name="skip_bog"' . (isset($_POST['skip_bog']) ? ' checked="checked"' : '') . ' /></dd>';
        }
        echo '
					</dl>
					<p class="c">' . show_sbutton("Fortsett") . '</p>
				</form>
			</div>
		</div>
		<div class="clear"></div>
		
		<!-- sett inn penger -->
		<div style="width: 50%; margin-left: -5px; float: left">
			<h2 class="bg1">Sett inn penger<span class="left2"></span><span class="right2"></span></h2>
			<div class="bg1">
				<form action="" method="post">
					<dl class="dd_right">
						<dt class="bank_amount_set" rel="cash,bank_sett_inn">Beløp</dt>
						<dd><input type="text" name="sett_inn" id="bank_sett_inn" class="styled w100" value="0" /></dd>
					</dl>
					<p class="c">' . show_sbutton("Sett inn") . '</p>
				</form>
			</div>
		</div>
		
		<!-- ta ut penger -->
		<div style="width: 50%; margin-right: -5px; float: right">
			<h2 class="bg1">Ta ut penger<span class="left2"></span><span class="right2"></span></h2>
			<div class="bg1">
				<form action="" method="post">
					<dl class="dd_right">
						<dt class="bank_amount_set" rel="bank,bank_ta_ut">Beløp</dt>
						<dd><input type="text" name="ta_ut" id="bank_ta_ut" class="styled w100" value="0" /></dd>
					</dl>
					<p class="c">' . show_sbutton("Ta ut") . '</p>
				</form>
			</div>
		</div>
		<div class="clear"></div>
	</div>
</div>

<div class="bg1_c large" style="margin-top: 40px">
	<h1 class="bg1">Oversikt<span class="left"></span><span class="right"></span></h1>
	<div class="bg1" style="padding: 0 15px">
		<!-- sendte penger -->
		<div style="width: 50%; margin-left: -5px; float: left">
			<h2 class="bg1">Sendte penger<span class="left2"></span><span class="right2"></span></h2>
			<div class="bg1">';
        // sideinformasjon - hent sendte overføringer
        $pagei = new pagei(pagei::ACTIVE_GET, "side_sendte", pagei::PER_PAGE, 8, pagei::TOTAL, $this->up->data['up_bank_num_sent']);
        $result = \Kofradia\DB::get()->query("SELECT bl_receiver_up_id, amount, time FROM bank_log WHERE bl_sender_up_id = " . $this->up->id . " ORDER BY time DESC LIMIT {$pagei->start}, {$pagei->per_page}");
        if ($result->rowCount() == 0) {
            echo '
				<p>
					Ingen sendte overføringer.
				</p>';
        } else {
            echo '
				<table class="table tablemt" width="100%">
					<thead>
						<tr>
							<th>Mottaker</th>
							<th>Beløp</th>
							<th>Tidspunkt</th>
						</tr>
					</thead>
					<tbody>';
            $i = 0;
            while ($row = $result->fetch()) {
                $date = ess::$b->date->get($row['time']);
                echo '
						<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
							<td><user id="' . $row['bl_receiver_up_id'] . '" /></td>
							<td class="r">' . game::format_cash($row['amount']) . '</td>
							<td class="c" style="font-size: 10px">' . $date->format(date::FORMAT_NOTIME) . '<br />' . $date->format("H:i:s") . '</td>
						</tr>';
            }
            echo '
					</tbody>
				</table>
				<p class="c">' . $pagei->pagenumbers(game::address("banken", $_GET, array("side_sendte")) . "#sendte", game::address("banken", $_GET, array("side_sendte"), array("side_sendte" => "_pageid_")) . "#sendte") . '</p>';
        }
        echo '
			</div>
		</div>
		
		<!-- mottatte penger -->
		<div style="width: 50%; margin-right: -5px; float: right">
			<h2 class="bg1">Mottatte penger<span class="left2"></span><span class="right2"></span></h2>
			<div class="bg1">';
        // sideinformasjon - hent mottatte overføringer
        $pagei = new pagei(pagei::ACTIVE_GET, "side_mottatte", pagei::PER_PAGE, 8, pagei::TOTAL, $this->up->data['up_bank_num_received']);
        $result = \Kofradia\DB::get()->query("SELECT bl_sender_up_id, amount, time FROM bank_log WHERE bl_receiver_up_id = " . $this->up->id . " ORDER BY time DESC LIMIT {$pagei->start}, {$pagei->per_page}");
        if ($result->rowCount() == 0) {
            echo '
				<p>
					Ingen mottatte overføringer.
				</p>';
        } else {
            echo '
				<table class="table tablemt" width="100%">
					<thead>
						<tr>
							<th>Sender</th>
							<th>Beløp</th>
							<th>Tidspunkt</th>
						</tr>
					</thead>
					<tbody>';
            $i = 0;
            while ($row = $result->fetch()) {
                $date = ess::$b->date->get($row['time']);
                echo '
						<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
							<td><user id="' . $row['bl_sender_up_id'] . '" /></td>
							<td class="r">' . game::format_cash($row['amount']) . '</td>
							<td class="c" style="font-size: 10px">' . $date->format(date::FORMAT_NOTIME) . '<br />' . $date->format("H:i:s") . '</td>
						</tr>';
            }
            echo '
					</tbody>
				</table>
				<p class="c">' . $pagei->pagenumbers(game::address("banken", $_GET, array("side_mottatte")) . "#mottatte", game::address("banken", $_GET, array("side_mottatte"), array("side_mottatte" => "_pageid_")) . "#mottatte") . '</p>';
        }
        echo '
			</div>
		</div>
		<div class="clear"></div>
	</div>
</div>';
    }
示例#25
0
}
$q = $_POST['q'];
// limit
$limit = intval(min(100, max(1, postval("limit", 10))));
// ekskluder?
$exclude = "";
$exclude_ids = array();
if (isset($_POST['exclude'])) {
    $exclude_ids = array_unique(array_map("intval", explode(",", $_POST['exclude'])));
    if (count($exclude_ids) > 0) {
        $exclude = "up_id NOT IN (" . implode(",", $exclude_ids) . ") AND ";
    }
}
// ignorere egne deaktiverte spillere?
if (isset($_POST['is'])) {
    $exclude .= "up_u_id != " . login::$user->id . " AND ";
}
// hent brukere
$q2 = \Kofradia\DB::quote(str_replace("_", "\\_", $q));
$result = \Kofradia\DB::get()->query("SELECT SQL_CALC_FOUND_ROWS up_id, up_name, up_access_level FROM users_players WHERE {$exclude}up_name LIKE {$q2} ORDER BY LENGTH(up_name), up_name LIMIT {$limit}");
$result2 = \Kofradia\DB::get()->query("SELECT FOUND_ROWS()");
$num = $result2->fetchColumn(0);
// logg
putlog("LOG", "%c3%bFINN-SPILLER:%b%c %u" . login::$user->player->data['up_name'] . "%u søkte etter %u{$q}%u!");
// xml
$data = '<userlist query="' . htmlspecialchars($q) . '" limit="' . $limit . '" results="' . $num . '">';
while ($row = $result->fetch()) {
    $data .= '<user up_id="' . $row['up_id'] . '" up_name="' . htmlspecialchars($row['up_name']) . '">' . htmlspecialchars(game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level'])) . '</user>';
}
$data .= '</userlist>';
ajax::xml($data);
示例#26
0
    /**
     * Spillere tilhørende brukeren
     */
    protected static function page_up()
    {
        // hent spillerene tilhørende denne personen
        $pagei = new pagei(pagei::ACTIVE_GET, "side_up", pagei::PER_PAGE, 15);
        $result = $pagei->query("\n\t\t\tSELECT up_id, up_name, up_access_level, up_created_time, up_points, up_deactivated_time, up_hits, up_cash+up_bank money, 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_u_id = " . page_min_side::$active_user->id . "\n\t\t\tORDER BY up_last_online DESC");
        echo '
		<div class="bg1_c">
			<h1 class="bg1">Spillere tilhørende brukeren<span class="left2"></span><span class="right2"></span></h1>
			<div class="bg1">
				<table class="table ' . ($pagei->pages == 1 ? 'tablem' : 'tablemt') . '" style="width: 100%">
					<thead>
						<tr>
							<th>Spiller</th>
							<th>Opprettet</th>
							<th>Rank</th>
							<th>Penger</th>
							<th>Visninger</th>
							<th>Status</th>
						</tr>
					</thead>
					<tbody>';
        while ($row = $result->fetch()) {
            $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']);
            echo '
						<tr>
							<td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level'], true, 'min_side?up_id=' . $row['up_id']) . '</td>
							<td>' . ess::$b->date->get($row['up_created_time'])->format() . '</td>
							<td>' . $rank['name'] . ($rank['orig'] ? '<br />(' . $rank['orig'] . ')' : '') . '</td>
							<td class="r">' . game::format_cash($row['money']) . '</td>
							<td class="r">' . game::format_number($row['up_hits']) . '</td>
							<td>' . ($row['up_access_level'] == 0 ? 'Deaktivert:<br />' . ess::$b->date->get($row['up_deactivated_time'])->format() : 'Status: I live') . '</td>
						</tr>';
        }
        echo '
					</tbody>
				</table>' . ($pagei->pages > 1 ? '
				<p class="c">' . $pagei->pagenumbers() . '</p>' : '') . '
			</div>
		</div>';
    }
示例#27
0
        echo '
		<table class="table tablemb">
			<thead>
				<tr>
					<th>Bruker</th>
					<th>E-post</th>
					<th>Sist pålogget</th>
					<th>&nbsp;</th>
				</tr>
			</thead>
			<tbody>';
        $i = 0;
        while ($row = $result->fetch()) {
            echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td>
					<td>' . htmlspecialchars($row['u_email']) . '</td>
					<td>' . $_base->date->get($row['up_last_online'])->format(date::FORMAT_SEC) . '</td>
					<td><form action="" method="post"><input type="hidden" name="up_id" value="' . $row['up_id'] . '" />' . show_sbutton("Velg") . '</form></td>
				</tr>';
        }
        echo '
			</tbody>
		</table>';
    }
    echo box_end();
}
show_search_form();
$_base->page->load();
function like_search($value)
{
示例#28
0
.it_dato { text-align: center; white-space: nowrap; color: #888888; width: 100px }
#meldinger a { text-decoration: none }
.utgaaende { color: #888888 }' . ($show_deleted ? '
.slettet { color: #BBBB99 }' : '
.ir_marked { color: #BBBB99; font-weight: bold }'));
            $i = 0;
            while ($row = $result->fetch()) {
                $content = trim(strip_tags(game::bb_to_html($row['id_text'])));
                $length = mb_strlen($content);
                $max = 60;
                if (mb_strlen($content) > $max) {
                    $content = mb_substr($content, 0, $max - 4) . " ...";
                }
                echo '
			<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
				<td class="it_u">' . ($row['im_up_id'] == $user->player->id ? '<span class="utgaaende">Utgående</span>' : game::profile_link($row['im_up_id'], $row['up_name'], $row['up_access_level'])) . '</td>
				<td><a href="innboks_les?id=' . $row['it_id'] . '&amp;goto=' . $row['im_id'] . '">' . htmlspecialchars($row['it_title']) . '</a>' . ($row['ir_unread'] == 1 ? ' <span class="ny">(Ny!)</span>' : ($row['ir_unread'] > 1 ? ' <span class="ny">(' . $row['ir_unread'] . ' nye!)</span>' : '')) . ($row['ir_deleted'] != 0 ? ' <span class="slettet">(Slettet)</span>' : '') . ($row['ir_up_id'] != $user->player->id || !$user->player->active ? ' <span class="it_locked">(Låst)</span>' : '') . ($row['ir_marked'] != 0 ? ' <span class="ir_marked">(Til oppfølging)</span>' : '') . '</td>
				<td class="dark">' . htmlspecialchars($content) . ' (' . $length . ' tegn)</td>
				<td class="it_dato">' . $_base->date->get($row['im_time'])->format() . '</td>
			</tr>';
            }
            echo '
		</tbody>
	</table>';
            // flere sider?
            if ($pagei->pages > 1) {
                echo '
	<div class="hr"></div>
	<p class="c">
		' . $pagei->pagenumbers("input") . '
	</p>';
示例#29
0
					<option value="d3">Siden 3 dager</option>
					<option value="24t">Siste 24 timer</option>
					<option value="1u">Siste uken</option>
				</select>
				<noscript>
					<input type="submit" value="Go" />
				</noscript>
			</div>
			<p>Denne listen viser hvem som har vært aktive i løpet av siste ' . game::timespan($time, game::TIME_FULL) . '</p>
		</form>';
// hent brukerne
$result = \Kofradia\DB::get()->query("SELECT up_id, up_name, up_access_level FROM users_players WHERE up_last_online >= " . (time() - $time) . " ORDER BY up_name");
// sett opp alfabetisk liste
$liste = array();
while ($row = $result->fetch()) {
    $liste[mb_strtolower(mb_substr($row['up_name'], 0, 1))][] = game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']);
}
echo '
		<table class="table tablemb">
			<thead>
				<tr>
					<th colspan="2">Spillere pålogget - ' . game::format_number($result->rowCount()) . ' spiller' . ($result->rowCount() == 1 ? '' : 'e') . '</th>
				</tr>
			</thead>
			<tbody>';
foreach ($liste as $char => $rows) {
    echo '
				<tr>
					<th>' . htmlspecialchars($char) . '</th>
					<td>' . implode(", ", $rows) . '</td>
				</tr>';
示例#30
0
文件: panel.php 项目: Kuzat/kofradia
    /**
     * Vis informasjon om medlemmene
     */
    protected function page_members_handle()
    {
        ess::$b->page->add_title("Medlemsdetaljer");
        // ingen medlemmer?
        if (count($this->ff->members['members']) == 0) {
            redirect::handle();
        }
        // sett opp medlemsliste og hent utvidet informasjon
        $members_id = array();
        foreach ($this->ff->members['members'] as $member) {
            $members_id[] = $member->id;
        }
        $members = array();
        $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT up_id, up_health, up_health_max, up_b_id, up_brom_expire\n\t\t\tFROM users_players\n\t\t\tWHERE up_id IN (" . implode(",", $members_id) . ")");
        while ($row = $result->fetch()) {
            $members[$row['up_id']] = $row;
        }
        echo '
<div class="bg1_c xmedium">
	<h1 class="bg1">Medlemsdetaljer<span class="left2"></span><span class="right2"></span></h1>
	<div class="bg1">
		<table class="table tablem center">
			<thead>
				<tr>
					<th>Spiller</th>
					<th>Sist pålogget</th>
					<th>Plassering</th>
					<th>I bomberom?</th>
					<th>Helse</th>
				</tr>
			</thead>
			<tbody>';
        // vis oversikt over medlemmene
        $i = 0;
        foreach ($this->ff->members['members'] as $member) {
            $info = $members[$member->id];
            $brom = $info['up_brom_expire'] > time() ? 'Ja (til ' . ess::$b->date->get($info['up_brom_expire'])->format(date::FORMAT_SEC) . ')' : 'Nei';
            $helse_p = $info['up_health'] / $info['up_health_max'];
            $helse = $helse_p > 0.9 ? 'Over 90 %' : ($helse_p < 0.1 ? 'Under 10 %' : ($helse_p < 0.5 ? 'Under 50 %' : 'Over 50 %'));
            echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td>' . game::profile_link($member->id, $member->data['up_name'], $member->data['up_access_level']) . '<br /><b>' . ucfirst($member->get_priority_name()) . '</b></td>
					<td class="r">' . ess::$b->date->get($member->data['up_last_online'])->format() . '<br />' . game::timespan($member->data['up_last_online'], game::TIME_ABS) . '</td>
					<td>' . htmlspecialchars(game::$bydeler[$info['up_b_id']]['name']) . '</td>
					<td>' . $brom . '</td>
					<td class="r">' . $helse . '</td> 
				</tr>';
        }
        echo '
			</tbody>
		</table>
	</div>
</div>';
        $this->ff->load_page();
    }