Beispiel #1
0
    while ($row = $result->fetch()) {
        $end = ceil(($row['time'] - 900) / 1800) * 1800 + 900;
        if (!isset($rounds[$end])) {
            $rounds[$end] = array("time" => $end, "total_lodd" => $row['total_lodd'], "total_users" => $row['total_users'], "users" => array());
        }
        $rounds[$end]['users'][$row['type']] = array($row['lv_up_id'], $row['won']);
    }
    krsort($rounds);
    foreach ($rounds as $round) {
        echo '
		<div class="section">
			<h2>' . $_base->date->get($round['time'])->format() . '</h2>
			<p class="h_right">' . game::format_number($round['total_lodd']) . ' lodd, ' . game::format_number($round['total_users']) . ' spiller' . ($round['total_users'] == 1 ? '' : 'e') . '</p>
			<dl class="dd_right">';
        foreach ($round['users'] as $num => $row) {
            echo '
				<dt>' . $num . ' - <user id="' . $row[0] . '" /></dt>
				<dd>' . game::format_cash($row[1]) . '</dd>';
        }
        echo '
			</dl>
		</div>';
    }
    // vis side
    echo '
		<p class="c">' . $pagei->pagenumbers() . '</p>';
}
echo '
	</div>
</div>';
$_base->page->load();
Beispiel #2
0
    /**
     * Vis banken
     */
    protected function show()
    {
        echo '
<h1 class="c">Banken</h1>

<div class="section" style="width: 250px">
	<h2>Bankinformasjon</h2>
	<dl class="dd_right">
		<dt>Balanse</dt>
		<dd>' . game::format_cash($this->ff->data['ff_bank']) . '</dd>
	</dl>';
        // tilgang til medeier
        if ($this->ff->access(1)) {
            echo '
	<form action="" method="post">
		<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />';
            if ($this->priority_write == 1) {
                echo '
		<p>' . ucfirst($this->ff->type['priority'][2]) . ' har ikke tilgang til å sette inn/ta ut penger fra denne banken.</p>
		<p class="c">' . show_sbutton("Gi tilgang til {$this->ff->type['priority'][2]}", 'name="pri2_wt"') . '</p>';
            } else {
                echo '
		<p>' . ucfirst($this->ff->type['priority'][2]) . ' <b>har</b> tilgang til å sette inn/ta ut penger fra denne banken.</p>
		<p class="c">' . show_sbutton("Fjern tilgang til {$this->ff->type['priority'][2]}", 'name="pri2_wf"') . '</p>';
            }
            echo '
	</form>';
        }
        echo '
	<p class="c"><a href="banken?ff_id=' . $this->ff->id . '&amp;stats">Vis statistikk over pengeflyt i ' . $this->ff->type['refobj'] . ' &raquo;</a></p>
</div>';
        // kun boss kan ta ut og sette inn penger
        if ($this->ff->access($this->priority_write) && !$this->nostat) {
            echo '
<div style="margin: 0 auto; width: 420px">

<!-- sett inn penger -->
<div style="width: 205px; float: left; margin-right: 10px">
	<div class="section">
		<form action="" method="post">
			<h2>Sett inn penger</h2>
			<dl class="dd_right dl_2x">
				<dt>Beløp</dt>
				<dd><input type="text" name="bank_inn" class="styled w90" value="0" style="margin-right: 3px" />' . show_button("Alt", 'onclick="this.previousSibling.value=\'' . game::format_cash(login::$user->player->data['up_cash']) . '\'"') . '
				
				<dt>Notat</dt>
				<dd><input type="text" name="note" value="" maxlength="50" class="styled w120" /></dd>
			</dl>
			<h4>' . show_sbutton("Sett inn") . '</h4>
		</form>
	</div>
</div>

<!-- ta ut penger -->
<div style="width: 205px; float: left">
	<div class="section">
		<form action="" method="post">
			<h2>Ta ut penger</h2>
			<dl class="dd_right dl_2x">
				<dt>Beløp</dt>
				<dd><input type="text" name="bank_ut" class="styled w90" value="0" style="margin-right: 3px" />' . show_button("Alt", 'onclick="this.previousSibling.value=\'' . game::format_cash($this->ff->data['ff_bank']) . '\'"') . '
				
				<dt>Notat</dt>
				<dd><input type="text" name="note" value="" maxlength="50" class="styled w120" /></dd>
			</dl>
			<h4>' . show_sbutton("Ta ut") . '</h4>
		</form>
	</div>
</div>
<div class="clear"></div>

</div>';
        }
        echo '
<div class="fhr"></div>';
        $ff_reset = $this->ff->data['ff_time_reset'] && !$this->ff->mod ? " AND ffbl_time > {$this->ff->data['ff_time_reset']}" : "";
        // sideinformasjon - hent siste bevegelser
        $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 15);
        $result = $pagei->query("SELECT ffbl_type, ffbl_amount, ffbl_up_id, ffbl_note, ffbl_time, ffbl_balance FROM ff_bank_log WHERE ffbl_ff_id = {$this->ff->id}{$ff_reset} ORDER BY ffbl_time DESC");
        if ($result->rowCount() == 0) {
            echo '
<p class="c">
	Ingen overføringer er enda registrert.
</p>';
        } else {
            echo '
<h1 id="bevegelser" class="c">Siste bevegelser</h1>
<table class="table center">
	<thead>
		<tr>
			<th>Type</th>
			<th>Person</th>
			<th>Beløp</th>
			<th>Tidspunkt</th>
			<th>Notat</th>
			<th>Balanse</th>
		</tr>
	</thead>
	<tbody class="nowrap">';
            $i = 0;
            $typer = array(1 => "bank_inn", "bank_ut", "bank_doner", "bank_betaling", "bank_tbetaling");
            while ($row = $result->fetch()) {
                $type = isset($typer[$row['ffbl_type']]) ? ff::$bank_ikoner[$typer[$row['ffbl_type']]] : 'Ukjent';
                $type .= " " . (isset(ff::$bank_types[$row['ffbl_type']]) ? ff::$bank_types[$row['ffbl_type']] : 'Ukjent');
                if ($row['ffbl_type'] == 2 || $row['ffbl_type'] == 4) {
                    $row['ffbl_amount'] = "-" . $row['ffbl_amount'];
                }
                $player = $row['ffbl_up_id'] ? '<user id="' . $row['ffbl_up_id'] . '" />' : 'Spillet';
                echo '
		<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
			<td>' . $type . '</td>
			<td>' . $player . '</td>
			<td class="r">' . game::format_cash($row['ffbl_amount']) . '</td>
			<td>' . ess::$b->date->get($row['ffbl_time'])->format(date::FORMAT_SEC) . '</td>
			<td class="wrap">' . (empty($row['ffbl_note']) ? '<span style="color: #AAA">Tomt</span>' : game::bb_to_html($row['ffbl_note'])) . '</td>
			<td class="r">' . game::format_cash($row['ffbl_balance']) . '</td>
		</tr>';
            }
            echo '
	</tbody>
</table>';
            // flere sider?
            if ($pagei->pages > 1) {
                echo '
<p class="c">' . $pagei->pagenumbers(game::address(PHP_SELF, $_GET, array("side")) . "#bevegelser", game::address(PHP_SELF, $_GET, array("side"), array("side" => "_pageid_")) . "#bevegelser") . '</p>';
            }
        }
    }
Beispiel #3
0
					<th>Når</th>
					<th>Plassering</th>
					<th>Premie</th>
					<th>Vinnerlodd</th>
					<th>Solgte lodd</th>
					<th>Spillere</th>
				</tr>
			</thead>
			<tbody>';
    $i = 0;
    while ($row = $result->fetch()) {
        $end = ceil(($row['time'] - 900) / 1800) * 1800 + 900;
        echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td class="c">' . $_base->date->get($end)->format() . '<br /><span style="color: #888888">(' . $_base->date->get($row['time'])->format() . ')</a></td>
					<td class="r">' . ($row['type'] == 1 ? '<b>' . $row['type'] . '. plass</b>' : $row['type'] . '. plass') . '</td>
					<td class="r">' . game::format_cash($row['won']) . '</td>
					<td class="c">' . game::format_number($row['l_id']) . '</td>
					<td class="c">' . game::format_number($row['total_lodd']) . '</td>
					<td class="c">' . game::format_number($row['total_users']) . '</td>
				</tr>';
    }
    echo '
			</tbody>
		</table>
		<p class="c">' . $pagei->pagenumbers(game::address("lotto_vinn", $_GET, array("side")) . "#lotto_vinn", game::address("lotto_vinn", $_GET, array("side"), array("side" => "_pageid_")) . "#lotto_vinn") . '</p>';
}
echo '
	</div>
</div>';
$_base->page->load();
Beispiel #4
0
    /**
     * Vis logger
     */
    protected function show_logs()
    {
        $filters = "";
        if ($this->filter_actions) {
            $filters .= " AND lc_lca_id IN (" . implode(",", $this->filter_actions) . ")";
        }
        if ($this->filter_time_before) {
            $filters .= " AND lc_time <= {$this->filter_time_before}";
        }
        if ($this->filter_time_after) {
            $filters .= " AND lc_time >= {$this->filter_time_after}";
        }
        if ($this->filter_by_up) {
            $filters .= " AND lc_up_id" . (isset($_POST['by_invert']) ? ' NOT' : '') . " IN (" . $this->get_full_up_list($this->filter_by_up) . ")";
        }
        if ($this->filter_a_up) {
            $filters .= " AND lc_a_up_id" . (isset($_POST['a_invert']) ? ' NOT' : '') . " IN (" . $this->get_full_up_list($this->filter_a_up) . ")";
        }
        $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::ACTIVE_POST, "side", pagei::PER_PAGE, 100);
        $result = $pagei->query("\n\t\t\tSELECT lc_id, lc_up_id, lc_time, lc_lca_id, lc_a_up_id, lc_log\n\t\t\tFROM log_crew\n\t\t\tWHERE 1{$filters}\n\t\t\tORDER BY lc_time DESC");
        $rows = array();
        while ($row = $result->fetch()) {
            $rows[$row['lc_id']] = $row;
        }
        $data = crewlog::load_summary_data($rows);
        $logs = array();
        foreach ($data as $row) {
            // hent sammendrag
            $summary = crewlog::make_summary($row);
            $day = ess::$b->date->get($row['lc_time'])->format(date::FORMAT_NOTIME);
            $logs[$day][] = '<p><span class="time"><a href="' . ess::$s['relative_path'] . '/crew/crewlogg?lc_id=' . $row['lc_id'] . '">' . ess::$b->date->get($row['lc_time'])->format("H:i") . '</a>:</span> ' . $summary . '</p>';
        }
        ess::$b->page->add_css('
		h1.crewlog { margin: 30px auto 20px }
		div.crewlog { margin: 0 30px }
		.crewlog .time { color: #888888; padding-right: 5px }
		');
        if ($this->filters_active) {
            echo '
		<p class="c">Fant ' . fwords("%d oppføring", "%d oppføringer", $pagei->total) . ' som passet til filteret.</p>';
        }
        echo '
		<p class="c">' . $pagei->pagenumbers($this->filters_active ? "input" : null) . '</p>
		<div class="crewlog">';
        foreach ($logs as $day => $items) {
            echo '
			<div class="bg1_c">
				<h1 class="bg1">' . $day . '<span class="left2"></span><span class="right2"></span></h1>
				<div class="bg1">
					' . implode('
					', $items) . '
				</div>
			</div>';
        }
        echo '
			<p class="c">' . $pagei->pagenumbers($this->filters_active ? "input" : null) . '</p>
		</div>';
    }
Beispiel #5
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>';
        }
    }
Beispiel #6
0
    /**
     * Vise publiserte utgivelser
     */
    protected function published()
    {
        ess::$b->page->add_title("Utgivelser");
        // hent publiserte utvivelser
        $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 10);
        $ffnp_q = login::$logged_in ? "ffnp_ffn_id = ffn_id AND ffnp_up_id = " . login::$user->player->id : "FALSE";
        $result = $pagei->query("SELECT ffn_id, ffn_published_time, ffn_cost, ffn_title, ffn_sold, ffn_description, ffnp_time FROM ff_newspapers LEFT JOIN ff_newspapers_payments ON {$ffnp_q} WHERE ffn_ff_id = {$this->ff->id} AND ffn_published != 0 ORDER BY ffn_published_time DESC");
        echo '
<p class="c">Utgivelser</p>';
        // ingen publiserte utgivelser?
        if ($result->rowCount() == 0) {
            echo '
<p class="c">Ingen utgivelser er publisert.</p>';
        } else {
            echo '
<p class="c">' . $pagei->total . ' utgivelse' . ($pagei->total == 1 ? '' : 'r') . ' er publisert:</p>';
            #$i = $pagei->total - ($pagei->per_page*($pagei->active-1));
            while ($row = $result->fetch()) {
                echo '
<div class="section center w200">
	<h2><a href="avis?ff_id=' . $this->ff->id . '&amp;ffn=' . $row['ffn_id'] . '">' . htmlspecialchars($row['ffn_title']) . '</a></h2>
	<dl class="dd_right">
		<dt>Publisert</dt>
		<dd>' . ess::$b->date->get($row['ffn_published_time'])->format() . '</dd>
		<dt>Solgte utgivelser</dt>
		<dd>' . game::format_number($row['ffn_sold']) . '</dd>
		<dt>Pris</dt>
		<dd>' . game::format_cash($row['ffn_cost']) . '</dd>
		<dt>Kjøpt?</dt>
		<dd>' . ($row['ffnp_time'] ? '<a href="avis?ff_id=' . $this->ff->id . '&amp;ffn=' . $row['ffn_id'] . '">Ja</a> (' . ess::$b->date->get($row['ffnp_time'])->format() . ')' : 'Nei [<a href="avis?ff_id=' . $this->ff->id . '&amp;ffn=' . $row['ffn_id'] . '">Kjøp</a>]') . (access::is_nostat() ? ' (nostat)' : '') . '</dd>
	</dl>
	<div class="p">' . $this->ff->format_description($row['ffn_description']) . '</div>
</div>';
                #$i--;
            }
            // flere sider?
            if ($pagei->pages > 1) {
                echo '
<p class="c">Navigasjon: ' . $pagei->pagenumbers() . '</p>';
            }
        }
    }
Beispiel #7
0
    /** Vis henvendelsen */
    protected function show()
    {
        // øk visningstelleren
        $this->increase_view_counter();
        echo '
<h1>Henvendelse</h1>
<p class="c"><a href="./">Tilbake</a></p>
<table class="table center tablemb">
	<tbody>
		<tr>
			<th>Tittel</th>
			<td>' . htmlspecialchars($this->data['su_title']) . '</td>
		</tr>
		<tr>
			<th>Kategori</th>
			<td>' . htmlspecialchars(support::$kategorier[$this->data['su_category']]['name']) . '</td>
		</tr>' . (!$this->own ? '
		<tr>
			<th>Innsender</th>
			<td><user id="' . $this->data['su_up_id'] . '" />' . ($this->data['new_up_id'] != $this->data['su_up_id'] ? '<br />
				(Ny: <user id="' . $this->data['new_up_id'] . '" />)' : '') . '</td>
		</tr>' : '') . '
		<tr>
			<th>Innsendt</th>
			<td>' . ess::$b->date->get($this->data['su_time'])->format(date::FORMAT_SEC) . '<br />' . game::timespan($this->data['su_time'], game::TIME_ABS | game::TIME_PAST) . '</td>
		</tr>
		<tr>
			<th>Status</th>';
        if ($this->solved) {
            echo '
			<td>Avsluttet</td>';
        } else {
            // knapp for å avslutte henvendelsen
            echo '
			<td>
				Åpen / under behandling<br />
				<form action="" method="post">' . show_sbutton("Avslutt henvendelsen", 'name="close" style="margin-top: 3px"') . '</form>
			</td>';
        }
        echo '
		</tr>
	</tbody>
</table>';
        // vis skjema for å svare på henvendelsen
        $this->show_reply_form();
        // hent meldingene
        $pagei = new pagei(pagei::PER_PAGE, 30, pagei::ACTIVE_GET, "side");
        $result = $pagei->query("\n\t\t\tSELECT sum_up_id, sum_time, sum_text\n\t\t\tFROM support_messages\n\t\t\tWHERE sum_su_id = {$this->data['su_id']}\n\t\t\tORDER BY sum_time DESC");
        if ($pagei->pages > 1) {
            echo '
<p class="c">' . $pagei->pagenumbers() . '</p>';
        }
        ess::$b->page->add_css('.profile_link_imgfix img { vertical-align: top; margin-top: -2px }');
        while ($row = $result->fetch()) {
            echo '
<div class="bg1_c" style="width: 500px">
	<h2 class="bg1">
		<span style="float: left" class="profile_link_imgfix"><user id="' . $row['sum_up_id'] . '" /></span>
		<span style="float: right; font-size: 10px">' . ess::$b->date->get($row['sum_time'])->format(date::FORMAT_SEC) . '</span>
		<span class="left2"></span><span class="right2"></span>
	</h2>
	<div class="bg1">
		<div class="p">' . game::format_data($row['sum_text']) . '</div>
	</div>
</div>';
        }
        if ($pagei->pages > 1) {
            echo '
<p class="c">' . $pagei->pagenumbers() . '</p>';
        }
        echo '
<div style="margin-bottom: 50px"></div>';
    }
Beispiel #8
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>';
    }
Beispiel #9
0
    /**
     * Vis forumet
     */
    protected function show_forum()
    {
        // markere som sett?
        if ($this->forum->ff) {
            $this->forum->ff->uinfo->forum_seen();
        }
        // vise slettede forumtråder?
        $show_deleted = false;
        if (isset($_GET['sd']) && $this->forum->fmod) {
            // ff
            if ($this->forum->ff && !access::has("mod")) {
                ess::$b->page->add_message("Du viser også forumtråder som ble slettet for mindre enn " . game::timespan(\Kofradia\Forum\Topic::FF_HIDE_TIME, game::TIME_FULL) . " siden.");
            } else {
                ess::$b->page->add_message("Du viser også slettede forumtråder.");
            }
            $show_deleted = true;
        }
        $vis_bokser = isset($_GET['vis_bokser']) && !$show_deleted;
        // vis forum informasjon
        echo '
<div class="bg1_c forumw">
	<h1 class="bg1">' . htmlspecialchars($this->forum->get_name()) . '<span class="left"></span><span class="right"></span></h1>
	<p class="h_right">
		<a href="topic_new?f=' . $this->forum->id . '">Opprett ny forumtråd</a>' . ($this->forum->fmod && !$vis_bokser && !$show_deleted ? '
		<a href="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array(), array("vis_bokser" => true))) . '">Vis merk innlegg knapp</a>' : ($vis_bokser ? '
		<a href="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array("vis_bokser"))) . '">Skjul valg</a>' : '')) . '
	</p>
	<p class="h_left">
		<a href="sok?s' . $this->forum->id . '">Søk</a>
		<a href="' . ess::$s['relative_path'] . '/node/6">Forumregler</a>' . ($this->forum->fmod && !$vis_bokser ? $show_deleted ? '
		<a href="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array("sd"))) . '">Skjul slettede</a>' : '
		<a href="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array(), array("sd" => true))) . '">Vis slettede</a>' : '') . '
	</p>
	<div class="bg1">';
        // hvor lenge etter den er slettet vi kan vise den
        $access_expire = max(time() - \Kofradia\Forum\Topic::FF_HIDE_TIME, $this->forum->ff ? $this->forum->ff->data['ff_time_reset'] : 0);
        // finn ut hvor mange topics det er
        $expire_deleted = $show_deleted ? !$this->forum->ff || access::has("mod") ? "" : " AND (ft_deleted = 0 OR ft_deleted > {$access_expire})" : " AND ft_deleted = 0";
        $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT COUNT(IF(ft_type = 1, 1, NULL)) AS normal, COUNT(IF(ft_type = 2, 1, NULL)) AS sticky, COUNT(IF(ft_type = 3, 1, NULL)) AS important\n\t\t\tFROM forum_topics\n\t\t\tWHERE ft_fse_id = {$this->forum->id}{$expire_deleted}");
        $count = $result->fetch();
        unset($result);
        // alle important og sticky topics skal vises på første siden
        // mens bare 15 normale topics skal vises på hver side
        $pagei = new pagei(pagei::PER_PAGE, 15, pagei::TOTAL, $count['normal'], pagei::ACTIVE_GET, "p");
        if (isset($_GET['p']) && (string) $pagei->active != $_GET['p']) {
            $add = $pagei->active > 1 ? '&p=' . $pagei->active : '';
            redirect::handle("forum?id={$this->forum->id}{$add}");
        }
        // sjekke status?
        $fs_count = 0;
        // markere alle emner og svar som lest?
        if (isset($_GET['fs_force']) && login::$logged_in && \Kofradia\Forum\Category::$fs_check) {
            // legg til og oppdater innleggene på denne siden
            \Kofradia\DB::get()->exec("\n\t\t\t\tINSERT INTO forum_seen (fs_ft_id, fs_u_id, fs_time)\n\t\t\t\t\n\t\t\t\tSELECT ft_id, " . login::$user->id . ", IFNULL(fr_time, ft_time)\n\t\t\t\tFROM forum_topics\n\t\t\t\t\tLEFT JOIN forum_replies ON ft_last_reply = fr_id\n\t\t\t\tWHERE ft_fse_id = {$this->forum->id} AND ft_type = 1 AND ft_deleted = 0\n\t\t\t\tORDER BY IFNULL(fr_time, ft_time) DESC\n\t\t\t\tLIMIT {$pagei->start}, {$pagei->per_page}\n\t\t\t\t\n\t\t\t\tON DUPLICATE KEY UPDATE fs_time = VALUES(fs_time)");
            redirect::handle(game::address("forum", $_GET, array("fs_force")));
        }
        // oppdater tidspunkt for visning hvis crewforum
        if (login::$logged_in && $pagei->active == 1 && $this->forum->id >= 5 && $this->forum->id <= 7) {
            login::$user->params->update("forum_{$this->forum->id}_last_view", time(), true);
        }
        if ($pagei->active == 1 && ($count['important'] > 0 || $count['sticky'] > 0) || $count['normal'] > 0) {
            echo ($this->forum->fmod && $vis_bokser ? '
<form action="" method="post">' : '') . '
<table width="100%" class="table forum tablem">
	<thead>
		<tr>
			<th>Tittel' . ($this->forum->fmod && $vis_bokser ? ' (<a href="#" class="box_handle_toggle" rel="emne[]">Merk alle</a>)' : '') . '</th>
			<th>Trådstarter</th>
			<th>Svar</th>
			<th><abbr title="Visninger">Vis</abbr></th>
			<th>Siste innlegg</th>
		</tr>
	</thead>
	<tbody' . ($this->forum->fmod && $vis_bokser ? ' class="pointer"' : '') . '>';
            $i = 0;
            // skal vi hente important og sticky topics?
            if ($pagei->active == 1 && ($count['important'] > 0 || $count['sticky'] > 0)) {
                // hent important og sticky forumtråder
                $result = $this->get_topics(false, $show_deleted);
                // vis hver topic
                while ($row = $result->fetch()) {
                    // sjekke status?
                    $fs_info = '';
                    $fs_link_suffix = '';
                    if (\Kofradia\Forum\Category::$fs_check) {
                        if (empty($row['fs_time'])) {
                            $fs_info = ' <span class="fs_ft_new">NY!</span>';
                            $fs_count++;
                        } elseif ($row['fs_time'] < $row['fr_time']) {
                            $fs_info = ' <span class="fs_fr_new">' . $row['fs_new'] . ' <span class="fs_fr_newi">NY' . ($row['fs_new'] == 1 ? '' : 'E') . '</span></span>';
                            $fs_link_suffix = '&amp;fs';
                        }
                    }
                    echo '
		<tr class="' . (++$i % 2 == 0 ? 'color2_1' : 'color2_0') . ($row['ft_deleted'] != 0 ? ' ft_deleted' : '') . '" id="emne_' . $row['ft_id'] . '">
			<td class="f"><a href="topic?id=' . $row['ft_id'] . $fs_link_suffix . '">' . htmlspecialchars($row['ft_title']) . '</a> ' . ($row['ft_type'] == 3 ? '<span style="color: #CCFF00; font-weight: bold">(Viktig)</span>' : '<span style="color: #CCFF00">(Sticky)</span>') . ($row['ft_locked'] == 1 ? ' <span class="forum_lock">(låst)</span>' : '') . ($row['ft_deleted'] != 0 ? ' (slettet)' : '') . $fs_info . '</td>
			<td class="t_uinfo">' . game::profile_link($row['ft_up_id'], $row['up_name'], $row['up_access_level']) . '<br /><span class="f_time">' . ess::$b->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="t_uinfo">' . ($row['fr_time'] ? game::profile_link($row['fr_up_id'], $row['r_up_name'], $row['r_up_access_level']) . '<br /><span class="f_time2"><a href="topic?id=' . $row['ft_id'] . '&amp;replyid=' . $row['fr_id'] . '" title="Gå til dette svaret">' . game::timespan($row['fr_time'], game::TIME_ABS) . ' &raquo;</a></span>' : '<span style="color: #AAA">Ingen</span>') . '</td>
		</tr>';
                }
            }
            // hent vanlige forumtråder
            $result = $this->get_topics(true, $show_deleted, $pagei->start, $pagei->per_page);
            // vis hver topic
            while ($row = $result->fetch()) {
                // sjekke status?
                $fs_info = '';
                $fs_link_suffix = '';
                if (\Kofradia\Forum\Category::$fs_check) {
                    if (empty($row['fs_time'])) {
                        $fs_info = ' <span class="fs_ft_new">NY!</span>';
                        $fs_count++;
                    } elseif ($row['fs_time'] < $row['fr_time']) {
                        $fs_info = ' <span class="fs_fr_new">' . $row['fs_new'] . ' <span class="fs_fr_newi">NY' . ($row['fs_new'] == 1 ? '' : 'E') . '</span></span>';
                        $fs_link_suffix = '&amp;fs';
                        $fs_count++;
                    }
                }
                $i++;
                echo '
		<tr' . (is_int($i / 2) ? ' class="color' . ($row['ft_deleted'] != 0 ? ' ft_deleted' : '') . ($this->forum->fmod && $vis_bokser ? ' box_handle' : '') . '"' : ($this->forum->fmod && $vis_bokser ? ' class="box_handle"' : ($row['ft_deleted'] != 0 ? ' class="ft_deleted"' : ''))) . '>
			<td class="f">' . ($this->forum->fmod && $vis_bokser ? '<input type="checkbox" name="emne[]" value="' . $row['ft_id'] . '" />' : '') . '<a href="topic?id=' . $row['ft_id'] . $fs_link_suffix . '">' . (empty($row['ft_title']) ? '<i>Mangler tittel</i>' : ucfirst(htmlspecialchars($row['ft_title']))) . '</a>' . ($row['ft_locked'] == 1 ? ' <span class="forum_lock">(låst)</span>' : '') . ($row['ft_deleted'] != 0 ? ' (slettet)' : '') . $fs_info . '</td>
			<td class="t_uinfo">' . game::profile_link($row['ft_up_id'], $row['up_name'], $row['up_access_level']) . '<br /><span class="f_time">' . ess::$b->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="t_uinfo">' . ($row['fr_time'] ? game::profile_link($row['fr_up_id'], $row['r_up_name'], $row['r_up_access_level']) . '<br /><span class="f_time2"><a href="topic?id=' . $row['ft_id'] . '&amp;replyid=' . $row['fr_id'] . '" title="Gå til dette svaret">' . game::timespan($row['fr_time'], game::TIME_ABS) . ' &raquo;</a></span>' : '<span style="color: #AAA">Ingen</span>') . '</td>
		</tr>';
            }
            echo '
	</tbody>
</table>';
            // merk alle som lest?
            if ($fs_count > 0 && login::$logged_in) {
                echo '
<p class="c" style="margin-top:0"><a href="' . htmlspecialchars(game::address("forum", $_GET, array(), array("fs_force" => true))) . '">Marker alle emner og svar som lest</a></p>';
            }
            // flere sider?
            if ($pagei->pages > 1) {
                echo '
<p class="c" style="margin-top:0">
	' . $pagei->pagenumbers() . '
</p>';
            }
            // slett emner knapp
            if ($this->forum->fmod && $vis_bokser) {
                echo '
<p class="c red" style="margin-top:0">' . show_sbutton("Slett merkede emner", 'name="slett_emner" onclick="return confirm(\'Er du sikker på at du vil slette valgte emner?\')"') . '</p>
</form>';
            }
        } else {
            echo '
<p align="center">Dette forumet er tomt. Bli den første til å opprette en forumtråd ved å <a href="topic_new?f=' . $this->forum->id . '">trykke her</a>.</p>';
        }
        echo '
	</div>
</div>';
    }
Beispiel #10
0
    /**
     * Utfør et søk
     */
    protected static function search_handle($search_list, $search_list2, $nodes)
    {
        // hent alle enhetene
        $result = \Kofradia\DB::get()->query("SELECT ni_id, ni_node_id, ni_type, nir_content, nir_params, nir_time FROM nodes_items LEFT JOIN nodes_items_rev ON nir_id = ni_nir_id WHERE ni_enabled != 0 AND ni_deleted = 0 ORDER BY ni_priority");
        while ($row = $result->fetch()) {
            if (!isset($nodes[$row['ni_node_id']])) {
                continue;
            }
            $data = nodes::content_build($row);
            $nodes[$row['ni_node_id']]['enheter'][] = $data;
            // bygg opp plain tekst
            $plain = preg_replace("/<br[^\\/>]*\\/?>/u", "\n", $data);
            $plain = preg_replace("/(<\\/?(h[1-6]|p)[^>]*>)/u", "\n\\1", $plain);
            $plain = html_entity_decode(strip_tags($plain));
            $plain = preg_replace("/(^ +| +\$|\\r)/mu", "", $plain);
            #$plain = preg_replace("/(?<![!,.\\n ])\\n/u", " ", $plain);
            $plain = preg_replace("/\\n/u", " ", $plain);
            $plain = preg_replace("/  +/u", " ", $plain);
            $plain = trim($plain);
            $nodes[$row['ni_node_id']]['plain'] .= $plain . " ";
        }
        // sett opp riktige referanser og lag tree
        $sub = array();
        foreach (nodes::$nodes as $row) {
            if ($row['node_enabled'] != 0) {
                $sub[$row['node_parent_node_id']][] = $row['node_id'];
            }
        }
        $tree = new tree($sub);
        $data = $tree->generate(0, NULL, $nodes);
        // sett opp paths
        $paths = array();
        $path = array();
        $number = 1;
        foreach ($data as $row) {
            for (; $row['number'] <= $number; $number--) {
                // fjern fra path
                array_pop($path);
            }
            if ($row['number'] >= $number) {
                // legg til i path
                switch ($row['data']['node_type']) {
                    case "url_absolute":
                        $path[] = '<a href="' . htmlspecialchars($row['data']['params']->get("url")) . '"' . ($row['data']['params']->get("new_window") ? ' target="_blank"' : '') . '>' . htmlspecialchars($row['data']['node_title']) . '</a>';
                        break;
                    case "url_relative":
                        $path[] = '<a href="' . ess::$s['relative_path'] . htmlspecialchars($row['data']['params']->get("url")) . '"' . ($row['data']['params']->get("new_window") ? ' target="_blank"' : '') . '>' . htmlspecialchars($row['data']['node_title']) . '</a>';
                        break;
                    default:
                        if ($row['data']['node_id'] == nodes::$default_node) {
                            $url = ess::$s['relative_path'] . '/node';
                        } else {
                            $url = ess::$s['relative_path'] . '/node/' . $row['data']['node_id'];
                        }
                        $path[] = '<a href="' . htmlspecialchars($url) . '">' . htmlspecialchars($row['data']['node_title']) . '</a>';
                }
            }
            $paths[$row['data']['node_id']] = $path;
            $number = $row['number'];
        }
        // sett opp søkeresultater
        $result = array();
        $points = array();
        $points2 = array();
        foreach ($data as $row) {
            if ($row['data']['node_type'] != "container") {
                continue;
            }
            // utfør søk
            $found = true;
            $p = 0;
            $p2 = 0;
            foreach ($search_list as $key => $regex) {
                $ok = false;
                $matches = null;
                // søk i teksten
                if (preg_match_all($regex, $row['data']['plain'], $matches)) {
                    $ok = true;
                    $p += count($matches[0]);
                }
                if (preg_match_all($search_list2[$key], $row['data']['plain'], $matches)) {
                    $ok = true;
                    $p2 += count($matches[0]);
                }
                // søk i tittelen
                if (preg_match_all($regex, $row['data']['node_title'], $matches)) {
                    $ok = true;
                    $p += count($matches[0]);
                }
                if (preg_match_all($search_list2[$key], $row['data']['node_title'], $matches)) {
                    $ok = true;
                    $p2 += count($matches[0]);
                }
                if ($ok) {
                    continue;
                }
                $found = false;
                break;
            }
            // fant?
            if ($found) {
                $result[] = $row;
                $points[] = $p;
                $points2[] = $p2;
            }
        }
        // vis søkeresultater
        if (count($result) == 0) {
            echo '
<p style="font-weight: bold">Ingen treff ble funnet.</p>';
        } else {
            // sorter søkeresultatene
            array_multisort($points, SORT_DESC, SORT_NUMERIC, $points2, SORT_DESC, SORT_NUMERIC, $result);
            echo '
<h2>Søkeresultater</h2>';
            ess::$b->page->add_css('
.nodes_search_node {
	position: relative;
	background-color: #222;
	padding: 0 10px;
	overflow: hidden;
	margin: 10px 0;
}
.nodes_search_path {
	
}
.nodes_search_points {
	position: absolute;
	right: 5px;
	bottom: 5px;
	color: #AAA;
	margin: 0;
	font-size: 11px;
	text-align: right;
}');
            redirect::store("/node/search", redirect::ROOT);
            $pagei = new pagei(pagei::TOTAL, count($result), pagei::PER_PAGE, 15, pagei::ACTIVE_GET, "side");
            $result = array_slice($result, $pagei->start, $pagei->per_page, true);
            foreach ($result as $key => $row) {
                $partial = $points2[$key] - $points[$key];
                if ($row['data']['node_id'] == nodes::$default_node) {
                    $url = ess::$s['relative_path'] . '/node';
                } else {
                    $url = ess::$s['relative_path'] . '/node/' . $row['data']['node_id'];
                }
                echo '
<div class="nodes_search_node">
	<h3><a href="' . $url . '">' . htmlspecialchars($row['data']['node_title']) . '</a></h3>
	<p class="nodes_search_path">' . implode(" &raquo; ", $paths[$row['data']['node_id']]) . '</p>
	<p class="nodes_search_points">' . ($points[$key] > 0 ? $points[$key] . ' treff' : '') . ($partial > 0 ? '<br />' . fwords("%d delvis treff", "%d delvise treff", $partial) : '') . '</p>
</div>';
            }
            if ($pagei->pages > 1) {
                echo '
<p class="c">' . $pagei->pagenumbers() . '</p>';
            }
        }
    }
Beispiel #11
0
    /**
     * Felt for advarsel
     */
    protected static function advarsel_input($kategori = null)
    {
        $active = !empty($_POST['a_active']);
        $types = crewlog::$user_warning_types;
        $types_name = crewlog::$user_warning_types_name;
        ess::$b->page->add_js_domready('
	$("advarsel_inactive").getElement("a").addEvent("click", function(event)
	{
		$("advarsel_inactive").addClass("hide");
		$("advarsel_active").removeClass("hide");
		$("a_active").set("value", "1");
		event.stop();
	});
	$("advarsel_active").getElement("a").addEvent("click", function(event)
	{
		$("advarsel_inactive").removeClass("hide");
		$("advarsel_active").addClass("hide");
		$("a_active").set("value", "0");
		event.stop();
	});');
        $html = '
<div id="advarsel_inactive"' . ($active ? ' class="hide"' : '') . '>
	<p class="c"><a href="#">Legg til advarsel sammen med endringen</a></p>
</div>
<div id="advarsel_active"' . (!$active ? ' class="hide"' : '') . '>
	<p class="c"><a href="#">Ikke legg til advarsel</a></p>
	<div class="bg1_c" style="width: 400px">
		<h1 class="bg1">Gi advarsel til brukeren<span class="left2"></span><span class="right2"></span></h1>
		<div class="bg1">
			<form action="" method="post">
				<input type="hidden" name="a_active" id="a_active" value="' . ($active ? 1 : 0) . '" />
				<dl class="dd_right">';
        if ($kategori) {
            if (!isset($types_name[$kategori])) {
                throw new HSException("Ugyldig kategori.");
            }
            $html .= '
					<dt>Kategori</dt>
					<dd>' . htmlspecialchars($types[$types_name[$kategori]]) . '</dd>';
        } else {
            $html .= '
					<dt>Kategori</dt>
					<dd>
						<select name="a_type">';
            $type = isset($_POST['a_type']) && isset($types[$_POST['a_type']]) ? intval($_POST['a_type']) : false;
            if ($type === false) {
                $html .= '
							<option value="">Velg ..</option>';
            }
            foreach ($types as $key => $row) {
                $html .= '
							<option value="' . $key . '"' . ($key === $type ? ' selected="selected"' : '') . '>' . htmlspecialchars($row) . '</option>';
            }
            $html .= '
						</select>
					</dd>';
        }
        $html .= '
					<dt>Alvorlighet/prioritet</dt>
					<dd>
						<select name="a_priority">';
        $priority = isset($_POST['a_priority']) && is_numeric($_POST['a_priority']) && $_POST['a_priority'] >= 1 && $_POST['a_priority'] <= 3 ? $_POST['a_priority'] : 2;
        $html .= '
							<option value="1"' . ($priority == 1 ? ' selected="selected"' : '') . '>Lav</option>
							<option value="2"' . ($priority == 2 ? ' selected="selected"' : '') . '>Moderat</option>
							<option value="3"' . ($priority == 3 ? ' selected="selected"' : '') . '>Høy</option>
						</select>
					</dd>
				</dl>
				<p>Begrunnelse for advarsel</p>
				<p><textarea name="a_log" rows="10" cols="30" style="width: 98%">' . htmlspecialchars(postval("a_log")) . '</textarea></p>
				<p><input type="checkbox" name="a_notify"' . ($_SERVER['REQUEST_METHOD'] == "POST" && !isset($_POST['a_notify']) ? '' : ' checked="checked"') . ' id="warning_notify" /><label for="warning_notify"> Gi brukeren informasjon om denne advarselen. Kun kategori og begrunnelse vil bli oppgitt til brukeren som en logg i hendelser.</label></p>
			</form>
		</div>
	</div>';
        // analyser advarsler
        $lca_id = crewlog::$actions['user_warning'][0];
        $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 15);
        $result = $pagei->query("\n\t\t\tSELECT lc_id, lc_up_id, lc_time, lc_log, lcd_data_int\n\t\t\tFROM log_crew\n\t\t\t\tJOIN users_players ON lc_a_up_id = up_id AND up_u_id = " . page_min_side::$active_user->id . "\n\t\t\t\tLEFT JOIN log_crew_data ON lcd_lc_id = lc_id AND lcd_lce_id = 5\n\t\t\tWHERE lc_lca_id = {$lca_id} AND (lcd_data_int IS NULL OR lcd_data_int = 0)\n\t\t\tORDER BY lc_time DESC");
        $data = array();
        while ($row = $result->fetch()) {
            $data[$row['lc_id']] = $row;
        }
        // sett opp data
        $data = crewlog::load_summary_data($data);
        $html .= '
	<div class="bg1_c ' . (count($data) == 0 ? 'xsmall' : 'xmedium') . '">
		<h1 class="bg1">Tidligere advarsler<span class="left2"></span><span class="right2"></span></h1>
		<div class="bg1">';
        if (count($data) == 0) {
            $html .= '
			<p>Brukeren har ingen tidligere advarsler.</p>';
        } else {
            ess::$b->page->add_css('
.advarsel { border: 1px solid #292929; margin: 10px 0; padding: 0 10px }');
            foreach ($data as $row) {
                $priority = $row['data']['priority'] == 1 ? "lav" : ($row['data']['priority'] == 2 ? "moderat" : "høy");
                $html .= '
			<div class="advarsel">
				<p><b>' . ess::$b->date->get($row['lc_time'])->format() . '</b>: ' . $row['data']['type'] . ' (alvorlighet: <b>' . $priority . '</b>):</p>
				<ul>
					<li>' . game::format_data($row['lc_log']) . '</li>
					<li>Internt notat: ' . game::format_data($row['data']['note']) . '</li>
				</ul>
				<p>' . (empty($row['data']['notified']) ? 'Ble IKKE varslet.' : 'Ble varslet.') . ' Av <user id="' . $row['lc_up_id'] . '" /></p>
			</div>';
            }
            // TODO: AJAX på sidevalg
            $html .= '
			<p class="c">' . $pagei->pagenumbers() . '</p>';
            if ($pagei->pages > 1) {
                $html .= '
			<p class="c dark">(Sidene åpner i samme vindu, så pass på hvis du har fylt inn feltene ovenfor.)</p>';
            }
        }
        $html .= '
		</div>
	</div>
</div>';
        return $html;
    }
Beispiel #12
0
					<th>Status</th>
					<th>Start</th>
					<th>Slutt</th>
					<th>Stemmer</th>
				</tr>
			</thead>
			<tbody>';
    $i = 0;
    while ($row = $result->fetch()) {
        echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td class="r">' . $row['p_id'] . '</td>
					<td><a href="' . $__server['relative_path'] . '/polls/admin/' . $row['p_id'] . '">' . htmlspecialchars($row['p_title']) . '</a></td>
					<td>' . ($row['p_active'] == 0 ? 'Deaktivert' : '<b>Synlig</b>') . '</td>
					<td>' . ($row['p_time_start'] ? $_base->date->get($row['p_time_start'])->format() : 'Ikke publisert') . '</td>
					<td>' . ($row['p_time_end'] ? $_base->date->get($row['p_time_end'])->format() : 'Aldri') . '</td>
					<td class="r">' . game::format_number($row['p_votes']) . '</td>
				</tr>';
    }
    echo '
			</tbody>
		</table>';
    if ($pagei->pages > 1) {
        echo '
		<p class="c">' . $pagei->pagenumbers($__server['relative_path'] . '/polls/admin', $__server['relative_path'] . '/polls/admin?side=_pageid_') . '</p>';
    }
}
echo '
	</div>
</div>';
$_base->page->load();
Beispiel #13
0
    /**
     * Vis oversikt over garasjen
     */
    protected function garasje_show()
    {
        ess::$b->page->add_title("Garasje");
        // kjøpe garasje?
        if (isset($this->parts[1]) && $this->parts[1] == "kjop") {
            redirect::store("/gta/garasje/kjop", redirect::ROOT);
            return $this->garasje_kjop_show();
        }
        // avslutte garasje?
        if (isset($this->parts[1]) && $this->parts[1] == "avslutt") {
            redirect::store("/gta/garasje/avslutt", redirect::ROOT);
            return $this->garasje_avslutt_show();
        }
        // endre garasje?
        if (isset($this->parts[1]) && $this->parts[1] == "endre") {
            redirect::store("/gta/garasje/endre", redirect::ROOT);
            return $this->garasje_endre_show();
        }
        // vise detaljer over garasje?
        if (isset($this->parts[1]) && $this->parts[1] == "detaljer") {
            redirect::store("/gta/garasje/detaljer", redirect::ROOT);
            return $this->garasje_details_show();
        }
        // betale leie?
        if (isset($this->parts[1]) && $this->parts[1] == "betale") {
            redirect::store("/gta/garasje/betale", redirect::ROOT);
            return $this->garasje_betale_show();
        }
        // skjema
        $this->form = \Kofradia\Form::getByDomain("gta_garasje", login::$user);
        // anti-bot
        $this->antibot = antibot::get("biltyveri", 10);
        $this->antibot->check_required(ess::$s['rpath'] . '/gta');
        // flytte biler?
        if (isset($_POST['flytt'])) {
            return $this->garasje_flytt_show();
        }
        // selge biler?
        if (isset($_POST['selg'])) {
            $this->garasje_selg_handle();
        }
        // hent informasjon om garasjen
        $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ugg_time, ugg_time_next_rent, ugg_cost_total, ugg_places, ff_id, ff_name\n\t\t\tFROM users_garage\n\t\t\t\tLEFT JOIN ff ON ff_id = ugg_ff_id\n\t\t\tWHERE ugg_up_id = {$this->gta->up->id} AND ugg_b_id = {$this->gta->up->data['up_b_id']}");
        $garasje = $result->fetch();
        // kan vi betale nå?
        $can_pay = $garasje && gta::can_pay($garasje['ugg_time_next_rent']);
        echo '
<div class="col2_w" style="margin: 50px 50px 0">
	<div class="col_w left" style="width: 50%">
		<div class="col">
			<div class="bg1_c center" style="width: 85%">
				<h1 class="bg1">Garasje på ' . htmlspecialchars($this->gta->up->bydel['name']) . '<span class="left2"></span><span class="right2"></span></h1>
				<div class="bg1">' . (!$garasje ? '
					<p class="c">Du har ingen garasje i denne bydelen.</p>
					<p class="c"><a href="&rpath;/gta/garasje/kjop">Lei ny garasje</a></p>' : '
					<dl class="dd_right">
						<dt>Utleiefirma</dt>
						<dd><a href="&rpath;/ff/?ff_id=' . $garasje['ff_id'] . '">' . htmlspecialchars($garasje['ff_name']) . '</a></dd>
						<dt>Kapasitet</dt>
						<dd>' . game::format_num($garasje['ugg_places']) . '</dd>
						<dt>Neste betalingsfrist</dt>
						<dd>' . ess::$b->date->get($garasje['ugg_time_next_rent'])->format() . ($can_pay ? '<br /><a href="&rpath;/gta/garasje/betale">Betal leie før fristen</a>' : '') . '</dd>
					</dl>
					<p class="c"><a href="&rpath;/gta/garasje/detaljer">Vis flere detaljer</a></p>
					<p>Leie for neste periode må betales innen betalingsfristen' . ($can_pay ? '' : ' og blir mulig 3 dager før fristen') . '.</p>') . '
				</div>
			</div>
		</div>
	</div>
	<div class="col_w right" style="width: 50%">
		<div class="col">
			<p class="c" style="margin-top: 0"><img src="&staticlink;/gta/garasje.jpg" alt="Garasje" style="border: 3px solid #1F1F1F" /></p>
		</div>
	</div>
</div>';
        if ($garasje) {
            // hent bilene i garasjen
            $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 15);
            $result = $pagei->query("\n\t\t\t\tSELECT s.id, s.gtaid, s.time, s.time_last_move, s.b_id_org, s.b_id, g.brand, g.model, g.img_mini, g.value, s.damage\n\t\t\t\tFROM users_gta AS s LEFT JOIN gta AS g ON s.gtaid = g.id\n\t\t\t\tWHERE ug_up_id = {$this->gta->up->id} AND s.b_id = {$this->gta->up->data['up_b_id']}\n\t\t\t\tORDER BY s.time DESC");
            echo '
<div class="bg1_c xmedium">
	<h1 class="bg1">Biler i garasjen<span class="left2"></span><span class="right2"></span></h1>
	<div class="bg1">';
            // har vi ingen biler?
            if ($result->rowCount() == 0) {
                echo '
		<p>Det er ingen biler plassert i denne garasjen. Bilene du stjeler vil bli plassert i garasjen i bydelen du oppholder deg.</p>';
            } else {
                echo '
		<form action="" method="post">
			' . $this->form->getHTMLInput() . '
			<table class="table tablemt center">
				<thead>
					<tr>
						<th><a href="#" class="box_handle_toggle" rel="bil[]">Merk alle</a></th>
						<th>Merke/Modell</th>
						<th>Dato anskaffet</th>
						<th>Skade</th>
						<th>Verdi</th>
					</tr>
				</thead>
				<tbody>';
                $i = 0;
                while ($row = $result->fetch()) {
                    echo '
					<tr class="box_handle' . (++$i % 2 == 0 ? ' color' : '') . '">
						<td><input type="checkbox" id="bil_' . $row['id'] . '" name="bil[]" value="' . $row['id'] . '" />' . (empty($row['img_mini']) ? '&nbsp;' : '<img src="' . $row['img_mini'] . '" alt="Bilde" />') . '</td>
						<td>' . htmlspecialchars($row['brand']) . '<br /><b>' . htmlspecialchars($row['model']) . '</b></td>
						<td>' . ess::$b->date->get($row['time'])->format() . '</td>
						<td align="right">' . $row['damage'] . ' %</td>
						<td align="right">' . game::format_cash($row['value'] * ((100 - $row['damage']) / 100)) . '</td>
					</tr>';
                }
                echo '
				</tbody>
			</table>' . ($pagei->pages > 1 ? '
			<p class="c">' . $pagei->pagenumbers() . '</p>' : '') . '
			<p class="c">
				' . show_sbutton("Selg biler", 'name="selg"') . '
				' . show_sbutton("Flytt biler", 'name="flytt"') . '
			</p>
		</form>';
            }
            echo '
	</div>
</div>';
        }
    }
Beispiel #14
0
    protected function show()
    {
        // tittel på meldingstråden
        ess::$b->page->add_title($this->thread->data_thread['it_title']);
        // sett opp deltakere
        $deltakere = array();
        $c = access::has("crewet");
        foreach ($this->thread->receivers as $row) {
            if ($this->thread->data_rel && $this->thread->data_rel['ir_up_id'] == $row['ir_up_id']) {
                continue;
            }
            $p = $row['ir_deleted'] != 0 || $row['up_access_level'] == 0 && (!access::has("crewet") || $row['u_access_level'] == 0 || $row['u_active_up_id'] != $row['ir_up_id']);
            $deltakere[] = ($p ? '<span class="user_strike">' : '') . '<user id="' . $row['ir_up_id'] . '" />' . ($p ? '</span>' : '');
        }
        $deltakere_siste = array_pop($deltakere);
        $this->add_receivers();
        // overskrift
        if ($this->thread->restrict || !$this->thread->can_reply_receivers) {
            echo '
<h1>Melding: ' . htmlspecialchars($this->thread->data_thread['it_title']) . '</h1>';
        } else {
            echo '
<form action="" method="post">
	<h1><span class="red">' . show_sbutton("Slett", 'name="slettalle" onclick="return confirm(\'Dette vil slette meldingstråden for alle deltakere. Denne handlingen kan ikke angres uten videre. Fortsette?\')"') . '</span> Melding: ' . htmlspecialchars($this->thread->data_thread['it_title']) . '</h1>
</form>';
        }
        // tittel og verktøy
        echo '
<form action="innboks" method="post">
	<p class="im_tools top h_right">
		<a href="innboks' . ($this->thread->data_rel ? '' : '?user='******'up_name'])) . '">Tilbake til meldinger</a>
		<input type="hidden" name="it_id[]" value="' . $this->thread->id . '" />' . (!isset($_GET['reply']) && $this->can_reply ? '
		' . show_sbutton("Opprett svar", 'name="reply" accesskey="s"', 'reply_link_form_show') : '') . ($this->thread->data_rel ? '
		<span class="red">' . show_sbutton("Slett", 'name="slett"  accesskey="d" onclick="return confirm(\'Er du sikker på at du vil slette meldingen?\')"') . '</span>' : '') . '
	</p>
</form>';
        // deltakere
        if ($deltakere_siste) {
            echo '
<p id="im_deltakere"><span id="im_deltakere_i">Deltakere: ' . (count($deltakere) > 0 ? implode(", ", $deltakere) . ' og ' : '') . $deltakere_siste . '</span></p>';
            if (!$this->thread->can_reply_access) {
                echo '
<p>Du har ikke mulighet til å svare i denne meldingen.</p>';
            } elseif (!$this->thread->can_reply_receivers) {
                echo '
<p>Det er ingen mottakere du kan svare til.</p>';
            }
        } else {
            echo '
<p>Det er ingen andre deltakere enn deg selv i denne meldingstråden.</p>';
        }
        // flere sider?
        if ($this->pagei->pages > 1) {
            echo '
<p class="c">' . $this->pagei->pagenumbers(array("goto")) . '</p>';
        }
        // svarskjema
        echo '
<div id="container_reply"' . (!isset($_GET['reply']) ? ' style="display: none"' : '') . '>
	<form action="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array(), array("reply" => true))) . '" method="post" onsubmit="this.onsubmit=function(){return false;}">
		<div class="section" style="margin-top:0">
			<h3>Skriv svar</h3>
			<dl class="dd_auto_100">
				<dt>Innhold</dt>
				<dd><textarea name="melding" rows="10" cols="75" id="textContent">' . htmlspecialchars(postval("melding")) . '</textarea></dd>
				<dt' . (isset($_POST['preview']) && isset($_POST['melding']) ? '' : ' style="display: none"') . ' id="previewDT">Forhåndsvisning</dt>
				<dd' . (isset($_POST['preview']) && isset($_POST['melding']) ? '' : ' style="display: none"') . ' id="previewDD">' . (!isset($_POST['melding']) || empty($_POST['melding']) ? 'Tom melding?!' : game::bb_to_html($_POST['melding'])) . '</dd>
			</dl>
			<h3 class="c">
				' . show_sbutton("Send melding", 'name="post" accesskey="s"') . '
				' . show_sbutton("Forhåndsvis", 'name="preview" accesskey="p" id="reply_link_preview"') . '
			</h3>
		</div>
	</form>
</div>';
        // meldingene
        echo '
<div id="innboks">';
        // hent meldingene på denne siden
        $result = $this->thread->get_messages($this->pagei->start, $this->limit);
        $i = 0;
        $last_id = 0;
        while ($row = $result->fetch()) {
            $e = $this->pagei->total - $i - ($this->pagei->active - 1) * $this->pagei->per_page;
            if ($i == 0) {
                $last_id = $row['im_id'];
            }
            echo $this->thread->reply_format($row, $e, $this->highlight_im_id == $row['im_id'], $i < $this->new);
            $i++;
        }
        echo '
</div>';
        if (!isset($_GET['reply']) && $this->can_reply || $this->thread->data_rel) {
            echo '
<form action="innboks" method="post">
	<input type="hidden" name="it_id[]" value="' . $this->thread->id . '" />' . ($this->thread->data_rel ? '
	<p class="im_tools bottom left" id="im_mark"></p>' : '') . '
	<p class="im_tools bottom">' . (!isset($_GET['reply']) && $this->can_reply ? '
		' . show_sbutton("Opprett svar", 'name="reply" accesskey="s"', 'reply_link_form_show') : '') . ($this->thread->data_rel ? '
		<span class="red">' . show_sbutton("Slett", 'name="slett"  accesskey="d" onclick="return confirm(\'Er du sikker på at du vil slette meldingen?\')"') . '</span>' : '') . '
	</p>
</form>';
        }
        // flere sider?
        if ($this->pagei->pages > 1) {
            echo '
<p class="c center w200">' . $this->pagei->pagenumbers(array("goto")) . '</p>';
        }
        echo '
<div class="clear"></div>';
        $this->add_css();
        $this->add_js($last_id);
        $this->load_page();
    }
Beispiel #15
0
    /**
     * Vis pokerhistorikk
     */
    protected function show_stats()
    {
        ess::$b->page->add_title("Historikk");
        ess::$b->page->add_css('
.poker_results tbody td { text-align: center }
.poker_results .vi { color: #F9E600 }
.poker_results .ta { color: #FF0000 }');
        // sideinformasjon - startede runder
        $pagei_s = new pagei(pagei::ACTIVE_GET, "side_s", pagei::PER_PAGE, 15);
        $result_s = $pagei_s->query("\n\t\t\tSELECT poker_id, poker_challenger_up_id, poker_starter_cards, poker_challenger_cards, poker_time_start, poker_time_challenge, poker_cash, poker_state, poker_prize\n\t\t\tFROM poker\n\t\t\tWHERE poker_starter_up_id = {$this->up->id} AND poker_state = 4\n\t\t\tORDER BY poker_time_challenge DESC");
        // sideinformasjon - utfordrede runder
        $pagei_u = new pagei(pagei::ACTIVE_GET, "side_u", pagei::PER_PAGE, 15);
        $result_u = $pagei_u->query("\n\t\t\tSELECT poker_id, poker_starter_up_id, poker_starter_cards, poker_challenger_cards, poker_time_start, poker_time_challenge, poker_cash, poker_state, poker_prize\n\t\t\tFROM poker\n\t\t\tWHERE poker_challenger_up_id = {$this->up->id} AND poker_state = 4\n\t\t\tORDER BY poker_time_challenge DESC");
        // antall totalt
        $total = $pagei_s->total + $pagei_u->total;
        putlog("PROFILVIS", "%c7%bVIS-POKER-HISTORIE:%b%c %u" . login::$user->player->data['up_name'] . "%u viste pokerhistorien ({$_SERVER['REQUEST_URI']})");
        echo '
<div class="bg1_c small">
	<h1 class="bg1">Din pokerhistorie<span class="left"></span><span class="right"></span></h1>
	<p class="h_left"><a href="poker">&laquo; Tilbake</a></p>
	<div class="bg1">
		<p class="c">Pokerstatistikken viser kun pokerrunder ca. 90 dager tilbake i tid.</p>';
        // ingen runder?
        if ($total == 0) {
            echo '
		<p class="c">Ingen pokerrunder er registrert på deg.</p>';
        } else {
            echo '
		<p class="c">Totalt finnes det <b>' . game::format_number($total) . '</b> pokerrunde' . ($total == 1 ? '' : 'r') . '.</p>';
        }
        echo '
	</div>
</div>';
        if ($total > 0) {
            // startede pokerrunder
            echo '
	<div class="bg1_c xlarge">
		<h2 class="bg1" id="startede">Mine startede pokerrunder<span class="left2"></span><span class="right2"></span></h2>
		<div class="bg1">';
            if ($pagei_s->total == 0) {
                echo '
			<p class="c">Du har ikke aldri startet noen pokerrunder.</p>';
            } else {
                echo '
			<p class="c">Du har totalt startet <b>' . game::format_number($pagei_s->total) . '</b> pokerrunde' . ($pagei_s->total == 1 ? '' : 'r') . '.</p>
			<table class="table center poker_results" width="100%">
				<thead>
					<tr>
						<th>Motstander</th>
						<th>Tid</th>
						<th>Din/motstanderens kombinasjon</th>
						<th>Beløp</th>
						<th>Resultat</th>
					</tr>
				</thead>
				<tbody>';
                $i = 0;
                while ($row = $result_s->fetch()) {
                    echo $this->stats_row($row, true, ++$i);
                }
                echo '
				</tbody>
			</table>
			<p class="c">' . $pagei_s->pagenumbers(game::address("poker", $_GET, array("side_s")) . "#startede", game::address("poker", $_GET, array("side_s"), array("side_s" => "_pageid_")) . "#startede") . '</p>';
            }
            echo '
		</div>
	</div>';
            // startede pokerrunder
            echo '
	<div class="bg1_c xlarge">
		<h2 class="bg1" id="utfordrede">Mine utfordrede pokerrunder<span class="left2"></span><span class="right2"></span></h2>
		<div class="bg1">';
            if ($pagei_u->total == 0) {
                echo '
			<p class="c">Du har ikke aldri utfordret noen pokerrunder.</p>';
            } else {
                echo '
			<p class="c">Du har totalt utfordret <b>' . game::format_number($pagei_u->total) . '</b> pokerrunde' . ($pagei_u->total == 1 ? '' : 'r') . '.</p>
			<table class="table center poker_results" width="100%">
				<thead>
					<tr>
						<th>Motstander</th>
						<th>Tid</th>
						<th>Din/motstanderens kombinasjon</th>
						<th>Beløp</th>
						<th>Resultat</th>
					</tr>
				</thead>
				<tbody>';
                $i = 0;
                while ($row = $result_u->fetch()) {
                    echo $this->stats_row($row, false, ++$i);
                }
                echo '
				</tbody>
			</table>
			<p class="c">' . $pagei_u->pagenumbers(game::address("poker", $_GET, array("side_u")) . "#utfordrede", game::address("poker", $_GET, array("side_u"), array("side_u" => "_pageid_")) . "#utfordrede") . '</p>';
            }
            echo '
		</div>
	</div>';
        }
    }
Beispiel #16
0
    /**
     * 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>';
    }
Beispiel #17
0
    /**
     * Vis auksjonen
     */
    protected function show()
    {
        // hent budet som leder, evt. vant
        $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ab_up_id, ab_bid, ab_time\n\t\t\tFROM auksjoner_bud\n\t\t\tWHERE ab_a_id = {$this->auksjon->id} AND ab_active != 0\n\t\t\tORDER BY ab_time DESC\n\t\t\tLIMIT 1");
        $bud_lead = $result->fetch();
        // hent alle budene
        $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 30);
        $result = $pagei->query("\n\t\t\tSELECT ab_up_id, ab_bid, ab_time, ab_active\n\t\t\tFROM auksjoner_bud\n\t\t\tWHERE ab_a_id = {$this->auksjon->id}\n\t\t\tORDER BY ab_time DESC");
        $bud = array();
        while ($row = $result->fetch()) {
            $bud[] = $row;
        }
        // sjekk om vi har bud
        $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ab_bid, ab_time\n\t\t\tFROM auksjoner_bud\n\t\t\tWHERE ab_a_id = {$this->auksjon->id} AND ab_up_id = {$this->up->id} AND ab_active != 0");
        $bud_own = $result->fetch();
        $bud_own_locked = $this->auksjon->data['a_type'] == auksjon::TYPE_KULER || time() > $bud_own['ab_time'] + auksjon::MAX_TIME_REMOVE;
        $type = auksjon_type::get($this->auksjon->data['a_type']);
        // beregn minstepris
        $minstepris = $bud_lead ? bcadd($bud_lead['ab_bid'], $this->auksjon->data['a_bid_jump']) : $this->auksjon->data['a_bid_start'];
        // sett opp tittel/beskrivelse
        $title = htmlspecialchars($this->auksjon->data['a_title']);
        // firma/familie?
        if ($this->auksjon->data['a_type'] == auksjon::TYPE_FIRMA) {
            $ff_id = $this->auksjon->params->get("ff_id");
            if ($ff_id) {
                $title = '<a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $ff_id . '">' . $title . '</a>';
            }
        }
        echo '
<div class="col2_w" style="margin: 40px"> 
	<div class="col_w left" style="width: 45%">
		<div class="col" style="margin-right: 20px">
			<div class="bg1_c">
				<h1 class="bg1">Auksjon<span class="left"></span><span class="right"></span></h1>
				<div class="bg1">
					<p class="c"><a href="auksjoner?t=' . $this->auksjon->data['a_type'] . '">Tilbake til oversikt</a></p>
					<dl class="dd_right">
						<dt>Beskrivelse</dt>
						<dd>' . $title . '</dd>' . ($type->have_up ? '
						<dt>Spiller</dt>
						<dd>' . ($this->auksjon->data['a_up_id'] ? '<user id="' . $this->auksjon->data['a_up_id'] . '" />' : 'Ingen spiller') . '</dd>' : '');
        // ikke startet?
        if ($this->auksjon->status == auksjon::STATUS_WAIT) {
            echo '
						<dt>Auksjonsstart</dt>
						<dd>' . ess::$b->date->get($this->auksjon->data['a_start'])->format(date::FORMAT_SEC) . '<br />' . game::counter($this->auksjon->data['a_start'] - time(), true) . '</dd>
						<dt>Auksjonslutt</dt>
						<dd>' . ess::$b->date->get($this->auksjon->data['a_end'])->format(date::FORMAT_SEC) . '</dd>';
        } else {
            echo '
						<dt>Auksjonslutt</dt>
						<dd>' . ess::$b->date->get($this->auksjon->data['a_end'])->format(date::FORMAT_SEC) . ($this->auksjon->status == auksjon::STATUS_ACTIVE ? '<br />' . game::counter($this->auksjon->data['a_end'] - time(), true) : '') . '</dd>';
        }
        // vis info
        echo '
						<dt>Budstart</dt>
						<dd>' . game::format_cash($this->auksjon->data['a_bid_start']) . '</dd>
						<dt>Minste budøkning</dt>
						<dd>' . game::format_cash($this->auksjon->data['a_bid_jump']) . '</dd>';
        // status
        if ($this->auksjon->status == auksjon::STATUS_WAIT) {
            // ikke startet
            echo '
						<dt>Status</dt>
						<dd>Ikke startet</dd>';
        } elseif ($this->auksjon->status == auksjon::STATUS_FINISHED) {
            // ferdig
            echo '
						<dt>Status</dt>
						<dd>Avsluttet</dd>
						<dt>Vunnet av</dt>';
            // vinnerbudet
            if ($bud_lead) {
                echo '
						<dd><user id="' . $bud_lead['ab_up_id'] . '" /></dd>';
            } else {
                echo '
						<dd>Ingen vinner</dd>';
            }
        } else {
            // pågår
            echo '
						<dt>Status</dt>
						<dd>Pågår nå</dd>';
        }
        echo '
					</dl>';
        // mer info?
        if (!empty($this->auksjon->data['a_info'])) {
            echo '
					<p>' . game::bb_to_html($this->auksjon->data['a_info']) . '</p>';
        }
        echo '
				</div>
			</div>
		</div>
	</div>
	<div class="col_w right" style="width: 55%">
		<div class="col" style="margin-left: 20px">
			<div class="bg1_c">
				<h1 class="bg1">Bud<span class="left"></span><span class="right"></span></h1>
				<div class="bg1">';
        // auksjon pågår -- legg til nye bud
        if ($this->auksjon->status == auksjon::STATUS_ACTIVE) {
            $own = $this->auksjon->data['a_up_id'] == $this->up->id;
            if (!$own) {
                // første budet?
                if (!$bud_lead) {
                    echo '
					<p>Dette er det første budet på denne auksjonen. Du må derfor by minimum ' . game::format_cash($this->auksjon->data['a_bid_start']) . '.</p>';
                } else {
                    echo '
					<p>Du må by minimum ' . game::format_cash($this->auksjon->data['a_bid_jump']) . ' høyere enn ' . ($bud_lead['ab_up_id'] == $this->up->id ? 'ditt forrige bud' : 'det forrige budet til <user id="' . $bud_lead['ab_up_id'] . '" />') . ' på ' . game::format_cash($bud_lead['ab_bid']) . '.</p>';
                }
                // bud på kuler kan ikke trekkes tilbake
                // TODO: om noe kan trekkes tilbake bør bestemmes av auksjonen, ikke logikken i koden her
                if ($this->auksjon->data['a_type'] == auksjon::TYPE_KULER) {
                    echo '
					<p><b>Budet er bindende og kan ikke trekkes tilbake!</b></p>
					<p>Dersom noen byr over deg, vil budet ditt bli inaktivt og du får pengene igjen.</p>';
                } else {
                    echo '
					<p>Du kan trekke tilbake budet ditt innen det har gått ' . game::timespan(auksjon::MAX_TIME_REMOVE, game::TIME_FULL) . '. Etter ' . game::timespan(auksjon::MAX_TIME_REMOVE, game::TIME_FULL | game::TIME_NOBOLD) . ' er budet ditt bindende og det kan ikke trekkes tilbake.</p>
					<p>Dersom noen byr over deg, vil budet ditt bli inaktivt og du får pengene igjen etter at budet har stått i ' . game::timespan(auksjon::MAX_TIME_REMOVE, game::TIME_FULL | game::TIME_NOBOLD) . '.</p>';
                }
            }
            // har vi bydd?
            if ($bud_own) {
                // gått ut på tid?
                if ($bud_own_locked) {
                    echo '
					<p>Du har bydd på denne auksjonen og ditt bud er bindende.</p>';
                } else {
                    // kan trekke budet
                    echo '
					<p>Du har bydd på denne auksjonen og kan fortsatt trekke tilbake ditt bud.</p>';
                }
                // vis budøkning
                echo '
					<form action="" method="post">
						<dl class="dd_right">
							<dt>Øk bud til</dt>
							<dd><input class="styled w100 r" type="text" name="amount" value="' . game::format_cash($minstepris) . '" /></dd>
						</dl>
						<p class="c">' . show_sbutton("Øk bud", 'name="raise_bid"') . (!$bud_own_locked ? ' ' . show_sbutton("Slett bud", 'name="del_bid"') : '') . '</p>
					</form>';
            } elseif (!$own) {
                // har ikke noe våpen?
                if ($this->auksjon->data['a_type'] == auksjon::TYPE_KULER && !$this->up->weapon) {
                    echo '
					<p>Du har ikke noe våpen og kan ikke delta i denne auksjonen.</p>';
                } elseif ($this->auksjon->data['a_type'] == auksjon::TYPE_FIRMA && $this->up->get_health_percent() < player::FF_HEALTH_LOW * 100) {
                    echo '
					<p>Du har for lav helse til å kunne by på et firma.</p>';
                } else {
                    echo '
					<form action="" method="post">
						<dl class="dd_right">
							<dt>Legg inn bud</dt>
							<dd><input class="styled w100 r" type="text" name="amount" value="' . game::format_cash($minstepris) . '" /></dd>
						</dl>
						<p class="c">' . show_sbutton("Legg inn bud", 'name="place_bid"') . '</p>
					</form>';
                }
            }
        }
        // vis budene
        if (count($bud) == 0) {
            if ($this->auksjon->status != auksjon::STATUS_WAIT) {
                echo '
					<p class="c">Ingen bud er lagt inn i denne auksjonen.</p>';
            }
        } else {
            ess::$b->page->add_css('.bud_inactive { text-decoration: line-through; color: #888 }');
            echo '
					<dl class="dd_right">';
            // gå gjennom alle budene
            foreach ($bud as $row) {
                echo '
						<dt' . ($row['ab_active'] == 0 ? ' class="bud_inactive"' : '') . '>' . ess::$b->date->get($row['ab_time'])->format("H:i:s") . ': <user id="' . $row['ab_up_id'] . '" /></dt>
						<dd' . ($row['ab_active'] == 0 ? ' class="bud_inactive"' : '') . '>' . game::format_cash($row['ab_bid']) . '</dd>';
            }
            echo '
					</dl>';
            if ($pagei->pages > 1) {
                echo '
					<p class="c">' . $pagei->pagenumbers() . '</p>';
            }
        }
        echo '
				</div>
			</div>
		</div>
	</div>
</div>';
    }
Beispiel #18
0
                $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>';
            }
            echo '
</form>';
        }
    }
}
$_base->page->load();
Beispiel #19
0
			<th>Spiller</th>
			<th>E-post</th>
			<th>Reg IP<br />(for brukeren)</th>
			<th>Siste IP<br />(for brukeren)</th>
			<th>Hits</th>
			<th>Registrert</th>
			<th>Sist pålogget</th>
		</tr>
	</thead>
	<tbody>';
$color = true;
while ($row = $result->fetch()) {
    echo '
		<tr' . ($color = !$color ? ' class="color"' : '') . '>
			<td>' . $row['up_id'] . '</td>
			<td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td>
			<td>' . htmlspecialchars($row['u_email']) . ' (#' . $row['u_id'] . ')</td>
			<td><a href="finn?ip=' . urlencode($row['u_created_ip']) . '">' . htmlspecialchars($row['u_created_ip']) . '</a></td>
			<td>' . ($row['ip_count'] > 0 ? '<b style="color: #FF0000">' . game::format_number($row['ip_count']) . '</b> - ' : '') . '<a href="finn?ip=' . urlencode($row['u_online_ip']) . '">' . htmlspecialchars($row['u_online_ip']) . '</a></td>
			<td class="r">' . game::format_number($row['up_hits']) . '</td>
			<td>' . $_base->date->get($row['up_created_time'])->format() . '</td>
			<td>' . $_base->date->get($row['up_last_online'])->format() . '</td>
		</tr>';
}
echo '
		<tr>
			<th colspan="8" class="c">' . $pagei->pagenumbers() . '</th>
		</tr>
	</tbody>
</table>';
$_base->page->load();
Beispiel #20
0
    /**
     * Reise til en annen bydel
     */
    protected function reise()
    {
        redirect::store("bydeler#b");
        $this->up->fengsel_require_no();
        $this->up->bomberom_require_no();
        // finn bydelen
        $bydel = false;
        foreach ($this->bydeler as $row) {
            if ($row['id'] == 0 || $row['active'] == 0) {
                continue;
            }
            if ($row['name'] == $_POST['reise']) {
                $bydel = $row;
                break;
            }
        }
        if (!$bydel) {
            ess::$b->page->add_message("Fant ikke bydelen.", "error");
            redirect::handle();
        }
        // allerede i bydelen?
        if ($bydel['id'] == $this->up->data['up_b_id']) {
            $this->reise_error_in($bydel);
        }
        // teleportere?
        if (isset($_POST['teleporter']) && access::is_nostat()) {
            // teleporter
            $a = \Kofradia\DB::get()->exec("UPDATE users_players SET up_b_id = {$bydel['id']}, up_b_time = " . time() . " WHERE up_id = " . $this->up->id . " AND up_access_level != 0 AND up_b_id != {$bydel['id']}");
            if ($a == 0) {
                $this->reise_error_in($bydel);
            }
            ess::$b->page->add_message('Du teleporterte til <b>' . htmlspecialchars($bydel['name']) . '</b>.');
            redirect::handle();
        }
        // med bil?
        if (isset($_POST['gta'])) {
            if ($this->gta_count == 0) {
                ess::$b->page->add_message("Du har ingen biler i bydelen du oppholder deg i.", "error");
                redirect::handle();
            }
            if (!$this->gta_garage[$bydel['id']]['garage']) {
                ess::$b->page->add_message('Du har ingen garasje på <b>' . htmlspecialchars($bydel['name']) . '</b> og kan ikke reise dit med bil.', "error");
                redirect::handle();
            }
            if ($this->gta_garage[$bydel['id']]['garage_free'] == 0) {
                ess::$b->page->add_message('Det er ingen ledige plasser i garasjen på <b>' . htmlspecialchars($bydel['name']) . '</b>.', "error");
                redirect::handle();
            }
            // regn ut avstand (km)
            $distance = self::calc_travel_distance($this->up->bydel, $bydel);
            // har vi valgt en bil?
            if (isset($_POST['sel'])) {
                if (!isset($_POST['bil'])) {
                    ess::$b->page->add_message("Du må velge en bil du ønsker å reise med.", "error");
                } else {
                    $this->reise_gta_check($bydel, $distance);
                }
                // TODO
            }
            // vis skjema for å velge en bil å reise med
            ess::$b->page->add_title($bydel['name'], "Reis med bil");
            // hent bilene i garasjen
            $pagei = new pagei(pagei::ACTIVE_POST, "side", pagei::PER_PAGE, 10);
            $result = $pagei->query("\n\t\t\t\tSELECT s.id, s.time, g.brand, g.model, g.img_mini, g.value, s.damage, g.points\n\t\t\t\tFROM users_gta AS s\n\t\t\t\t\tJOIN gta AS g ON s.gtaid = g.id\n\t\t\t\tWHERE ug_up_id = {$this->up->id} AND s.b_id = {$this->up->data['up_b_id']}\n\t\t\t\tORDER BY g.points*(100-s.damage) DESC");
            echo '
<div class="bg1_c xmedium">
	<h1 class="bg1">Reis med bil til ' . htmlspecialchars($bydel['name']) . '<span class="left"></span><span class="right"></span></h1>
	<div class="bg1">
		<p class="c"><a href="bydeler#b">Tilbake</a></p>
		<form action="bydeler#b" method="post">
			<input type="hidden" name="reise" value="' . htmlspecialchars($bydel['name']) . '" />
			<input type="hidden" name="gta" />
			<table class="table center">
				<thead>
					<tr>
						<th colspan="2">Merke/Modell</th>
						<th>Dato anskaffet</th>
						<th>Skade</th>
						<th>Energi</th>
						<th>Utgifter</th>
					</tr>
				</thead>
				<tbody>';
            $i = 0;
            while ($row = $result->fetch()) {
                $price = $distance * self::GTA_PRICE_KM * self::get_gta_factor_points($row['points']) * self::get_gta_factor_damage($row['damage']);
                $energy = self::get_gta_energy($row['damage']);
                echo '
					<tr class="box_handle' . (++$i % 2 == 0 ? ' color' : '') . '">
						<td><input type="radio" id="bil_' . $row['id'] . '" name="bil" value="' . $row['id'] . '"' . (postval("bil") == $row['id'] ? ' checked="checked"' : '') . ' />' . (empty($row['img_mini']) ? '&nbsp;' : '<img src="' . $row['img_mini'] . '" alt="Bilde" />') . '</td>
						<td>' . htmlspecialchars($row['brand']) . '<br /><b>' . htmlspecialchars($row['model']) . '</b></td>
						<td>' . ess::$b->date->get($row['time'])->format() . '</td>
						<td align="right">' . $row['damage'] . ' %</td>
						<td align="right">' . game::format_num($energy / $this->up->data['up_energy_max'] * 100, 1) . ' %</td>
						<td align="right">' . game::format_cash($price) . '</td>
					</tr>';
            }
            echo '
				</tbody>
			</table>' . ($pagei->pages > 1 ? '
			<p class="c">' . $pagei->pagenumbers("input") . '</p>' : '') . '
			<p class="c">' . show_sbutton("Reis til " . htmlspecialchars($bydel['name']), 'name="sel"') . '</p>
		</form>
	</div>
</div>';
            ess::$b->page->load();
        }
        // ta taxi?
        if (isset($_POST['taxi'])) {
            // har vi ikke nok energi?
            if (!$this->up->energy_check(self::TAXI_ENERGY * 1.3)) {
                ess::$b->page->add_message("Du har ikke nok energi for å reise med taxi.", "error");
                redirect::handle();
            }
            // regn ut avstand (km)
            $distance = self::calc_travel_distance($this->up->bydel, $bydel);
            // regn ut pris og rankpoeng
            $price = round($distance * self::TAXI_PRICE_KM);
            $points = round($distance * self::TAXI_POINTS_KM * $this->up->rank['number']);
            // har ikke nok rank?
            if ($this->up->data['up_points'] < $points * 2) {
                ess::$b->page->add_message("Du har ikke nok rank til å reise til " . htmlspecialchars($bydel['name']) . ".", "error");
                redirect::handle();
            }
            // forsøk å reis
            $a = \Kofradia\DB::get()->exec("UPDATE users_players SET up_cash = up_cash - {$price}, up_b_id = {$bydel['id']}, up_b_time = " . time() . " WHERE up_id = " . $this->up->id . " AND up_cash >= {$price} AND up_b_id != {$bydel['id']}");
            // feilet?
            if ($a == 0) {
                // allerede i bydelen?
                $result = \Kofradia\DB::get()->query("SELECT up_b_id FROM users_players WHERE up_id = " . $this->up->id);
                if ($result->fetchColumn(0) == $bydel['id']) {
                    $this->reise_error_in($bydel);
                }
                // hadde ikke råd
                $this->reise_error_cash($bydel);
            }
            // energi
            $this->up->energy_use(self::TAXI_ENERGY);
            // rank
            $this->up->increase_rank(-$points);
            // vellykket
            ess::$b->page->add_message("Du tok taxi til <b>" . htmlspecialchars($bydel['name']) . "</b>. Det kostet deg <b>" . game::format_cash($price) . "</b> og " . game::format_number($points) . " poeng.");
            redirect::handle();
        }
        ess::$b->page->add_message("Ukjent reisemetode.", "error");
        redirect::handle();
    }
Beispiel #21
0
    /**
     * Vis detaljer
     */
    protected function show_details()
    {
        if (empty($_GET['up_id']) || !access::has("mod")) {
            redirect::handle("etterlyst");
        }
        // last inn spiller
        $up_id = (int) $_GET['up_id'];
        $up = player::get($up_id);
        if (!$up) {
            ess::$b->page->add_message("Ingen spiller med id {$up_id}.", "error");
            redirect::handle("etterlyst");
        }
        $pagei = new pagei(pagei::PER_PAGE, 30, pagei::ACTIVE_GET, 'side');
        $result = $pagei->query("SELECT hl_id, hl_up_id, hl_by_up_id, hl_time, hl_amount, hl_amount_valid FROM hitlist WHERE hl_up_id = {$up->id} AND hl_amount_valid > 0 ORDER BY hl_time DESC");
        echo '
<div class="bg1_c medium">
	<h1 class="bg1">
		Etterlyst - ' . $up->data['up_name'] . '
		<span class="left"></span><span class="right"></span>
	</h1>
	<p class="h_left"><a href="etterlyst">&laquo; Tilbake</a></p>
	<div class="bg1">
		<p>Denne listen viser info om alle som har lagt til dusør på spilleren ' . $up->profile_link() . '.</p>';
        if ($pagei->total == 0) {
            echo '
		<p><b>Det er ingen som har satt dusør på denne spilleren.</b></p>';
        } else {
            echo '
		<table class="table center' . ($pagei->pages == 1 ? ' tablemb' : '') . '">
			<thead>
				<tr>
					<th>Satt av</th>
					<th>Tid</th>
					<th>Opprinnelig dusør</th>
					<th>Gjenstående dusør</th>
				</tr>
			</thead>
			<tbody>';
            $i = 0;
            while ($row = $result->fetch()) {
                echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td><user id="' . $row['hl_by_up_id'] . '" /></td>
					<td>' . ess::$b->date->get($row['hl_time'])->format() . '</td>
					<td class="r">' . game::format_cash($row['hl_amount']) . '</td>
					<td class="r">' . game::format_cash($row['hl_amount_valid']) . '</td>
				</tr>';
            }
            echo '
			</tbody>
		</table>';
            if ($pagei->pages > 1) {
                echo '
		<p class="c">' . $pagei->pagenumbers() . '</p>';
            }
        }
        echo '
	</div>
</div>';
    }
Beispiel #22
0
        $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']);
        echo '
					<tr>
						<td>' . ($player->id == $row['up_id'] ? htmlspecialchars($row['up_name']) : game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level'])) . '<br /><span style="font-size: 10px">' . $rank['name'] . '</span></td>
						<td style="font-size: 10px">
							Opprettet: ' . ess::$b->date->get($row['up_created_time'])->format() . '<br />' . ($row['up_access_level'] == 0 ? '
							Status: ' . ($row['up_deactivated_dead'] == 0 ? 'Deaktivert' : 'Død') . '<br />' : '
							Status: I live<br />') . '
							Sist pålogget: ' . ess::$b->date->get($row['up_last_online'])->format() . '
						</td>
					</tr>';
    }
    echo '
				</tbody>
			</table>' . ($pagei_other_up->pages > 1 ? '
			<p class="c">' . $pagei_other_up->pagenumbers() . '</p>' : '') . '
		</div>';
}
echo '
	</div>
	<div id="profile_right">';
// hent FF
$expire = time() - 86400;
// vis familier/firmaer man mistet medlemskap i siste 24 timer dersom spilleren er deaktivert
$where = !$player->active ? " AND ffm_status = " . ff_member::STATUS_DEACTIVATED . " AND (ffm_date_part IS NULL OR ffm_date_part > {$expire})" : " AND ffm_status = " . ff_member::STATUS_MEMBER . " AND ff_inactive = 0";
$result = \Kofradia\DB::get()->query("\n\tSELECT ffm_priority, ff_id, IFNULL(ffm_ff_name, ff_name) ffm_ff_name, ff_inactive, ff_type\n\tFROM ff_members JOIN ff ON ffm_ff_id = ff_id\n\tWHERE ffm_up_id = {$player->id}{$where}\n\tORDER BY ff_type != 1, ffm_ff_name");
if ($result->rowCount() > 0) {
    echo '
		<div class="section">
			<h2>Broderskap og firma</h2>' . (!$player->active ? '
			<p>Da spilleren døde:</p>' : '') . '
Beispiel #23
0
    /**
     * Vis logg
     */
    protected function show()
    {
        $ff_reset = $this->ff->data['ff_time_reset'] && !$this->ff->mod ? " AND ffl_time > {$this->ff->data['ff_time_reset']}" : "";
        // finn ut hva som er tilgjengelig
        $result = \Kofradia\DB::get()->query("SELECT DISTINCT ffl_type FROM ff_log WHERE ffl_ff_id = {$this->ff->id}{$ff_reset}");
        $in_use = array();
        while ($row = $result->fetch()) {
            $in_use[] = $row['ffl_type'];
        }
        $tilgjengelig = array();
        foreach (ff::$log_id as $id => $name) {
            if (in_array($id, $in_use)) {
                $tilgjengelig[] = $id;
            }
        }
        $i_bruk = $tilgjengelig;
        // filter
        $filter = array();
        $matches = false;
        foreach ($_GET as $name => $val) {
            if (preg_match("/^f([0-9]+)\$/Du", $name, $matches) && in_array($matches[1], $tilgjengelig)) {
                $filter[] = $matches[1];
            }
        }
        if (count($filter) == 0) {
            $filter = false;
        } else {
            $i_bruk = $filter;
            $filter = true;
            ess::$b->page->add_message("Du har aktivert et filter og viser kun bestemte enheter.");
        }
        if ($filter) {
            ess::$b->page->add_css('.filter_inactive { display: none }');
        } else {
            ess::$b->page->add_css('.filter_active { display: none }');
        }
        if (count($tilgjengelig) > 0) {
            echo '
<form action="" method="get">
	<input type="hidden" name="ff_id" value="' . $this->ff->id . '" />
	<div class="section" style="width: 400px" id="filteroptions">
		<h2>Filter</h2>
		<p class="h_right">
			<span class="logg_filters filter_active"><a href="#" class="box_handle_toggle" rel="f[]">Merk alle</a> <a href="javascript:void(0)" onclick="toggle_display(\'.logg_filters\', event)">Skjul filteralternativer</a></span>
			<span class="logg_filters filter_inactive"><a href="#" onclick="toggle_display(\'.logg_filters\', event)">Vis filteralternativer</a></span>
		</p>
		<div class="logg_filters filter_active">
			<table class="table center tablemt" width="100%">
				<tbody>';
            $tbody = new tbody(min(3, count($tilgjengelig)));
            // 3 kolonner
            foreach ($tilgjengelig as $id) {
                $title = ff::$log[ff::$log_id[$id]][1];
                $aktivt = in_array($id, $i_bruk) && $filter;
                $tbody->append('<input type="checkbox" name="f' . $id . '" rel="f[]" value=""' . ($aktivt ? ' checked="checked"' : '') . ' />' . htmlspecialchars($title), 'class="box_handle"');
            }
            $tbody->clean();
            echo '
				</tbody>
			</table>
			<p class="c">' . show_sbutton("Oppdater") . '</p>
		</div>
	</div>
</form>';
        }
        $where = $ff_reset;
        if ($filter) {
            $where .= ' AND ffl_type IN (' . implode(",", $i_bruk) . ')';
        }
        // sideinformasjon - hent radene på denne siden
        $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 30);
        $result = $pagei->query("SELECT SQL_CALC_FOUND_ROWS ffl_id, ffl_time, ffl_type, ffl_data, ffl_extra FROM ff_log WHERE ffl_ff_id = {$this->ff->id}{$where} ORDER BY ffl_time DESC, ffl_id DESC");
        if ($result->rowCount() == 0) {
            echo '
<p class="c">
	Ingen logg meldinger ble funnet.
</p>';
        } else {
            // css
            ess::$b->page->add_css('
.ffl_time {
	color: #AAA;
}');
            // logg meldingene
            $logs = array();
            while ($row = $result->fetch()) {
                $day = ess::$b->date->get($row['ffl_time'])->format(date::FORMAT_NOTIME);
                $data = $this->ff->format_log($row['ffl_id'], $row['ffl_time'], $row['ffl_type'], $row['ffl_data'], $row['ffl_extra']);
                $logs[$day][] = '<span class="ffl_time">' . ess::$b->date->get($row['ffl_time'])->format("H:i") . ':</span> ' . $data;
            }
            foreach ($logs as $day => $items) {
                echo '
<div class="section" style="width: 400px">
	<h2>' . $day . '</h2>';
                foreach ($items as $item) {
                    echo '
	<p>' . $item . '</p>';
                }
                echo '
</div>';
            }
            echo '
<p class="c">
	Viser ' . $pagei->count_page . ' av ' . $pagei->total . ' logg melding' . ($pagei->total == 1 ? '' : 'er');
            if ($pagei->pages > 1) {
                echo '<br />
	' . $pagei->pagenumbers(game::address("logg", $_GET, array("side")) . "#logg", game::address("logg", $_GET, array("side"), array("side" => "_pageid_")) . "#logg");
            }
            echo '
</p>';
        }
    }
Beispiel #24
0
    /**
     * Vise komplett liste
     */
    protected function all()
    {
        echo '
<div class="bg1_c medium">
	<h1 class="bg1">Rangeringsoversikt<span class="left"></span><span class="right"></span></h1>
	<div class="bg1">
		<p class="c"><a href="ranklist">&laquo; Vis kun topp-plaseringene</a></p>';
        if (isset($_GET['show_nsu'])) {
            $nsu = "";
            ess::$b->page->add_message("Du viser også brukere som ikke vises på vanlig statistikk!");
        } else {
            $nsu = "up_access_level < " . ess::$g['access_noplay'] . " AND ";
        }
        // finn ut antall spillere
        $result = \Kofradia\DB::get()->query("SELECT COUNT(up_id) FROM users_players WHERE {$nsu}up_access_level != 0");
        $antall_spillere = $result->fetchColumn(0);
        if ($antall_spillere == 0) {
            echo '
		<p>
			Det finnes ingen spillere...?!
		</p>';
        } else {
            // sideoppsett
            $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 50);
            // hent folka..
            $result = $pagei->query("\n\t\t\t\tSELECT up_id, up_name, up_access_level, up_points, up_last_online, upr_rank_pos\n\t\t\t\tFROM users_players\n\t\t\t\t\tLEFT JOIN users_players_rank ON upr_up_id = up_id\n\t\t\t\tWHERE {$nsu}up_access_level != 0\n\t\t\t\tORDER BY up_points DESC");
            $colspan = access::has("mod") ? 6 : 4;
            $e = 0;
            echo '
		<table class="table tablem" width="100%">
			<thead>
				<tr>
					<th>#</th>
					<th>Spillernavn</th>
					<th>Rank</th>
					<th>Sist pålogget</th>' . (access::has("mod") ? '
					<th>Rankpoeng</th>
					<th>&nbsp;</th>' : '') . '
				</tr>
			</thead>
			<tbody>
				<tr>
					<td colspan="' . $colspan . '" class="c">' . $pagei->pagenumbers() . '</td>
				</tr>';
            // startverdi
            $i = $pagei->start;
            $last_rank = 0;
            while ($row = $result->fetch()) {
                $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']);
                echo '
				<tr' . (++$e % 2 == 0 ? ' class="color"' : '') . '>
					<td class="r">' . ($last_rank != $row['upr_rank_pos'] ? '#' . game::format_number($row['upr_rank_pos']) : '<span style="color: #666">#' . game::format_number($row['upr_rank_pos']) . '</span>') . '</td>
					<td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td>
					<td class="c">' . $rank['name'] . '</td>
					<td class="r">' . game::timespan($row['up_last_online'], game::TIME_ABS) . '</td>' . (access::has("mod") ? '
					<td class="r">' . game::format_number($row['up_points']) . '</td>
					<td><a href="admin/brukere/finn?up_id=' . $row['up_id'] . '">IP-sjekk</a></td>' : '') . '
				</tr>';
                $last_rank = $row['upr_rank_pos'];
            }
            echo '
				<tr' . (++$e % 2 == 0 ? ' class="color"' : '') . '>
					<td colspan="' . $colspan . '" class="c">' . $pagei->pagenumbers() . '</td>
				</tr>
			</tbody>
		</table>';
        }
        echo '
	</div>
</div>';
    }
Beispiel #25
0
	<thead>
		<tr>
			<th>Bruker/spiller</th>
			<th>Type blokkering</th>
			<th>Ble utestengt</th>
			<th>Utestengt til</th>
			<th>Begrunnelse</th>
			<th>Intern info</th>
		</tr>
	</thead>
	<tbody>';
    $i = 0;
    while ($row = $result->fetch()) {
        $access = access::has(blokkeringer::$types[$row['ub_type']]['access']);
        echo '
		<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
			<td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td>
			<td>' . ($access ? '<a href="' . $__server['relative_path'] . '/min_side?u_id=' . $row['u_id'] . '&amp;b=blokk&amp;t=' . $row['ub_type'] . '">' : '') . htmlspecialchars(blokkeringer::$types[$row['ub_type']]['title']) . ($access ? '</a>' : '') . '</td>
			<td>' . $_base->date->get($row['ub_time_added'])->format(date::FORMAT_SEC) . '</td>
			<td>' . $_base->date->get($row['ub_time_expire'])->format(date::FORMAT_SEC) . '<br />
			' . game::timespan($row['ub_time_expire'], game::TIME_ABS) . '</td>
			<td>' . game::format_data($row['ub_reason'], "bb-opt", "Ingen begrunnelse oppgitt.") . '</td>
			<td>' . game::format_data($row['ub_note'], "bb-opt", "Ingen begrunnelse oppgitt.") . '</td>
		</tr>';
    }
    echo '
	</tbody>
</table>
<p>' . $pagei->pagenumbers() . '</p>';
}
$_base->page->load();
Beispiel #26
0
                    $birth = explode("-", $row['u_birth']);
                    $td[] = '<td class="r">' . (empty($row['u_birth']) || $row['u_birth'] == "0000-00-00" ? 'Ikke registrert' : intval($birth[2]) . ". " . $_lang['months'][intval($birth[1])] . " " . $birth[0]) . '</td>';
                }
                if (isset($show['banko'])) {
                    $td[] = '<td><input type="radio" name="u1" value="' . $row['up_id'] . '" /></td>';
                    $td[] = '<td><input type="radio" name="u2" value="' . $row['up_id'] . '" /></td>';
                }
                echo '
			<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
				' . implode("\n\t\t\t\t", $td) . '
			</tr>';
            }
            echo '
		</tbody>
	</table>';
            // vise bankoverføringer?
            if (isset($show['banko'])) {
                echo '
	<p>' . show_sbutton("Vis bankoverføringer") . '</p>';
            }
            echo '
</form>';
            // flere sider?
            if ($pagei->pages > 1) {
                echo '
<p>Navigasjon: ' . $pagei->pagenumbers() . '</p>';
            }
        }
    }
}
$_base->page->load();
Beispiel #27
0
			<th>Rank</th>
			<th>Plassering ' . $sort->show_link(6, 7) . '</th>
		</tr>
	</thead>
	<tbody>';
        $i = 0;
        while ($row = $result->fetch()) {
            $rank = game::rank_info($row['up_points'], $row['upr_rank_pos'], $row['up_access_level']);
            $rank_name = $rank['name'] . ($rank['orig'] ? ' (' . $rank['orig'] . ')' : '');
            echo '
		<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
			<td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td>
			<td class="r">' . game::timespan($row['up_last_online'], game::TIME_ABS) . '</td>
			<td>' . $rank_name . '</td>
			<td class="r">' . game::format_number($row['upr_rank_pos']) . '</td>
		</tr>';
        }
        echo '
	</tbody>
</table>';
        // flere sider?
        if ($pagei->pages > 1) {
            echo '
<div class="hr"></div>
<p class="c">
	' . $pagei->pagenumbers() . '
</p>';
        }
    }
}
$_base->page->load();
Beispiel #28
0
    /**
     * Construct
     */
    public function __construct()
    {
        // endre signatur i forumet
        if (login::$logged_in && (isset($_GET['show_signature']) || isset($_GET['hide_signature']))) {
            if (isset($_GET['show_signature']) && login::$user->data['u_forum_show_signature'] == 0) {
                \Kofradia\DB::get()->exec("UPDATE users SET u_forum_show_signature = 1 WHERE u_id = " . login::$user->id);
            } elseif (isset($_GET['hide_signature']) && login::$user->data['u_forum_show_signature'] == 1) {
                \Kofradia\DB::get()->exec("UPDATE users SET u_forum_show_signature = 0 WHERE u_id = " . login::$user->id);
            }
            redirect::handle(game::address("topic", $_GET, array("show_signature", "hide_signature")));
        }
        // hent forumtråd
        $this->topic = new \Kofradia\Forum\Topic(getval("id"));
        $this->fmod = $this->topic->forum->fmod;
        // sett standard redirect
        redirect::store("topic?id={$this->topic->id}");
        // slette forumtråden?
        if (isset($_POST['delete'])) {
            // forsøk å slette forumtråden
            validate_sid();
            $this->topic->delete();
        }
        // gjenopprette forumtråden?
        if (isset($_POST['restore'])) {
            // forsøk å gjenopprette forumtråden
            validate_sid();
            $this->topic->restore();
        }
        // slette forumsvar?
        if (isset($_GET['delete_reply'])) {
            validate_sid();
            // finn forumsvaret
            if ($reply = $this->topic->get_reply($_GET['delete_reply'])) {
                // forsøk å slett forumsvaret
                $reply->delete();
            } else {
                ess::$b->page->add_message("Fant ikke forumsvaret.", "error");
                redirect::handle();
            }
        }
        // gjenopprette forumsvar?
        if (isset($_GET['restore_reply'])) {
            validate_sid();
            // finn forumsvaret
            if ($reply = $this->topic->get_reply($_GET['restore_reply'])) {
                // forsøk å gjenopprett forumsvaret
                $reply->restore();
            } else {
                ess::$b->page->add_message("Fant ikke forumsvaret.", "error");
                redirect::handle();
            }
        }
        // legge til nytt svar?
        if (isset($_GET['reply']) && isset($_POST['post']) && isset($_POST['text'])) {
            // ikke slå sammen?
            $no_concatenate = isset($_POST['no_concatenate']) && access::has("forum_mod");
            // annonsere?
            $announce = isset($_POST['announce']) && access::has("forum_mod");
            // har vi ingen aktiv spiller?
            if (count(login::$user->lock) == 1 && in_array("player", login::$user->lock)) {
                ess::$b->page->add_message("Du har ingen aktiv spiller.", "error");
                redirect::handle();
            }
            // forsøk å legg til svaret
            $this->topic->add_reply($_POST['text'], $no_concatenate, $announce);
        }
        // den aktuelle siden (sjekk for replyid før vi retter sidetall)
        $pagei = new pagei(pagei::ACTIVE_GET, "p", pagei::PER_PAGE, $this->topic->replies_per_page);
        // sjekk om vi skal vise slettede svar
        if (isset($_GET['show_deleted']) && $this->fmod) {
            $show_deleted = true;
            $deleted = "";
        } else {
            $show_deleted = false;
            $deleted = " AND fr_deleted = 0";
        }
        // skal vi vise status for meldingene?
        $fs_id = 0;
        // skal vi vise et bestemt forumsvar?
        $reply_id = false;
        if (isset($_GET['replyid'])) {
            // hent forumsvaret
            $reply_id = intval($_GET['replyid']);
            $result = \Kofradia\DB::get()->query("SELECT fr_id, fr_deleted FROM forum_replies WHERE fr_ft_id = {$this->topic->id} AND fr_id = {$reply_id}");
            $row = $result->fetch();
            // fant ikke forumsvaret, eller slettet uten tilgang?
            if (!$row || $row['fr_deleted'] != 0 && !$this->fmod) {
                ess::$b->page->add_message("Fant ikke forumsvaret du refererte til.", "error");
                redirect::handle();
            }
            // slettet?
            if ($row['fr_deleted'] != 0 && !$show_deleted) {
                $show_deleted = true;
                $deleted = "";
            }
            // finn ut antall forumsvar før
            $result = \Kofradia\DB::get()->query("SELECT COUNT(fr_id) FROM forum_replies WHERE fr_ft_id = {$this->topic->id} AND fr_id < {$reply_id}{$deleted}");
            $reply_num = $result->fetchColumn(0) + 1;
            // sett opp sidetallet og sett til aktiv side
            $pagei->__construct(pagei::ACTIVE, ceil($reply_num / $this->topic->replies_per_page));
        } elseif (isset($_GET['fs']) && \Kofradia\Forum\Category::$fs_check) {
            // har vi ikke status?
            if (empty($this->topic->info['fs_time'])) {
                // sørg for at vi er på side 1
                if ($pagei->active != 1) {
                    // gå til første side
                    redirect::handle(game::address(PHP_SELF, $_GET, array("p")), redirect::SERVER);
                }
            } else {
                // finn neste forumsvar etter fs_time
                $result = \Kofradia\DB::get()->query("SELECT fr_id FROM forum_replies WHERE fr_ft_id = {$this->topic->id} AND fr_time > {$this->topic->info['fs_time']}{$deleted} ORDER BY fr_time LIMIT 1");
                $row = $result->fetch();
                // fant ikke noe forumsvar?
                if (!$row) {
                    // finn det siste innlegget
                    $result = \Kofradia\DB::get()->query("SELECT fr_id FROM forum_replies WHERE fr_ft_id = {$this->topic->id}{$deleted} ORDER BY fr_time DESC LIMIT 1");
                    $row = $result->fetch();
                }
                // fremdeles ingen forumsvar å gå til?
                if (!$row) {
                    // sørg for at vi er på side 1
                    if ($pagei->active != 1) {
                        // gå til første side
                        redirect::handle(game::address(PHP_SELF, $_GET, array("p")), redirect::SERVER);
                    }
                } else {
                    // finn ut antall forumsvar før det vi skal gå til
                    $result = \Kofradia\DB::get()->query("SELECT COUNT(fr_id) FROM forum_replies WHERE fr_ft_id = {$this->topic->id} AND fr_id < {$row['fr_id']}{$deleted}");
                    $reply_num = $result->fetchColumn(0) + 1;
                    // sett opp sidetallet og kontroller at vi er på riktig side
                    $page = ceil($reply_num / $this->topic->replies_per_page);
                    if ($pagei->active != $page) {
                        // videresend til den riktige siden
                        redirect::handle(game::address(PHP_SELF, $_GET, array("p"), array("p" => $page)), redirect::SERVER);
                    }
                    $fs_id = $row['fr_id'];
                }
            }
        }
        // viser vi slettede meldinger?
        if ($show_deleted) {
            // finn ut hvor mange meldinger som er slettet
            $result = \Kofradia\DB::get()->query("SELECT COUNT(fr_id) FROM forum_replies WHERE fr_ft_id = {$this->topic->id} AND fr_deleted != 0");
            $count = $result->fetchColumn(0);
            ess::$b->page->add_message("Du viser slettede forumsvar. Denne forumtråden har <b>{$count}</b> " . fword("slettet forumsvar", "slettede forumsvar", $count) . ".", NULL, "top");
        }
        // øk visningstelleren hvis vi ikke har besøkt denne forumtråden de siste 10 min
        if (!isset($_SESSION[$GLOBALS['__server']['session_prefix'] . 'forum_topics_visited'][$this->topic->id]) || $_SESSION[$GLOBALS['__server']['session_prefix'] . 'forum_topics_visited'][$this->topic->id] + 600 <= time()) {
            \Kofradia\DB::get()->exec("UPDATE forum_topics SET ft_views = ft_views + 1 WHERE ft_id = {$this->topic->id}");
        }
        // lagre som vist
        $_SESSION[$GLOBALS['__server']['session_prefix'] . 'forum_topics_visited'][$this->topic->id] = time();
        // tittel på siden
        $this->topic->forum->add_title();
        ess::$b->page->add_title($this->topic->info['ft_title']);
        // finn ut antall svar vi har synlige
        if ($show_deleted) {
            $result = \Kofradia\DB::get()->query("SELECT COUNT(fr_id) FROM forum_replies WHERE fr_ft_id = {$this->topic->id}{$deleted}");
            $replies_count = $result->fetchColumn(0);
        } else {
            $replies_count = $this->topic->info['ft_replies'];
        }
        // korriger aktiv side
        $pagei->__construct(pagei::TOTAL, $replies_count);
        // skal vi vise svarskjema?
        $reply_form = login::$logged_in && isset($_GET['reply']) && !$reply_id;
        if ($reply_form) {
            // sørg for at vi er på siste siden
            $pagei->__construct(pagei::ACTIVE_LAST);
        }
        echo '
<div class="bg1_c forumw">
	<h1 class="bg1">' . htmlspecialchars($this->topic->info['ft_title']) . '<span class="left"></span><span class="right"></span></h1>
	<p class="h_left"><a href="forum?id=' . $this->topic->forum->id . '">' . htmlspecialchars($this->topic->forum->get_name()) . '</a></p>
	<p class="h_right">' . ($this->topic->info['ft_locked'] == 1 ? '
		Låst emne!' : '') . (login::$logged_in && $this->topic->info['ft_deleted'] == 0 && ($this->topic->info['ft_locked'] != 1 || $this->fmod) ? '
		<a href="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array("replyid"), array("reply" => true))) . '" class="forum_link_replyform">Opprett svar</a>' : '') . ($this->fmod ? $show_deleted ? '
		<a href="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array("show_deleted", "replyid"))) . '">Skjul slettede svar</a>' : '
		<a href="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array(), array("show_deleted" => true))) . '">Vis slettede svar</a>' : '') . '
	</p>
	<div class="bg1">
<div class="forum" id="forum_topic_container">';
        // vise sidetall øverst?
        if ($pagei->pages > 1) {
            echo '
	<p class="c">' . $pagei->pagenumbers(game::address(PHP_SELF, $_GET, array("p", "replyid", "fs")), game::address(PHP_SELF, $_GET, array("p", "replyid", "fs"), array("p" => "_pageid_"))) . '</p>';
        }
        // hent forumsvar
        $replies = array();
        $up_ids = array();
        $id_list = array();
        $last_time = 0;
        $replies_last_edit = array();
        if ($replies_count > 0) {
            // hent svarene
            $result = \Kofradia\DB::get()->query("\n\t\t\t\tSELECT\n\t\t\t\t\tfr_id, fr_time, fr_up_id, fr_text, fr_deleted, fr_last_edit, fr_last_edit_up_id,\n\t\t\t\t\tup_name, up_access_level, up_forum_signature, up_points, up_profile_image_url,\n\t\t\t\t\tupr_rank_pos,\n\t\t\t\t\tr_time\n\t\t\t\tFROM\n\t\t\t\t\tforum_replies\n\t\t\t\t\tLEFT JOIN users_players ON up_id = fr_up_id\n\t\t\t\t\tLEFT JOIN users_players_rank ON upr_up_id = up_id\n\t\t\t\t\tLEFT JOIN rapportering ON r_type = " . rapportering::TYPE_FORUM_REPLY . " AND r_type_id = fr_id AND r_state < 2\n\t\t\t\tWHERE fr_ft_id = {$this->topic->id}{$deleted}\n\t\t\t\tGROUP BY fr_id\n\t\t\t\tORDER BY fr_time ASC\n\t\t\t\tLIMIT {$pagei->start}, {$pagei->per_page}");
            while ($row = $result->fetch()) {
                $id_list[] = $row['fr_id'];
                $up_ids[] = $row['fr_up_id'];
                $last_time = $row['fr_time'];
                $replies_last_edit[$row['fr_id']] = $row['fr_last_edit'];
                $replies[] = $row;
            }
        }
        // hent inn familierelasjoner
        $up_ids[] = $this->topic->info['ft_up_id'];
        $this->topic->forum->ff_get_familier($up_ids);
        // vis hovedinnlegget
        echo $this->topic->forum->template_topic($this->topic->extended_info());
        // vis forumsvar
        if (count($replies) > 0) {
            // scrolle til første forumsvar på andre enn første side
            if ($pagei->active > 1 && !$reply_form && !$reply_id && !$fs_id) {
                echo '
	<div id="forum_scroll_here"></div>';
            }
            $reply_num = $pagei->per_page * ($pagei->active - 1) + 1;
            foreach ($replies as $row) {
                $row['ft_fse_id'] = $this->topic->forum->id;
                $row['ft_id'] = $this->topic->id;
                $row['reply_num'] = ++$reply_num;
                $row['fs_new'] = \Kofradia\Forum\Category::$fs_check && $this->topic->info['fs_time'] < $row['fr_time'];
                if ($reply_id == $row['fr_id']) {
                    $row['class_extra'] = 'forum_focus';
                }
                if ($reply_id == $row['fr_id'] || $fs_id == $row['fr_id']) {
                    $row['h2_extra'] = 'id="forum_scroll_here"';
                    // vis bokser her
                    if ($reply_id == $row['fr_id'] || $fs_id == $row['fr_id']) {
                        echo '
	<boxes />';
                    }
                }
                // vis html for svaret
                echo $this->topic->forum->template_topic_reply($row);
            }
        }
        // oppdatere sist sett?
        $time = $last_time != 0 ? $last_time : $this->topic->info['ft_time'];
        // legge til?
        if (login::$logged_in && empty($this->topic->info['fs_time'])) {
            \Kofradia\DB::get()->exec("INSERT IGNORE INTO forum_seen SET fs_ft_id = {$this->topic->id}, fs_u_id = " . login::$user->id . ", fs_time = {$time}");
        } elseif (login::$logged_in && $time > $this->topic->info['fs_time']) {
            \Kofradia\DB::get()->exec("UPDATE forum_seen SET fs_time = GREATEST(fs_time, {$time}) WHERE fs_ft_id = {$this->topic->id} AND fs_u_id = " . login::$user->id);
        }
        echo '
</div>';
        // vis svarskjema
        echo '
<div' . ($reply_form ? '' : ' style="display: none"') . ' id="container_reply">' . ($reply_form ? '
	<boxes />' : '') . '
	<form action="' . htmlspecialchars(game::address("topic", $_GET, array("replyid", "fs"), array("reply" => true))) . '" method="post"' . ($reply_form ? ' id="forum_scroll_here"' : '') . '>
		<div class="section forum_reply_edit_c">
			<h2>Svar</h2>
			<dl class="dl_2x">
				<dt>Innhold</dt>
				<dd><textarea name="text" rows="20" cols="75" id="replyText">' . htmlspecialchars(postval("text")) . '</textarea></dd>';
        // vise ekstra alternativer?
        if (access::has("forum_mod") || $this->topic->forum->id >= 5 && $this->topic->forum->id <= 7) {
            $no_concat = isset($_POST['no_concatenate']) || $_SERVER['REQUEST_METHOD'] != "POST" && $this->topic->forum->id >= 5 && $this->topic->forum->id <= 7;
            $announce_text = $this->topic->forum->id >= 5 && $this->topic->forum->id <= 7 ? 'Legg til logg i spilleloggen til medlemmer av Crewet.' : 'Annonser på #kofradia kanalen';
            echo '
				<dt>Ekstra</dt>
				<dd>' . (!$this->topic->forum->ff ? '
					<input type="checkbox" name="announce" id="announce"' . (isset($_POST['announce']) ? ' checked="checked"' : '') . ' /><label for="announce"> ' . $announce_text . '</label><br />' : '') . '
					<input type="checkbox" name="no_concatenate" id="no_concatenate"' . ($no_concat ? ' checked="checked"' : '') . ' /><label for="no_concatenate"> <u>Ikke</u> kombiner sammen med siste melding.</label>
				</dd>';
        }
        echo '
			</dl>
			<p class="c">
				' . show_sbutton("Legg til svar", 'name="post" accesskey="s" id="forum_reply_button_add"') . '
				' . show_sbutton("Forhåndsvis", 'name="preview" accesskey="p" id="forum_reply_button_preview"') . '
			</p>
		</div>
		<div id="reply_preview" class="forum">';
        // forhåndsvise?
        if (login::$logged_in && isset($_POST['preview'])) {
            $data = array("ft_id" => $this->topic->id, "fr_text" => postval("text"), "fr_up_id" => login::$user->player->id, "up_name" => login::$user->player->data['up_name'], "up_access_level" => login::$user->player->data['up_access_level'], "up_points" => login::$user->player->data['up_points'], "upr_rank_pos" => login::$user->player->data['upr_rank_pos'], "up_forum_signature" => login::$user->player->data['up_forum_signature'], "up_profile_image_url" => login::$user->player->data['up_profile_image_url'], "fs_new" => \Kofradia\Forum\Category::$fs_check);
            echo \Kofradia\Forum\Category::template_topic_reply_preview($data);
        }
        echo '</div>
	</form>
</div>';
        // linker i bunn
        if (login::$logged_in) {
            echo '
<form action="" method="post">
	<input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" />
	<div class="forum_footer_links">';
            // slette/gjenopprette lenker
            if ($this->fmod || $this->topic->info['ft_up_id'] == login::$user->player->id) {
                echo '
		<p class="left">' . ($this->topic->info['ft_deleted'] == 0 ? '
			<span class="red">' . show_sbutton("Slett emnet", 'name="delete" onclick="return confirm(\'Sikker?!\')"') . '</span>' : '
			<span class="green">' . show_sbutton("Gjenopprett emnet", 'name="restore" onclick="return confirm(\'Sikker?!\')"') . '</span>') . '
		</p>';
            }
            // alternativer
            echo '
		<p class="right">';
            // reply lenke
            if (!$reply_form && $this->topic->info['ft_deleted'] == 0 && ($this->topic->info['ft_locked'] == 0 || $this->fmod)) {
                echo '
			<a href="' . htmlspecialchars(game::address("topic", $_GET, array("replyid"), array("reply" => true))) . '" class="button forum_link_replyform" accesskey="r">Opprett svar</a>';
            }
            // signatur lenker
            echo login::$user->data['u_forum_show_signature'] == 1 ? '
			<a href="' . htmlspecialchars(game::address("topic", $_GET, array("show_signature"), array("hide_signature" => true))) . '" class="button">Skjul signaturer</a>' : '
			<a href="' . htmlspecialchars(game::address("topic", $_GET, array("hide_signature"), array("show_signature" => true))) . '" class="button">Vis signaturer</a>';
            echo '
		</p>';
        }
        // sidetall
        if ($pagei->pages > 1) {
            echo '
		<p class="center">' . $pagei->pagenumbers(game::address(PHP_SELF, $_GET, array("p", "replyid", "fs", "reply")), game::address(PHP_SELF, $_GET, array("p", "replyid", "fs", "reply"), array("p" => "_pageid_"))) . '</p>';
        }
        echo '
	</div>
</form>
	</div>
</div>';
        // div javascript
        // sørg for at meldingene blir oppdatert og at nye meldinger blr hentet hvis vi er på siste side
        ess::$b->page->add_js_file(ess::$s['relative_path'] . "/js/forum.js");
        ess::$b->page->add_js('
		sm_scripts.report_links();');
        ess::$b->page->add_js_domready('
	var topic = new ForumTopic(' . $this->topic->id . ', ' . js_encode($id_list) . ', ' . js_encode($replies_last_edit) . ', ' . ($pagei->pages == $pagei->active ? 'true' : 'false') . ', ' . ($show_deleted ? 'true' : 'false') . ', ' . ($this->fmod ? 'true' : 'false') . ', ' . (int) $this->topic->info['ft_last_edit'] . ');' . ($reply_form ? '
	topic.reply_form_show();' : ''));
        $this->topic->forum->load_page();
    }
Beispiel #29
0
    /**
     * Vis alle drapsforsøk for en spesifikk spiller
     * @param player $up
     * @param bool $offer skal vi vise angrep mot spilleren?
     */
    protected function show_tries(player $up = null, $offer = null)
    {
        $alle = !$up;
        $egen = $up && $up->id == $this->up->id;
        if ($alle) {
            ess::$b->page->add_title("Alle drapsforsøk");
        } elseif (!$egen) {
            ess::$b->page->add_title("Drapsforsøk " . ($offer ? 'mot' : 'for') . " '{$up->data['up_name']}'");
        } else {
            ess::$b->page->add_title("Mine drapsforsøk");
        }
        echo '
<div class="bg1_c ' . ($alle ? 'large' : 'medium') . '">
	<h1 class="bg1">
		' . ($alle ? 'Alle drapsforsøk' : 'Drapsforsøk') . '
		<span class="left2"></span><span class="right2"></span>
	</h1>
	<p class="h_left"><a href="drap">&laquo; Tilbake</a></p>
	<div class="bg1">
		<p class="c">Dette er en oversikt som viser ' . ($alle ? 'alle drapsforsøk som er utført' : 'drapsforsøk ' . ($egen ? 'du har utført' : ($offer ? 'rettet mot spilleren ' . $up->profile_link() : 'spilleren ' . $up->profile_link() . ' har utført'))) . '.</p>';
        $pagei = new pagei(pagei::PER_PAGE, 20, pagei::ACTIVE_GET, "side");
        $result = $pagei->query("\n\t\t\tSELECT df_attack_up_id, df_defend_up_id, df_time, df_b_id, df_outcome, df_rankpoints, df_type, df_cash, df_hitlist, df_vitner, df_attack_ff_list, df_defend_ff_list\n\t\t\tFROM drapforsok\n\t\t\tWHERE " . ($alle ? "" : ($offer ? "df_defend_up_id" : "df_attack_up_id") . " = {$up->id} AND ") . "(df_type != 1 OR df_outcome != 0)\n\t\t\tORDER BY df_time DESC");
        if ($pagei->total == 0) {
            if ($alle) {
                echo '
		<p class="c"><b>Det er ingen som har prøvd å drepe noen enda.</b></p>';
            } elseif ($offer) {
                echo '
		<p class="c"><b>Ingen har angrepet ' . $up->profile_link() . ' enda.</b></p>';
            } else {
                echo '
		<p class="c"><b>' . ($egen ? 'Du' : $up->profile_link()) . ' har ikke prøvd å drepe noen enda.</b></p>';
            }
        } else {
            $ff_only_familier = isset($_GET['familier']);
            if ($ff_only_familier) {
                echo '
		<p class="c"><a href="' . game::address("drap", $_GET, array("familier")) . '">Vis også firmaer</a></p>';
            } else {
                echo '
		<p class="c"><a href="' . game::address("drap", $_GET, array(), array("familier" => true)) . '">Vis kun broderskap i listen</a></p>';
            }
            echo '
		<table class="table center' . ($pagei->pages == 1 ? ' tablemb' : '') . '">
			<thead>
				<tr>' . ($alle || $offer ? '
					<th>Angriper</th>' : '') . (!$offer ? '
					<th>Offer</th>' : '') . '
					<th>Tid/sted</th>
					<th>Omfang</th>
					<th>Poeng</th>
					<th>Penger / Etterlyst</th>
					<th>Vitner</th>
				</tr>
			</thead>
			<tbody>';
            ess::$b->page->add_css('.df_ff_list a { font-size: 10px; color: #777; text-decoration: none } .df_ff_list a:hover { text-decoration: underline }');
            $i = 0;
            while ($row = $result->fetch()) {
                // sett opp vitner
                $vitner = $row['df_time'] > 1278604000 ? '<span class="dark">Ingen</span>' : '<span class="dark">Ukjent</span>';
                if ($row['df_vitner']) {
                    $v = unserialize($row['df_vitner']);
                    $synlige = array();
                    $ukjente = 0;
                    foreach ($v as $r) {
                        if ($r[1] || access::has("mod")) {
                            $synlige[] = '<user id="' . $r[0] . '" />' . (!$r[1] ? ' <span title="Ble ikke oppdaget">(u)</span>' : '');
                        } else {
                            $ukjente++;
                        }
                    }
                    $vitner = implode("<br />", $synlige);
                    if ($ukjente > 0) {
                        if (count($synlige) > 0) {
                            $vitner .= '<br />';
                        }
                        $vitner .= fwords("%d ukjent", "%d ukjente", $ukjente);
                    }
                }
                if ($alle || $offer) {
                    // sett opp familier/firmaer (for angriper)
                    $ff_attack = '';
                    if ($row['df_attack_ff_list']) {
                        $v = unserialize($row['df_attack_ff_list']);
                        $ff_list = array();
                        // $ff[] = array($ffm->ff->data['ff_type'], $ffm->ff->id, $ffm->ff->type['refobj'], $ffm->ff->data['ff_name'], $ffm->data['ffm_priority'], $ffm->get_priority_name());
                        foreach ($v as $r) {
                            if ($ff_only_familier && $r[0] != 1) {
                                continue;
                            }
                            $ff_list[] = '<a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $r[1] . '" title="' . htmlspecialchars(ucfirst($r[5])) . '">' . htmlspecialchars($r[3]) . '</a>';
                        }
                        $ff_attack = '<br /><span class="df_ff_list">' . implode("<br />", $ff_list) . '</span>';
                    }
                }
                // sett opp familier/firmaer
                $ff = '';
                if ($row['df_defend_ff_list']) {
                    $v = unserialize($row['df_defend_ff_list']);
                    $ff_list = array();
                    // $ff[] = array($ffm->ff->data['ff_type'], $ffm->ff->id, $ffm->ff->type['refobj'], $ffm->ff->data['ff_name'], $ffm->data['ffm_priority'], $ffm->get_priority_name());
                    foreach ($v as $r) {
                        if ($ff_only_familier && $r[0] != 1) {
                            continue;
                        }
                        $ff_list[] = '<a href="' . ess::$s['relative_path'] . '/ff/?ff_id=' . $r[1] . '" title="' . htmlspecialchars(ucfirst($r[5])) . '">' . htmlspecialchars($r[3]) . '</a>';
                    }
                    $ff = '<br /><span class="df_ff_list">' . implode("<br />", $ff_list) . '</span>';
                }
                // sett opp bydel
                $bydel = "Ukjent bydel";
                if (!empty($row['df_b_id']) && isset(game::$bydeler[$row['df_b_id']])) {
                    $bydel = htmlspecialchars(game::$bydeler[$row['df_b_id']]['name']);
                }
                echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>' . ($alle || $offer ? '
					<td><user id="' . $row['df_attack_up_id'] . '" />' . $ff_attack . '</td>' : '') . (!$offer ? '
					<td><user id="' . $row['df_defend_up_id'] . '" />' . $ff . '</td>' : '') . '
					<td>' . ess::$b->date->get($row['df_time'])->format() . '<br />' . $bydel . '</td>
					<td>' . ($row['df_outcome'] == 1 ? '<b style="color: #FF0000">Døde</b>' : 'Ble skadet') . '<br />
						<span class="dark">' . ($row['df_type'] == 1 ? 'Utpressing' : 'Drapsforsøk') . '</span></td>
					<td class="r">' . game::format_num($row['df_rankpoints']) . '</td>
					<td class="r">' . game::format_cash($row['df_cash']) . ($row['df_hitlist'] > 0 ? '<br />' . game::format_cash($row['df_hitlist']) : '') . '</td>
					<td>' . $vitner . '</td>
				</tr>';
            }
            echo '
			</tbody>
		</table>';
            if ($pagei->pages > 1) {
                echo '
		<p class="c">' . $pagei->pagenumbers() . '</p>';
            }
        }
        echo '
	</div>
</div>';
    }