/** * Constructor * @param integer $s_id seksjonID */ public function __construct($s_id) { $this->id = (int) $s_id; // hent informasjon om forumet $result = \Kofradia\DB::get()->query("SELECT fse_id, fse_name, fse_description, fse_params, fse_ff_id FROM forum_sections WHERE fse_id = {$this->id}"); // fant ikke forumet? $this->info = $result->fetch(); if (!$this->info) { $this->error_404(); return; } // ff? if ($this->info['fse_ff_id']) { $this->ff = \ff::get_ff($this->info['fse_ff_id'], \ff::LOAD_IGNORE); if (!$this->ff) { throw new \HSException("Fant ikke FF med ID {$this->info['fse_ff_id']}."); } } // sett opp params $this->params = new \params($this->info['fse_params']); // har vi forum-mod tilganger til dette forumet? if ($this->ff) { $this->fmod = $this->ff->access(2); } else { $this->fmod = \access::has("forum_mod"); } // ikke vise NY if (!\login::$logged_in) { self::$fs_check = false; } }
/** * Construct */ public function __construct() { $this->ff = ff::get_ff(); $this->ff->needaccess(2); redirect::store("medlemmer?ff_id={$this->ff->id}"); $this->page_handle(); $this->ff->load_page(); }
/** * Construct */ public function __construct() { $this->ff = ff::get_ff(); $this->ff->needaccess(true); ess::$b->page->add_title("Logg"); $this->show(); $this->ff->load_page(); }
/** * Construct */ public function __construct() { $this->ff = ff::get_ff(); $this->ff->needtype("avis"); redirect::store("avis?ff_id={$this->ff->id}"); echo '<boxes />'; $this->page_handle(); $this->ff->load_page(); }
/** * Construct */ public function __construct() { $this->ff = ff::get_ff(); $this->ff->needtype("bank"); $this->ff->needaccess(3); redirect::store("bank?ff_id={$this->ff->id}"); ess::$b->page->add_title("Bankkontroll"); $this->page_handle(); $this->ff->load_page(); }
/** * Construct */ public function __construct() { $this->ff = ff::get_ff(); $this->ff->needaccess(2, "Du har ikke tilgang til denne banken."); $this->priority_write = $this->ff->get_bank_write_priority(); if (false && !access::has("admin")) { echo ' <div class="bg1_c xsmall"> <h1 class="bg1">' . ucfirst($this->ff->type['type']) . 'bank stengt<span class="left"></span><span class="right"></span></h1> <div class="bg1"> <p>' . ucfirst($this->ff->type['type']) . 'banken er stengt for å unngå distribusjon av penger. Pengenivået vil bli justert til å være ihht. verdiene ved midnatt.</p> </div> </div>'; $this->ff->load_page(); } redirect::store("banken?ff_id={$this->ff->id}"); ess::$b->page->add_title("Banken"); $this->nostat = access::is_nostat() && login::$user->player->id != 1; // kontroller at vi har bankkonto if (!login::$user->player->user->data['u_bank_auth']) { ess::$b->page->add_message("Banken for {$this->ff->type['refobj']} benytter seg av passordet i din vanlige bank. For å få tilgang til den må du først opprette et passord. Etter du har opprettet et passord kan du gå tilbake til banken til {$this->ff->type['refobj']}."); redirect::handle("banken", redirect::ROOT); } // kontroller at vi er logget inn i banken $this->auth_verify(); // gi/fjerne tilgang for medeier? if ((isset($_POST['pri2_wt']) || isset($_POST['pri2_wf'])) && validate_sid()) { $this->pri2_access(); } // vise statistikk if (isset($_GET['stats'])) { $this->stats(); } // sette inn penger? if (isset($_POST['bank_inn']) && !$this->nostat && $this->ff->access($this->priority_write)) { $this->sett_inn(); } // ta ut penger if (isset($_POST['bank_ut']) && !$this->nostat && $this->ff->access($this->priority_write)) { $this->ta_ut(); } // vis banken $this->show(); $this->ff->load_page(); }
/** * Construct */ public function __construct() { $this->ff = ff::get_ff(); if ($this->ff->type['type'] != "familie" || $this->ff->data['ff_is_crew']) { $this->ff->needtype("bomberom"); } $this->ff->needaccess(true); $this->fam = $this->ff->type['type'] == "familie"; // konkurrerende broderskap har ikke bomberom if ($this->ff->competition) { ess::$b->page->add_message("Broderskapet er i konkurransemodus og har derfor ikke et aktivt bomberom.", "error"); $this->ff->redirect(); } redirect::store("bomberom?ff_id={$this->ff->id}"); ess::$b->page->add_title("Bomberommet"); // sjekk om vi kan kaste ut nå $this->check_kick_hour(); $this->kick_access = $this->ff->access($this->ff->type['type'] == "familie" ? 2 : true); // behandle forespørselen $this->page_handle(); // last inn siden $this->ff->load_page(); }
/** * Behandle auksjonen når den er ferdig */ protected function handle_complete() { // forsøk å sett som behandlet $this->data['a_completed'] = 1; $affected = \Kofradia\DB::get()->exec("UPDATE auksjoner SET a_completed = 1 WHERE a_id = {$this->id} AND a_completed = 0"); // allerede behandlet? if ($affected == 0) { return; } // hent vinnerbudet $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ab_id, ab_bid, ab_up_id\n\t\t\tFROM auksjoner_bud\n\t\t\tWHERE ab_a_id = {$this->id} AND ab_active != 0\n\t\t\tORDER BY ab_time DESC LIMIT 1"); $bud = $result->fetch(); unset($result); // har ikke noe bud? if (!$bud) { // behandle hver type auksjon forskjellig switch ($this->data['a_type']) { // firma case self::TYPE_FIRMA: // forleng auksjonen med 3 timer fra nå $this->data['a_end'] = time() + 10800; $this->data['a_completed'] = 0; $this->status = self::STATUS_ACTIVE; \Kofradia\DB::get()->exec("UPDATE auksjoner SET a_end = {$this->data['a_end']}, a_completed = 0 WHERE a_id = {$this->id}"); break; // kuler // kuler case self::TYPE_KULER: // gi kulene tilbake til personen som startet auksjonen $kuler = (int) $this->params->get("bullets"); if ($kuler && $this->data['a_up_id']) { player::add_log_static("auksjon_kuler_no_bid", $this->id, $kuler, $this->data['a_up_id']); \Kofradia\DB::get()->exec("UPDATE users_players SET up_weapon_bullets = up_weapon_bullets + {$kuler}, up_weapon_bullets_auksjon = GREATEST(0, up_weapon_bullets_auksjon - {$kuler}) WHERE up_id = {$this->data['a_up_id']}"); } break; } } else { $up = player::get($bud['ab_up_id']); // behandle hver type auksjon forskjellig switch ($this->data['a_type']) { // firma case self::TYPE_FIRMA: // inviter spilleren til firmaet $ff_id = $this->params->get("ff_id"); if ($ff_id) { $ff = ff::get_ff($ff_id, ff::LOAD_SCRIPT); $ff->player_set_priority($bud['ab_up_id'], 1); $ff->reset_date_reg(true); // første firma av denne typen i spillet? hall_of_fame::trigger("ff_owner", $ff); } break; // kuler // kuler case self::TYPE_KULER: // gi kulene til vinneren av auksjonen $kuler = (int) $this->params->get("bullets"); if ($kuler) { // oppdater antall auksjonskuler for spilleren som holdt auksjonen if ($this->data['a_up_id']) { \Kofradia\DB::get()->exec("UPDATE users_players SET up_weapon_bullets_auksjon = GREATEST(0, up_weapon_bullets_auksjon - {$kuler}) WHERE up_id = {$this->data['a_up_id']}"); } // gi kulene til vinneren $up->add_log("auksjon_kuler_won", $this->id . ":" . $bud['ab_bid'], $kuler); $up->data['up_weapon_bullets'] += $kuler; $up->data['up_weapon_bullets'] = max(0, $up->data['up_weapon_bullets'] - $kuler); \Kofradia\DB::get()->exec("UPDATE users_players SET up_weapon_bullets = up_weapon_bullets + {$kuler}, up_weapon_bullets_auksjon = GREATEST(0, up_weapon_bullets_auksjon - {$kuler}) WHERE up_id = {$bud['ab_up_id']}"); } break; } // live-feed livefeed::add_row('<user id="' . $bud['ab_up_id'] . '" /> vant auksjonen <a href="' . ess::$s['relative_path'] . '/auksjoner?a_id=' . $this->id . '">' . htmlspecialchars($this->data['a_title']) . '</a>.'); // gi penger til den som la ut auksjonen if ($this->data['a_up_id']) { \Kofradia\DB::get()->exec("\n\t\t\t\t\tUPDATE users_players\n\t\t\t\t\tSET up_cash = up_cash + {$bud['ab_bid']}, up_auksjoner_total_in = up_auksjoner_total_in = {$bud['ab_bid']}\n\t\t\t\t\tWHERE up_id = {$this->data['a_up_id']}"); } // oppdater statistikk til spilleren som vant budet \Kofradia\DB::get()->exec("\n\t\t\t\tUPDATE users_players\n\t\t\t\tSET up_auksjoner_total_out = up_auksjoner_total_out = {$bud['ab_bid']}\n\t\t\t\tWHERE up_id = {$bud['ab_up_id']}"); // hent alle budene som skal settes inaktive $result = \Kofradia\DB::get()->query("\n\t\t\t\tSELECT ab_id, ab_bid, ab_up_id\n\t\t\t\tFROM auksjoner_bud\n\t\t\t\tWHERE ab_a_id = {$this->id} AND ab_active != 0 AND ab_id != {$bud['ab_id']}"); while ($row = $result->fetch()) { self::set_bud_inactive($row, $this); } // behandle trigger $up->trigger("auksjon_won", array("auksjon" => $this, "bud" => $bud)); } // behandle trigger if ($this->data['a_up_id']) { $up = player::get($this->data['a_up_id']); if ($up) { $up->trigger("auksjon_complete", array("auksjon" => $this, "winner_bud" => $bud)); } } // oppdater cache self::update_cache(); }
/** * Frigjør relasjon grunnet lav helse */ public function release_relations_low_health($release_all = null, player $up_attack = null, $instant = null) { $ret = array("ffm" => array()); // behandle FF $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ff_id\n\t\t\tFROM ff_members\n\t\t\t\tJOIN ff ON ffm_ff_id = ff_id AND ff_inactive = 0" . ($release_all ? "" : " AND ff_is_crew = 0") . "\n\t\t\tWHERE ffm_up_id = {$this->id} AND ffm_status != " . ff_member::STATUS_KICKED . " AND ffm_status != " . ff_member::STATUS_DEACTIVATED); $lost = false; while ($row = $result->fetch()) { $ff = ff::get_ff($row['ff_id'], ff::LOAD_SCRIPT); if ($ff && isset($ff->members['list'][$this->id])) { $ffm = $ff->members['list'][$this->id]; if ($ffm->data['ffm_status'] == ff_member::STATUS_MEMBER) { $ret['ffm'][] = $ffm; } $ffm->remove_player(true, $instant ? $up_attack : null); } $lost = true; } // oppdater tidspunkt for når man mistet FF if ($lost) { \Kofradia\DB::get()->exec("UPDATE users_players SET up_health_ff_time = 0 WHERE up_id = {$this->id}"); } // fjern fra aktive auksjoner for firma if (!$release_all) { auksjon::player_release($this, null, auksjon::TYPE_FIRMA); } return $ret; }
/** * Godta/avslå søknad * @param boolean $outcome - om søknaden blir innvilget eller ikke * @param integer $ds_id * @param string $reason */ public static function decide($outcome, $ds_id, $reason) { global $_base, $__server; $ds_id = (int) $ds_id; // hent søknaden $soknad = self::get($ds_id); // fant ikke søknaden? if (!$soknad) { return false; } // er søknaden allerede behandlet? if ($soknad['ds_reply_decision'] != 0) { return false; } // typen $type = self::get_type($soknad['ds_type']); // har vi tilgang til søknaden? if (!access::has($type['access'])) { return false; } // sjekk for tom begrunnelse $have_reason = trim(game::format_data($reason)) != ""; // sett opp params $params = unserialize($soknad['ds_params']); // sett opp søknadsinfo $info = self::get_info($type['name'], $soknad, $params); // info er ikke gyldig - søknaden er ikke gyldig if (!is_array($info)) { // slett søknaden self::delete($ds_id); return $info; } // avslå søknad if (!$outcome) { $msg = 'bb:' . $type['title'] . ': Din søknad ble avslått. (' . $info['bb'] . ') Begrunnelse: ' . ($have_reason ? $reason : 'Ingen begrunnelse gitt.'); // spesielle handlinger switch ($type['name']) { case "ff_name": // sett tilbakepengene på bankkontoen if (isset($params['cost']) && $params['cost'] > 0) { $msg .= ' Beløpet på ' . game::format_cash($params['cost']) . ' som ble innbetalt ved søknad er satt inn på kontoen igjen.'; ff::bank_static(ff::BANK_TILBAKEBETALING, $params['cost'], $soknad['ds_rel_id'], 'Navnsøknad avslått: ' . $params['name']); } break; } } else { $msg = 'bb:' . $type['title'] . ': Din søknad har blitt innvilget. (' . $info['bb'] . ') Begrunnelse: ' . ($have_reason ? $reason : 'Ingen begrunnelse gitt.'); // spesielle handlinger switch ($type['name']) { case "ff_name": $ff = ff::get_ff($soknad['ds_rel_id'], ff::LOAD_SCRIPT); if ($ff) { $ff->change_name($params['name'], $soknad['ds_up_id']); // lagre gammelt navn på FF i søknaden $params['name_old'] = $info['ff_name']; } break; } } // legg til logg hos spilleren player::add_log_static("soknader", $msg, 0, $soknad['ds_up_id']); // oppdater søknaden \Kofradia\DB::get()->exec("UPDATE div_soknader SET ds_params = " . \Kofradia\DB::quote(serialize($params)) . ", ds_reply_decision = " . ($outcome ? 1 : -1) . ", ds_reply_reason = " . \Kofradia\DB::quote($reason) . ", ds_reply_up_id = " . self::up_id() . ", ds_reply_time = " . time() . " WHERE ds_id = {$ds_id}"); // oppdater cache tasks::set("soknader", \Kofradia\DB::get()->query("SELECT COUNT(ds_id) FROM div_soknader WHERE ds_reply_decision = 0")->fetchColumn(0)); return $info; }
<?php global $_base; /* * Dette scriptet tar ut betalinger fra familier som må betale for å overleve * Se "Holde familien oppe" i familiedokumentet * * Familier med Crewstatus slipper å betale */ /* * Dette scriptet skal kjøres hver dag kl. 12.00 * Scriptet skal ikke kjøres før kl. 12.00 */ // hent oversikt over familier som skulle ha betalt nå $time = time(); $result = \Kofradia\DB::get()->query("\n\tSELECT ff_id\n\tFROM ff\n\tWHERE ff_inactive = 0 AND ff_is_crew = 0 AND ff_pay_status = 1 AND ff_pay_next IS NOT NULL AND ff_pay_next <= {$time}"); while ($row = $result->fetch()) { $familie = ff::get_ff($row['ff_id'], ff::LOAD_SCRIPT); putlog("CREWCHAN", "Broderskapet %u{$familie->data['ff_name']}%u har ikke betalt inn broderskapkostnad og blir nå lagt ned."); // legg ned familien $familie->dies(); } // hent ut de familiene som skal trekkes for familiekostnad automatisk $result = \Kofradia\DB::get()->query("\n\tSELECT ff_id\n\tFROM ff\n\tWHERE ff_inactive = 0 AND ff_is_crew = 0 AND ff_pay_status = 0 AND ff_pay_next IS NOT NULL AND ff_pay_next <= {$time}"); while ($row = $result->fetch()) { $familie = ff::get_ff($row['ff_id'], ff::LOAD_SCRIPT); // forsøk å trekk fra familiekostnaden $familie->pay_scheduler(); }
/** * Generer kart */ protected function map_draw() { // hent inn ff $this->ff = ff::get_ff(null, ff::LOAD_SILENT); if (!$this->ff) { page_not_found(); } // har ingen bydel? if (!$this->ff->data['br_id']) { die("Har ingen bydel."); } $map = new bydeler_map(); $map->mini_map($this->ff->data['br_id']); $map->push(); die; }
/** * Hendelsene til spilleren */ protected static function page_log() { // kan ikke se? if (!page_min_side::$pstats) { echo ' <p class="c">Du har ikke tilgang til å se denne siden.</p>'; return; } global $_game; ess::$b->page->add_title("Hendelser"); ess::$b->page->add_css(' .gamelog { width: 80%; margin: 0 auto } .gamelog .time { color: #888888; padding-right: 2px } .ffl_time { color: #AAA; } .log_section { background-color: #1C1C1C; padding: 15px 15px 5px; margin: 30px 0; border: 10px solid #111111; }'); echo ' <div class="gamelog">'; $gamelog = new gamelog(); // finn ut hva som er tilgjengelig $result = \Kofradia\DB::get()->query("SELECT type, COUNT(id) AS count FROM users_log WHERE ul_up_id IN (0, " . page_min_side::$active_player->id . ") GROUP BY type"); $in_use = array(); $count = array(); $total = 0; while ($row = $result->fetch()) { $in_use[] = $row['type']; $count[$row['type']] = $row['count']; } $tilgjengelig = array(); foreach (gamelog::$items_id as $id => $name) { if (in_array($id, $in_use)) { $tilgjengelig[$id] = $id; } } // fjern ting vi ikke har tilgang til unset($tilgjengelig[gamelog::$items['crewforum_emne']], $count[gamelog::$items['crewforum_emne']]); unset($tilgjengelig[gamelog::$items['crewforum_svar']], $count[gamelog::$items['crewforum_svar']]); unset($tilgjengelig[gamelog::$items['crewforuma_emne']], $count[gamelog::$items['crewforuma_emne']]); unset($tilgjengelig[gamelog::$items['crewforuma_svar']], $count[gamelog::$items['crewforuma_svar']]); unset($tilgjengelig[gamelog::$items['crewforumi_emne']], $count[gamelog::$items['crewforumi_emne']]); unset($tilgjengelig[gamelog::$items['crewforumi_svar']], $count[gamelog::$items['crewforumi_svar']]); $i_bruk = $tilgjengelig; $total = array_sum($count); // nye hendelser (viser også nye hendelser i firma/familie)? if ((page_min_side::$active_player->data['up_log_ff_new'] > 0 || page_min_side::$active_player->data['up_log_new'] > 0) && page_min_side::$active_own) { echo ' <h1 class="c">Nye hendelser</h1>'; // nye hendelser i ff? if (page_min_side::$active_player->data['up_log_ff_new'] > 0) { // totalt antall logg hendelser som blir vist $counter_total = 0; // hent FF vi skal hente logg for $ffm_result = \Kofradia\DB::get()->query("SELECT ffm_ff_id, ffm_log_new FROM ff_members WHERE ffm_up_id = " . page_min_side::$active_player->id . " AND ffm_status = 1 AND ffm_log_new > 0"); while ($ffm = $ffm_result->fetch()) { $ff = ff::get_ff($ffm['ffm_ff_id'], ff::LOAD_SILENT); if (!$ff) { continue; } // hent hendelsene $result = \Kofradia\DB::get()->query("SELECT ffl_id, ffl_time, ffl_type, ffl_data, ffl_extra FROM ff_log WHERE ffl_ff_id = {$ff->id} ORDER BY ffl_time DESC LIMIT {$ffm['ffm_log_new']}"); if ($result->rowCount() > 0) { $logs = array(); while ($row = $result->fetch()) { $counter_total++; $day = ess::$b->date->get($row['ffl_time'])->format(date::FORMAT_NOTIME); $data = $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; } echo ' <div class="log_section">'; $ff->load_header(); foreach ($logs as $day => $items) { echo ' <div class="section"> <h2>' . $day . '</h2>'; foreach ($items as $item) { echo ' <p>' . $item . '</p>'; } echo ' </div>'; } echo ' <p class="c"><a href="ff/logg?ff_id=' . $ff->id . '">Vis alle hendelsene for ' . $ff->type['refobj'] . ' »</a></p>'; $ff->load_footer(); echo ' </div>'; } } // ble det ikke vist noen hendelser? if ($counter_total == 0) { echo ' <div class="bg1_c xsmall"> <h1 class="bg1">Logg for firma og broderskap<span class="left"></span><span class="right"></span></h1> <div class="bg1"> <p>Ingen nye hendelser tilknyttet firma eller broderskap.</p> </div> </div>'; } // nullstill telleren \Kofradia\DB::get()->exec("UPDATE ff_members SET ffm_log_new = 0 WHERE ffm_up_id = " . page_min_side::$active_player->id); \Kofradia\DB::get()->exec("UPDATE users_players SET up_log_ff_new = 0 WHERE up_id = " . page_min_side::$active_player->id); page_min_side::$active_player->data['up_log_ff_new'] = 0; } // nye normale hendelser if (page_min_side::$active_player->data['up_log_new'] > 0) { ess::$b->page->add_css('.ny { color: #FF0000 }'); $i_bruk[] = 'NULL'; $where = ' AND type IN (' . implode(",", $i_bruk) . ')'; $result = \Kofradia\DB::get()->query("SELECT time, type, note, num FROM users_log WHERE ul_up_id IN (0, " . page_min_side::$active_player->id . "){$where} ORDER BY time DESC, id DESC LIMIT " . page_min_side::$active_player->data['up_log_new']); if ($result->rowCount() == 0) { echo ' <p class="c">Ingen hendelser ble funnet.</p>'; } else { // vis hendelsene $logs = array(); while ($row = $result->fetch()) { $day = ess::$b->date->get($row['time'])->format(date::FORMAT_NOTIME); $data = $gamelog->format_log($row['type'], $row['note'], $row['num']); $logs[$day][] = ' <p><span class="time"><span class="ny">Ny!</span> - ' . ess::$b->date->get($row['time'])->format("H:i") . ':</span> ' . $data . '</p>'; } 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">'; foreach ($items as $item) { echo $item; } echo ' </div> </div>'; } echo ' <p class="c">Viser ' . page_min_side::$active_player->data['up_log_new'] . ' <b>ny' . (page_min_side::$active_player->data['up_log_new'] == 1 ? '' : 'e') . '</b> hendelse' . (page_min_side::$active_player->data['up_log_new'] == 1 ? '' : 'r') . '<br /><a href="' . htmlspecialchars(page_min_side::addr()) . '">Se full oversikt</a></p>'; } \Kofradia\DB::get()->exec("UPDATE users_players SET up_log_new = 0 WHERE up_id = " . page_min_side::$active_player->id); page_min_side::$active_player->data['up_log_new'] = 0; } else { echo ' <div class="bg1_c small bg1_padding"> <h1 class="bg1">Normale hendelser<span class="left"></span><span class="right"></span></h1> <div class="bg1" id="logg"> <p class="c"><a href="' . htmlspecialchars(page_min_side::addr()) . '">Vis oversikt over alle normale hendelser »</a></p> </div> </div>'; } } else { // filter $filter = array(); foreach ($_GET as $name => $val) { $matches = NULL; 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."); } // hva skal vi vise? if (!$filter) { echo ' <p class="c filterbox"><a href="#" onclick="toggle_display(\'.filterbox\', event)">Vis filteralternativer</a></p>'; } echo ' <div' . (!$filter ? ' style="display: none"' : '') . ' class="filterbox bg1_c"> <h1 class="bg1">Filter<span class="left2"></span><span class="right2"></span></h1> <div class="bg1"> <p class="c">Velg filter (<a href="#" class="box_handle_toggle" rel="f[]">Merk alle</a>)</p> <form action="" method="get">' . (!page_min_side::$active_own || !page_min_side::$active_player->active ? ' <input type="hidden" name="up_id" value="' . page_min_side::$active_player->id . '" />' : '') . ' <input type="hidden" name="a" value="log" /> <table class="table center" width="100%"> <tbody>'; $tbody = new tbody(3); // 3 kolonner foreach ($tilgjengelig as $id) { $title = gamelog::$items_name[$id]; $aktivt = in_array($id, $i_bruk) && $filter; $ant = $count[$id]; $tbody->append('<input type="checkbox" name="f' . $id . '" rel="f[]" value=""' . ($aktivt ? ' checked="checked"' : '') . ' />' . htmlspecialchars($title) . ' <span class="dark">(' . $ant . ' stk)</span>', 'class="box_handle"'); } $tbody->clean(); echo ' </tbody> </table> <p class="c">' . show_sbutton("Oppdater") . '</p> </form> </div> </div>'; $i_bruk[] = "NULL"; $where = ' AND type IN (' . implode(",", $i_bruk) . ')'; // sideinformasjon - hent loggene på denne siden $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, max(50, page_min_side::$active_player->data['up_log_new'])); $result = $pagei->query("SELECT time, type, note, num FROM users_log WHERE ul_up_id IN (0, " . page_min_side::$active_player->id . "){$where} ORDER BY time DESC, id DESC"); if ($result->rowCount() == 0) { echo ' <p class="c">Ingen hendelser ble funnet.</p>'; } else { echo ' <p class="c">Totalt har du <b>' . game::format_number($total) . '</b> hendelse' . ($total == 1 ? '' : 'r') . '.</p>'; if ($pagei->pages > 1) { echo ' <p class="c">' . address::make($_GET, "", $pagei) . '</p>'; } // hendelsene $logs = array(); $i = 0; $e = $pagei->start; while ($row = $result->fetch()) { $day = ess::$b->date->get($row['time'])->format(date::FORMAT_NOTIME); $data = $gamelog->format_log($row['type'], $row['note'], $row['num']); $ny = $e < page_min_side::$active_player->data['up_log_new']; $logs[$day][] = ' <p><span class="time">' . ($ny ? '<span class="ny">Ny!</span> - ' : '') . '' . ess::$b->date->get($row['time'])->format("H:i") . ':</span> ' . $data . '</p>'; $e++; } 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">'; foreach ($items as $item) { echo $item; } echo ' </div> </div>'; } echo ' <p class="c">Viser ' . $pagei->count_page . ' av ' . $pagei->total . ' hendelse' . ($pagei->total == 1 ? '' : 'r') . '</p>'; if ($pagei->pages > 1) { echo ' <p class="c">' . address::make($_GET, "", $pagei) . '</p>'; } } } echo ' </div>'; }