/** * Generer adresse */ protected function addr($exclude = null, $add = null, $path = null, $get = null) { $get_default = $path ? array() : $_GET; if ($this->show_deleted) { $get['u_id'] = $this->inbox->u->id; } return game::address($path ?: "innboks", $get ?: $get_default, $exclude ?: array(), $add ?: array()); }
function show_link() { $ret = array(); for ($i = 0; $i < func_num_args(); $i++) { $arg = func_get_arg($i); if (!$this->exists($arg)) { trigger_error("Fant ikke elementet med ID {$arg}!", E_USER_ERROR); } $type = $this->types[$this->elms[$arg]['type']]; // aktiv? $active = $this->active == $arg ? 1 : 0; $ret[] = '<a href="' . htmlspecialchars(game::address($this->address, $_GET, array($this->sort_name), array($this->sort_name => $arg))) . '" class="op50"><img src="' . $type[$active] . '" alt="' . htmlspecialchars($this->elms[$arg]['title']) . '" /></a>'; #if ($active == 1) return end($ret); } return implode("", $ret); }
<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();
$player = player::get($row['up_id']); } } elseif (isset($_GET['id'])) { $up_id = (int) $_GET['id']; $result = \Kofradia\DB::get()->query("SELECT up_id, up_name FROM users_players WHERE up_id = {$up_id}"); $row = $result->fetch(); if (!$row) { ess::$b->page->add_message("Fant ikke spilleren.", "error"); redirect::handle("finn_spiller", redirect::ROOT); } // send til korrekt side $address = game::address("/p/" . rawurlencode($row['up_name']) . "/{$row['up_id']}", $_GET, array("id")); redirect::handle($address, redirect::ROOT); } elseif (isset($_GET['user'])) { // send til korrekt side $address = game::address("/p/" . rawurlencode($_GET['user']), $_GET, array("user")); redirect::handle($address, redirect::ROOT); } else { ess::$b->page->add_message("Manglet brukeridentifikasjon.", "error"); redirect::handle("finn_spiller", redirect::ROOT); } ess::$b->page->add_title($player->data['up_name']); // moderasjon if (access::has("crewet", NULL, NULL, true)) { // javascript ess::$b->page->add_js_domready(' new KeySequence("esc,M,esc", function() { navigateTo(relative_path+"/min_side?up_id=' . $player->id . '&a=crew"); });'); }
/** * 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>'; } }
// sortering $sort = new sorts("sort"); $sort->append("asc", "Avsender", "up_name, im_time DESC"); $sort->append("desc", "Avsender", "up_name DESC, im_time DESC"); $sort->append("asc", "Emne", "it_title, im_time DESC"); $sort->append("desc", "Emne", "it_title DESC, im_time DESC"); $sort->append("asc", "Innhold", "id_text"); $sort->append("desc", "Innhold", "id_text DESC"); $sort->append("asc", "Dato", "im_time"); $sort->append("desc", "Dato", "im_time DESC"); $sort->set_active(postval("sort"), 7); // søkeform echo ' <h1>Søk - Meldinger</h1> <p class="h_right"><a href="' . htmlspecialchars(game::address("innboks", $_GET)) . '">Tilbake</a></p> <form action="' . htmlspecialchars(game::address(PHP_SELF, $_GET, array("alle", "innboks", "utboks", "side"))) . '" method="post"> <div class="section" style="width: 410px; margin-left: auto; margin-right: auto"> <h2>Søk</h2> <dl class="dl_20 dl_2x"> <dt>Tittel</dt> <dd><input type="text" name="title" value="' . htmlspecialchars(postval("title")) . '" class="styled w150" /></dd> <dt>Innhold</dt> <dd><input type="text" name="text" value="' . htmlspecialchars(postval("text")) . '" class="styled w300" /></dd> <dt>Av?</dt> <dd>'; $i = 0; foreach ($search_from as $key => $item) { if (++$i == count($search_from)) { break;
/** * 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>'; }
/** * 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 . '&stats">Vis statistikk over pengeflyt i ' . $this->ff->type['refobj'] . ' »</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>'; } } }
/** * 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(); }
/** * 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>'; } }
/** * Sett opp HTML for svar */ public function reply_format($row, $num, $highlight, $new) { global $__server; $ret = ' <div class="thread' . ($highlight ? ' thread_highlight scroll_here' : '') . ($new ? ' thread_ny' : '') . ($num == 1 ? ' first' : '') . ($row['im_deleted'] != 0 ? ' deleted' : '') . '" id="m' . $row['im_id'] . '"> <div class="title"> <div class="title_left">#' . $num . ' - Av <user id="' . $row['im_up_id'] . '" />' . ($new ? ' <span class="ny">(Ny!)</span>' : '') . '</div>' . (!$this->restrict ? $row['im_deleted'] == 0 ? ' <a href="' . game::address($__server['relative_path'] . '/innboks_les', $_GET, array(), array("im_del" => $row['im_id'], "sid" => login::$info['ses_id'])) . '">Slett</a>' : ' <a href="' . game::address($__server['relative_path'] . '/innboks_les', $_GET, array(), array("im_restore" => $row['im_id'], "sid" => login::$info['ses_id'])) . '">Gjenopprett</a>' : '') . ' ' . ess::$b->date->get($row['im_time'])->format(date::FORMAT_SEC) . ' </div> <div class="text"> <div class="p">' . game::bb_to_html($row['id_text']) . '</div> </div>'; // rapportering if ($row['im_up_id'] != login::$user->player->id) { // rapportert? if ($row['r_time']) { $ret .= ' <p class="inbox_report_link">Rapportert ' . ess::$b->date->get($row['r_time'])->format() . '</p>'; } else { $ret .= ' <p class="inbox_report_link"><a href="js" class="report_link" rel="pm,' . $row['im_id'] . ',1">Rapporter melding</a></p>'; } } $ret .= ' </div>'; return $ret; }
/** * Sett opp innhold til en enhet i noden * @param array $unit */ public static function content_build($unit) { switch ($unit['ni_type']) { case 1: // bb $content = ' <div class="p">' . game::format_data($unit['nir_content']) . '</div>'; break; case 2: // html // html case 3: // htmleditor $content = ' ' . $unit['nir_content']; break; case 5: // gallery_section $content = ' <p>Not implementet.</p>'; break; case 6: // gallery_item $content = ' <p>Not implementet.</p>'; break; case 7: // news $params = new params($unit['nir_params']); // hvilke tags? $tags = new container($params->get("tags")); $page_name = "ni_s_{$unit['ni_id']}"; $pageinfo = new pagei(PAGEI_ACTIVE_GET, $page_name, PAGEI_PER_PAGE, max(1, min(50, $params->get("per_page", 15)))); // hent nyhetene if (count($tags->items) > 0) { $tags_db = array_map(array(ess::$b->db, "quote"), $tags->items); // filter via tags $query = "n_id, n_title, n_content, n_userid, n_time, n_visible, n_type FROM news, news_tags WHERE n_visible > 0 AND n_id = nt_n_id AND nt_tagname IN (" . implode(", ", $tags_db) . ") GROUP BY n_id ORDER BY n_time DESC"; } else { $query = "n_id, n_title, n_intro, LEFT(n_content, 5) AS n_content, n_userid, n_time, n_visible, n_type FROM news WHERE n_visible > 0 ORDER BY n_time DESC"; } $result = $pageinfo->query($query); $content = ''; if ($result->rowCount() == 0) { $content .= ' <p>Ingen nyheter.</p>'; } else { while ($row = $result->fetch()) { $content .= ' <h2>' . htmlspecialchars($row['n_title']) . '</h2> <p class="h_right">' . ess::$b->date->get($row['n_time'])->format() . '</p> <div class="p">' . game::format_data($row['n_intro']) . '</div>'; // mer info? if (mb_strlen($row['n_content']) > 0) { $content .= ' <p><a href="' . game::address(PHP_SELF, $_GET, array(), array("show_n" => $row['n_id'])) . '">Les mer »</a></p>'; } } if (!$params->get("hide_select_page") && $pageinfo->pages > 1) { $content .= ' <p>' . game::pagenumbers(game::address(PHP_SELF, $_GET, array($page_name)), game::address(PHP_SELF, $_GET, array($page_name), array($page_name => true)) . "=", $pageinfo->pages, $pageinfo->active) . '</p>'; } } break; case 8: // php include $content = ' <p>Not implementet.</p>'; break; default: // plaintext $content = ' <p>' . htmlspecialchars($unit['nir_content']) . '</p>'; } return $content; }
/** * 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">« 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>'; } }
/** * Slette forumtråder */ protected function delete_topics() { if (!isset($_POST['emne'])) { ess::$b->page->add_message("Du merket ingen forumtråder!"); } elseif (!is_array($_POST['emne'])) { ess::$b->page->add_message("Ugyldig forumtråder (ingen array)!", "error"); } else { $ant = 0; $slettet = array(); $time = time(); $idlist = array(); foreach ($_POST['emne'] as $id) { $idlist[] = intval($id); } // ingen forumtråder? if (count($idlist) == 0) { ess::$b->page->add_message("Du må merke noen forumtråder.", "error"); redirect::handle(game::address("forum", $_GET)); } // hent forumtrådene $result = \Kofradia\DB::get()->query("SELECT ft_id, ft_title, ft_up_id FROM forum_topics WHERE ft_deleted = 0 AND ft_fse_id = {$this->forum->id} AND ft_id IN (" . implode(",", $idlist) . ") FOR UPDATE"); // ingen forumtråder? if ($result->rowCount() == 0) { ess::$b->page->add_message("Fant ingen av de merkede forumtrådene.", "error"); redirect::handle(game::address("forum", $_GET)); } // sett opp liste $deleted = array(); $time = time(); $del_list = array(); $log_list = array(); while ($row = $result->fetch()) { $log_list[] = "({$row['ft_id']}, 1, " . login::$user->player->id . ", {$time})"; $del_list[] = $row['ft_id']; $deleted[] = "{$row['ft_id']}:{$row['ft_up_id']}:" . urlencode($row['ft_title']); } // slett forumtrådene \Kofradia\DB::get()->exec("UPDATE forum_topics SET ft_deleted = {$time} WHERE ft_id IN (" . implode(",", $del_list) . ")"); // opprett forumlogg \Kofradia\DB::get()->exec("INSERT INTO forum_log (flg_ft_id, flg_action, flg_up_id, flg_time) VALUES " . implode(", ", $log_list)); // opprett crewlogg if (!$this->forum->ff || $this->forum->ff->uinfo->crew) { crewlog::log("forum_topics_delete", NULL, count($deleted), array("data" => implode("\n", $deleted))); } $ant = count($del_list); putlog("LOG", "FORUMTRÅDER SLETTET: '" . login::$user->player->data['up_name'] . "' slettet {$ant} forumtråder; ID: " . implode(", ", $del_list)); ess::$b->page->add_message("<b>" . game::format_number($ant) . "</b> forumtråd" . ($ant == 1 ? '' : 'er') . " ble slettet!"); } redirect::handle(game::address("forum", $_GET)); }
global $_lang, $_base, $__server; $_base->page->add_title("Finn bruker/spiller"); $_base->page->theme_file = "doc"; // gammelt oppsett? if (isset($_GET['id']) || isset($_GET['user'])) { if (isset($_GET['id'])) { $_GET['u_id'] = $_GET['id']; unset($_GET['id']); } if (isset($_GET['user'])) { $_GET['name'] = $_GET['user']; unset($_GET['user']); } // send til korrekt adresse $_base->page->add_message("Adressen du klikket på førte deg til en gammel versjon av denne siden. Du er sendt til korrekt adresse."); redirect::handle(game::address("finn", $_GET)); } // felt man skal kunne vise $fields = array("ip", "reg", "email", "onlinea", "onliner", "hits", "points", "banko", "cash", "birth"); $fields_name = array("IP-adresse", "Registrert", "E-post adresse", "Sist pålogget (abs)", "Sist pålogget (rel)", "Hits", "Rank", "Bank overføringer", "Penger", "Fødselsdato"); // lagre felt? if (isset($_POST['fields'])) { // hent ajax funksjoner require PATH_APP . "/ajax.php"; // finn ut hvilke felt som skal lagres $list = explode(",", $_POST['fields']); $show = array(); foreach ($list as $item) { if (isset($fields[$item])) { $show[] = $item; }
/** * Lager sidetall linker. * * @param mixed $page_1 adresse til pagenumbers funksjonen / array(fjern,disse,fra,adressen) / "input" * @param string $page_x (bruk <page> eller _pageid_) * @return string */ public function pagenumbers($page_1 = NULL, $page_x = NULL) { // generere lenker? if ($page_1 === NULL || is_array($page_1)) { $rem = array($this->get_name); if (is_array($page_1)) { $rem = array_merge($rem, $page_1); } $page_1 = game::address(redirect::$location ?: ROUTE_URL, $_GET, $rem); $page_x = game::address(redirect::$location ?: ROUTE_URL, $_GET, $rem, array($this->get_name => "_pageid_")); } elseif ($page_x === NULL && $page_1 == "input") { $page_x = $this->get_name; } return pagenumbers($page_1, $page_x, $this->pages, $this->active); }
/** * Rankpoeng siste perioden */ protected static function page_rank_points() { // hvilken måned skal vi vise for? $now = ess::$b->date->get(); $date_month = array($now->format("Y"), $now->format("n")); $params = array("up_id=" . page_min_side::$active_player->id); $params['date'] = 'date=' . $now->format("Ym"); if (isset($_GET['dato_p'])) { $date = $_GET['dato_p']; $matches = false; if (preg_match("/^(20[0-2]\\d)-(0[1-9]|1[0-2])\$/Du", $date, $matches)) { $d = ess::$b->date->get(); $d->setDate($matches[1], (int) $matches[2], 1); if ($d->format("U") <= time()) { $date_month = array($matches[1], intval($matches[2])); $params['date'] = "date={$matches[1]}{$matches[2]}"; } } } $month_prev = ess::$b->date->get(); $month_prev->setTime(0, 0, 0); $month_prev->setDate($date_month[0], $date_month[1], 0); $month_prev->modify("-1 month"); $month_next = clone $month_prev; $month_next->modify("+2 months"); OFC::embed("stats_monthly", "graphs/user_points_month?" . implode("&", $params), "100%", 350); echo ' <div class="bg1_c"> <h1 class="bg1" id="dato_p">Månedstatistikk<span class="left2"></span><span class="right2"></span></h1> <p class="h_left"><a href="' . htmlspecialchars(game::address("min_side", $_GET, array("dato_p"), array("dato_p" => $month_prev->format("Y-m")))) . '#dato_p" id="minside_stats_month_prev">Forrige måned</a></p> <p class="h_right"><a href="' . htmlspecialchars(game::address("min_side", $_GET, array("dato_p"), array("dato_p" => $month_next->format("Y-m")))) . '#dato_p" id="minside_stats_month_next">Neste måned</a></p> <div class="bg1"> <p><span id="stats_monthly"></span></p> </div> </div>'; ess::$b->page->add_js_domready(' var up_id = ' . page_min_side::$active_player->id . '; var stats_month = [' . $date_month[0] . ', ' . $date_month[1] . ']; var str_stats_month; function reloadvars(skip_save) { str_stats_month = stats_month[0] + str_pad(stats_month[1]); if (!skip_save) document.location.hash = "m=" + str_stats_month; } function month_reload(s){reloadvars(s);$("stats_monthly").reload("graphs/user_points_month?up_id=" + up_id + "&date=" + str_stats_month);} $("minside_stats_month_prev").addEvent("click", function(e) { if (stats_month[1] == 1) { stats_month[0]--; stats_month[1] = 12; } else stats_month[1]--; month_reload(); e.stop(); }); $("minside_stats_month_next").addEvent("click", function(e) { if (stats_month[1] == 12) { stats_month[0]++; stats_month[1] = 1; } else stats_month[1]++; month_reload(); e.stop(); }); // test for spesifisert dato if (document.location.hash.length > 1) { setTimeout(function() { document.location.hash.substring(1).split(",").each(function(val) { d = val.split("="); if (d[0] == "m" && d[1]) { stats_month[0] = d[1].substring(0, 4); stats_month[1] = d[1].substring(4, 6); month_reload(true); } }); }, 750); }'); }
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(); }
/** * Vis oversikt */ protected function overview() { echo ' <h1>Begrenset tilgang</h1>'; ess::$b->page->add_css(' .lock_box { width: 300px; margin: 20px auto; padding: 0 10px; border: 2px solid #292929; background-color: #1A1A1A; } .lock_box h2 { background-color: #2D2D2D; margin: 0 -10px 10px -10px; padding: 4px 4px 2px 4px; }'); foreach (login::$user->lock as $row) { switch ($row) { case "birth": echo ' <div class="lock_box r3"> <h2>Fødselsdato</h2> <p>Du har ikke registrert din fødselsdato. Vi krever at alle som skal benytte seg av Kofradia oppgir sin fødselsdato for vår garanti for at dere oppfyller vårt krav om alder.</p> <p><a href="' . htmlspecialchars(game::address("lock", $this->get, array(), array("f" => "birth"))) . '">Fyll inn fødselsdato »</a></p> </div>'; break; case "player": $killed = login::$user->player->data['up_deactivated_dead']; $deact_self = false; // deaktivert self? if (!$killed) { // deaktivert av seg selv? if (!empty(login::$user->player->data['up_deactivated_up_id'])) { $deact_self = login::$user->player->data['up_deactivated_up_id'] == login::$user->player->id; if (!$deact_self) { $result = \Kofradia\DB::get()->query("SELECT u_id FROM users JOIN users_players ON u_id = up_u_id WHERE up_id = " . login::$user->player->data['up_deactivated_up_id']); $row = $result->fetch(); unset($result); if ($row && $row['u_id'] == login::$user->id) { $deact_self = true; } } } } echo ' <div class="lock_box r3"> <h2>Spiller ' . ($killed == 2 ? 'blødd ihjel' : ($killed ? 'drept' : 'deaktivert')) . '</h2> <p>' . ($deact_self ? 'Du deaktivert din spiller' : 'Din spiller ' . ($killed == 2 ? 'blødde ihjel på grunn av lite energi og helse' : ($killed ? 'ble drept' : 'ble deaktivert'))) . '. Du må opprette en ny spiller for å kunne fortsette å spille.</p> <p><a href="">Mer informasjon</a> | <a href="' . htmlspecialchars(game::address("lock", $this->get, array(), array("f" => "player"))) . '">Opprett ny spiller »</a></p> </div>'; break; case "pass": echo ' <div class="lock_box r3"> <h2>Mangler passord</h2> <p>Din bruker har for øyeblikket ikke noe passord, noe som er et resultat av at du har bedt om å nullstille passordet ditt.</p> <p><a href="' . htmlspecialchars(game::address("lock", $this->get, array(), array("f" => "pass"))) . '">Opprett nytt passord »</a></p> </div>'; break; default: throw new HSException("Ukjent lock: {$row}"); } } }
/** * 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">« 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>'; }