echo ' <input type="radio" id="d_' . $key . '" name="d" value="' . $key . '"' . ($search_deleted_id == $key ? ' checked="checked"' : '') . ' /><label for="d_' . $key . '"> ' . $item[0] . '</label><br />'; } echo ' </div><div class="clear"></div></dd>'; } echo ' </dl> <p class="c">' . show_sbutton("Utfør søk") . '</p> </div> </form> </div>'; // søke? if (isset($_GET['qs'])) { $title_search = requestval("qs"); $text_search = requestval("qt"); // finn ut delene av spørringen $title_parts = search_query($title_search); $text_parts = search_query($text_search); // sett opp søkespørringen $search_title = false; $search_text_topic = false; $search_text_reply = false; if (count($title_parts[0]) > 0) { $search_title = " AND ft_title" . implode(" AND ft_title", $title_parts[0]); } if (count($text_parts[0]) > 0) { $search_text_topic = " AND ft_text" . implode(" AND ft_text", $text_parts[0]); $search_text_reply = " AND fr.fr_text" . implode(" AND fr.fr_text", $text_parts[0]); } if ($search_title === false && $search_text_topic === false && $search_text_reply === false) {
function step1_2() { global $__server; // er skjemaet sendt inn? if ($_SERVER['REQUEST_METHOD'] == "POST") { // sjekk for gyldig trinn if (!isset($_POST['step']) || $_POST['step'] != 1 && $_POST['step'] != 2) { redirect::handle(); } $step = $_POST['step']; // trin 1 if ($step == 1) { // epost1, epost2, b_dag, b_maaned, b_aar, forste_bruker $epost1 = trim(postval("epost1")); $epost2 = trim(postval("epost2")); $b_dag = intval(postval("b_dag")); $b_maaned = intval(postval("b_maaned")); $b_aar = intval(postval("b_aar")); $forste_bruker = isset($_POST['forste_bruker']); $date = ess::$b->date->get(); $n_day = $date->format("j"); $n_month = $date->format("n"); $n_year = $date->format("Y"); $age = $n_year - $b_aar - ($n_month < $b_maaned || $b_maaned == $n_month && $n_day < $b_dag ? 1 : 0); $birth = $b_aar . "-" . str_pad($b_maaned, 2, "0", STR_PAD_LEFT) . "-" . str_pad($b_dag, 2, "0", STR_PAD_LEFT); // sjekk om fødselsdatoen er gyldig $birth_date = ess::$b->date->get(); $birth_date->setDate($b_aar, $b_maaned, $b_dag); $birth_valid = $birth_date->format("Y-m-d") == $birth; // sjekk e-post $email_valid = game::validemail($epost1); // kontroller om e-postadressen eller domenet er blokkert if ($email_valid) { $pos = mb_strpos($epost1, "@"); $domain = mb_strtolower(mb_substr($epost1, $pos + 1)); $result = \Kofradia\DB::get()->query("SELECT eb_id, eb_type FROM email_blacklist WHERE (eb_type = 'address' AND eb_value = " . \Kofradia\DB::quote($epost1) . ") OR (eb_type = 'domain' AND eb_value = " . \Kofradia\DB::quote($domain) . ") ORDER BY eb_type = 'address' LIMIT 1"); $error_email = $result->fetch(); } // sjekk e-post (1) if (!$email_valid) { ess::$b->page->add_message("Ugyldig e-postadresse.", "error"); } elseif ($error_email) { if ($error_email['eb_type'] == "address") { ess::$b->page->add_message("E-postadressen <b>" . htmlspecialchars($epost1) . "</b> er blokkert for registrering.", "error"); } else { ess::$b->page->add_message("Domenet <b>" . htmlspecialchars($domain) . "</b> er blokkert for registrering og kan ikke benyttes.", "error"); } } elseif ($epost1 != $epost2) { ess::$b->page->add_message("Den gjentatte e-postadressen var ikke lik den første.", "error"); } elseif ($b_dag < 1 || $b_dag > 31) { ess::$b->page->add_message("Du må velge en gyldig dag.", "error"); } elseif ($b_maaned < 1 || $b_maaned > 12) { ess::$b->page->add_message("Du må velge en gyldig måned.", "error"); } elseif ($b_aar < 1900 || $b_aar > ess::$b->date->get()->format("Y")) { ess::$b->page->add_message("Du må velge et gyldig år.", "error"); } elseif (!$birth_valid) { ess::$b->page->add_message("Datoen du fylte inn for fødselsdatoen din eksisterer ikke."); } elseif ($age < 13) { putlog("ABUSE", "%c9%bUNDER ALDERSGRENSEN:%b%c %u{$_SERVER['REMOTE_ADDR']}%u prøvde å registrere seg med fødselsdato %u{$birth}%u (%u{$age}%u år) og e-posten %u{$epost1}%u!"); ess::$b->page->add_message("Du må ha fylt 13 år for å registrere deg og spille Kofradia!", "error"); redirect::handle("", redirect::ROOT); } elseif (!$forste_bruker) { ess::$b->page->add_message("I følge betingelsene kan du kun ha en bruker. Bruk den!", "error"); redirect::handle("", redirect::ROOT); } else { // hent DB info $result1 = \Kofradia\DB::get()->query("SELECT id, time, expire FROM registration WHERE email = " . \Kofradia\DB::quote($epost1)); $result2 = \Kofradia\DB::get()->query("SELECT u_id FROM users WHERE u_email = " . \Kofradia\DB::quote($epost1) . " AND u_access_level != 0"); // e-post allerede i registreringssystemet? if ($row = $result1->fetch()) { $time = game::timespan($row['expire'], game::TIME_ABS | game::TIME_FULL); ess::$b->page->add_message("E-postadressen er allerede aktivt i registeringssystemet. Sjekk e-posten for e-postkode eller vent {$time}, for så å prøve igjen.", "error"); } elseif ($row = $result2->fetch()) { putlog("ABUSE", "%c9%bREGISTRER KONTO:%b%c %u{$_SERVER['REMOTE_ADDR']}%u prøvde å registrere seg en e-post som allerede finnes: %u{$epost1}%u!"); ess::$b->page->add_message("Denne e-posten er allerede i bruk.", "error"); redirect::handle("", redirect::ROOT); } else { // sett opp kode $code = mb_substr(md5(uniqid("kofradia_")), 0, 16); // legg til i databasen \Kofradia\DB::get()->exec("INSERT INTO registration SET time = " . time() . ", birth = '{$birth}', email = " . \Kofradia\DB::quote($epost1) . ", code = '{$code}', ip = '{$_SERVER['REMOTE_ADDR']}', expire = " . (time() + 7200)); // send e-post $email = new email(); $email->text = 'Hei, Du har begynt registrering av bruker på Kofradia. Dersom du ikke har bedt om denne e-posten kan du se bort ifra den. For å bekrefte e-postadressen din må du følge denne lenken: ' . $__server['path'] . '/registrer?e=' . $code . ' Din verifiseringskode er: ' . $code . ' Forespørselen ble utført fra ' . $_SERVER['REMOTE_ADDR'] . '. Du må fortsette innen ' . game::timespan(7200, game::TIME_FULL | game::TIME_NOBOLD) . ' (' . ess::$b->date->get(time() + 7200)->format(date::FORMAT_SEC) . '). Etter den tid må du be om ny e-post. -- www.kofradia.no'; $email->headers['X-SMafia-IP'] = $_SERVER['REMOTE_ADDR']; $email->headers['Reply-To'] = "*****@*****.**"; $email->send($epost1, "Starte registrering på Kofradia"); ess::$b->page->add_message("En e-post med verifiseringskode har blitt sendt til <b>" . htmlspecialchars($epost1) . "</b>. Sjekk e-posten snarest!"); redirect::handle("?e"); } } } else { // e $ecode = trim(postval("e")); // sjekk e-postkode if (empty($ecode)) { ess::$b->page->add_message("Du må fylle ut e-postkoden du har fått på epost.", "error"); } else { // sjekk om den finnes $result = \Kofradia\DB::get()->query("SELECT id, time, email, code, ip, expire, user FROM registration WHERE code = " . \Kofradia\DB::quote($ecode)); if (!($row = $result->fetch())) { putlog("ABUSE", "%c9%bE-POST KODE:%b%c %u{$_SERVER['REMOTE_ADDR']}%u prøvde å fortsette registreringen med ugyldig e-postkode (%u{$ecode}%u)!"); ess::$b->page->add_message("Fant ikke e-postkoden i databasen! Kontroller at den er riktig og evt. be om ny e-postkode.", "error"); } else { // oppdater oppføringen \Kofradia\DB::get()->exec("UPDATE registration SET verified = 1 WHERE id = {$row['id']}"); $_SESSION[$GLOBALS['__server']['session_prefix'] . 'reg'] = array("id" => $row['id'], "step" => 3); redirect::handle(); } } } } echo ' <p><b>Velkommen</b> til Kofradia sine nettsider! Kofradia er et tekstbassert nettspill som handler om å utføre forskjellige funksjoner for å stige i gradene. I tillegg finnes det både forum og diverse annen informasjon på siden!</p> <p>På denne siden oppretter du din bruker og spiller. Merk! Det er kun lov å ha én bruker. Har du allerede en bruker fra før har du ikke lov til å registrere ny bruker.</p>'; if (!isset($_REQUEST['e'])) { ess::$b->page->add_js_domready('$("epost1").focus();'); echo ' <form action="registrer" method="post"> <input type="hidden" name="step" value="1" /> <div class="registrer_felt"> <boxes /> <dl class="dd_right dl_2x"> <dt>E-postadresse</dt> <dd><input type="text" id="epost1" name="epost1" value="' . htmlspecialchars(postval("epost1")) . '" class="styled w150" /></dd> <dt>Gjenta e-postadresse</dt> <dd><input type="text" name="epost2" value="' . htmlspecialchars(postval("epost2")) . '" class="styled w150" /></dd> <dt>Fødselsdato</dt> <dd> <select name="b_dag"> <option value="">Dag</option>'; $active = postval("b_dag"); for ($i = 1; $i <= 31; $i++) { echo ' <option value="' . $i . '"' . ($i == $active ? ' selected="selected"' : '') . '>' . $i . '</option>'; } echo ' </select> <select name="b_maaned"> <option value="">Måned</option>'; global $_lang; $active = postval("b_maaned"); for ($i = 1; $i <= 12; $i++) { echo ' <option value="' . $i . '"' . ($i == $active ? ' selected="selected"' : '') . '>' . ucfirst($_lang['months'][$i]) . '</option>'; } echo ' </select> <select name="b_aar"> <option value="">År</option>'; $active = postval("b_aar"); for ($i = ess::$b->date->get()->format("Y"); $i >= 1900; $i--) { echo ' <option value="' . $i . '"' . ($i == $active ? ' selected="selected"' : '') . '>' . $i . '</option>'; } echo ' </select> </dd> <dd><input type="checkbox" name="forste_bruker" id="c1" /><label for="c1"> Jeg har ingen aktiv bruker fra før</label></dd> </dl> <p class="c">' . show_sbutton("Gå til neste trinn") . '</p> </div> </form>'; } else { ess::$b->page->add_js_domready('$("verife").focus();'); echo ' <p><b>Verifiseringskode</b></p> <p>Når du har mottatt e-post etter å ha fylt inn e-postadresse og fødelsdato, mottar du en verifiseringskode som fylles inn her. Du kan deretter fortsette din registrering.</p> <form action="registrer" method="post"> <input type="hidden" name="step" value="2" /> <div class="registrer_felt"> <boxes /> <dl class="dd_right"> <dt>Verifiseringskode</dt> <dd><input type="text" id="verife" name="e" value="' . htmlspecialchars(requestval("e")) . '" maxlength="32" class="styled w120" /></dd> </dl> <p class="c">' . show_sbutton("Valider", 'class="indent"') . '</p> </div> <p><a href="registrer">Tilbake</a></p> </form>'; } }
public function action_index() { // vis feilmelding hvis noen if ($err = $this->show_errors()) { return $err; } #ess::$b->page->add_title("Logg inn"); #ess::$b->page->theme_file = "logginn"; // tillate logginn uten passord $devlogin = !MAIN_SERVER; if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['id'])) { // skjekk logg inn formen $err = false; $id = postval("id"); $pass = postval("passord"); if (empty($id) && empty($pass) && !$devlogin) { \ess::$b->page->add_message("Mangler ID og passord.", "error", 'login'); $err = true; } elseif (empty($id)) { // mangler id \ess::$b->page->add_message("Mangler ID.", "error", 'login'); $err = true; } elseif (empty($pass) && !$devlogin) { // mangler passord \ess::$b->page->add_message("Mangler passord.", "error", 'login'); $err = true; } $type = intval(postval('expire_type')); if ($type < 0 || $type > 2) { // ugyldig expire type \ess::$b->page->add_message("Ugyldig expire type!", "error", 'login'); $err = true; } // sikker tilkobling? $secure_only = isset($_POST['secure_only']); if (!$err) { // prøv å logg inn switch (\login::do_login($id, $pass, $type, true, $secure_only, $devlogin)) { case LOGIN_ERROR_USER_OR_PASS: \ess::$b->page->add_message("Feil ID" . (!$devlogin ? ' eller passord' : '') . ".", "error", 'login'); // logg putlog("ABUSE", "%c4%bUGYLDIG BRUKERNAVN/PASSORD:%b%c {$_SERVER['REMOTE_ADDR']} forsøkte å logge inn med ID %u{$id}%u!"); break; // utestengt // utestengt case LOGIN_ERROR_ACTIVATE: global $uid; // hent begrunnelse og info $result = \Kofradia\DB::get()->query("SELECT u_id, u_email, u_deactivated_reason, u_deactivated_time, up_name FROM users LEFT JOIN users_players ON up_id = u_active_up_id WHERE u_id = {$uid}"); $info = $result->fetch(); $_SESSION[$GLOBALS['__server']['session_prefix'] . 'login_error'] = array("deactivated", $info); putlog("ABUSE", "%c8%bLOGG INN - DEAKTIVERT%b%c: %u{$_SERVER['REMOTE_ADDR']}%u forsøkte å logge inn på %u{$info['u_email']}%u som er en deaktivert bruker!"); // send til feilside \redirect::handle("", \redirect::ROOT); break; default: if (!\login::$logged_in) { \ess::$b->page->add_message("Ukjent innloggingsfeil!", "error"); } else { // logget inn putlog("NOTICE", "%c7%bLOGG INN%b%c: (%u{$_SERVER['REMOTE_ADDR']}%u) %u" . \login::$user->player->data['up_name'] . "%u (" . \login::$user->data['u_email'] . ") ({$_SERVER['HTTP_USER_AGENT']}) " . \ess::$s['path'] . "/min_side?up_id=" . \login::$user->player->id); if (isset($_GET['orign'])) { \redirect::handle($_GET['orign'], \redirect::SERVER, \login::$info['ses_secure']); } \redirect::handle("", NULL, \login::$info['ses_secure']); } } } } // spør brukeren etter en spesifikk side? if (isset($_GET['orign']) && $_GET['orign'] != "/") { \ess::$b->page->add_message("Du må logge inn for å se denne siden.", "error", 'login'); } // sett opp e-posten vi ber om $id = ''; if (isset($_SESSION[$GLOBALS['__server']['session_prefix'] . 'logginn_id'])) { $id = $_SESSION[$GLOBALS['__server']['session_prefix'] . 'logginn_id']; unset($_SESSION[$GLOBALS['__server']['session_prefix'] . 'logginn_id']); } $id = requestval("id", $id); // expire type $expire = 0; if (isset($_REQUEST['expire_type'])) { $val = intval($_POST['expire_type']); if ($val >= 0 && $val <= 2) { $expire = $val; } } $r = new \Kofradia\Response(); $r->data = \Kofradia\View::forgeTwig("users/login/login", array("norobots" => isset($_GET['orign']), "userid" => $id, "expire" => $expire, "secure_only" => isset($_POST['secure_only']))); return $r; }
redirect::handle(); } // logge inn? if (isset($_REQUEST['id'])) { // allerede logget inn? /*if ($user) { $_base->page->add_message("Allerede logget inn.", "error"); redirect::handle(); }*/ if (!isset($_REQUEST['email']) && !$user) { $_base->page->add_message("Mangler e-post.", "error"); redirect::handle(); } $id = intval($_REQUEST['id']); $email = $user ? $user : requestval('email'); // finn oppføringen $result = \Kofradia\DB::get()->query("SELECT h_id, h_email FROM henvendelser WHERE h_random = {$id} AND h_email = " . \Kofradia\DB::quote($email) . " AND h_status != 4 ORDER BY h_hm_time DESC LIMIT 1"); $row = $result->fetch(); if (!$row) { $_base->page->add_message("Fant ikke oppføringen.", "error"); redirect::handle(); } else { if (!$user) { $_SESSION[$GLOBALS['__server']['session_prefix'] . 'henvendelser_email'] = $row['h_email']; $_SESSION[$GLOBALS['__server']['session_prefix'] . 'henvendelser_last_hit'] = time(); } #$_base->page->add_message("Du er nå logget inn som ".htmlspecialchars($row['h_email'])."."); redirect::handle("henvendelser?h_id={$row['h_id']}"); } }
/** * 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>'; } }
echo ' <h1>Meldinger</h1> <p>Fant ingen bruker med ID <b>' . $u_id . '</b>.</p>'; $_base->page->load(); } $show_deleted = true; echo ' <h1 class="scroll_here">Meldinger Admin</h1> <p>Du viser meldingene som tilhører ' . game::profile_link($user->player->data['up_id'], $user->player->data['up_name'], $user->player->data['up_access_level']) . '</p>'; redirect::store("innboks_sok?u_id={$u_id}"); } // logg visning av innboks putlog("PROFILVIS", "%c5%bVIS-MELDINGER-SOK:%b%c %u" . login::$user->player->data['up_name'] . "%u ({$_SERVER['REQUEST_URI']})"); // hvem som skal ha kunnet skrevet det man søker på $search_from = array(1 => array("Alle", ""), array("Meg selv", " AND im_up_id = up_ref.up_id"), array("Andre", " AND im_up_id != up_ref.up_id"), array('Spesifiser', NULL, array())); $id = requestval("f"); $search_from_id = isset($search_from[$id]) ? $id : 1; // fant ikke brukeren? if ($search_from_id == 4) { $name = trim(postval("u")); // sett opp brukernavnene $names = explode(",", $name); foreach ($names as $name) { $name = trim($name); if (empty($name)) { continue; } if (preg_match('/^[0-9a-zA-Z\\-_ ]+$/Du', $name)) { $search_from[4][2][] = $name; } else { $_base->page->add_message('Ugyldig spillernavn: <b>' . htmlspecialchars($name) . '</b>.', "error");
/** * Vervede spillere */ protected static function page_vervede() { global $__server; ess::$b->page->add_title("Vervede spillere"); // sortering $sort = new sorts("sort"); $sort->append("asc", "Spillernavn", "rec.up_name"); $sort->append("desc", "Spillernavn", "rec.up_name DESC"); $sort->append("asc", "Sist pålogget", "rec.up_last_online"); $sort->append("desc", "Sist pålogget", "rec.up_last_online DESC"); $sort->append("asc", "Registrert", "rec.up_created_time"); $sort->append("desc", "Registrert", "rec.up_created_time DESC"); $sort->append("asc", "Rankbonus", "u2.u_recruiter_points_bonus"); $sort->append("desc", "Rankbonus", "u2.u_recruiter_points_bonus DESC"); $sort->set_active(requestval("sort"), 5); // hent spillerene vi har vervet $sort_info = $sort->active(); $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 50); $result = $pagei->query("\n\t\t\tSELECT rec.up_id, rec.up_name, rec.up_access_level, rec.up_last_online, rec.up_created_time, u2.u_recruiter_points_bonus\n\t\t\tFROM\n\t\t\t\tusers_players rec,\n\t\t\t\tusers_players self,\n\t\t\t\tusers u1,\n\t\t\t\tusers u2\n\t\t\tWHERE u1.u_id = " . page_min_side::$active_user->id . " AND self.up_u_id = u1.u_id AND self.up_id = rec.up_recruiter_up_id AND u2.u_id = rec.up_u_id\n\t\t\tORDER BY {$sort_info['params']}"); echo ' <div class="bg1_c xmedium"> <h1 class="bg1">Vervede spillere<span class="left2"></span><span class="right2"></span></h1> <div class="bg1"> <ol> <li>Du gir ut denne linken til en du ønsker å verve: <a href="' . $__server['path'] . '/' . page_min_side::$active_player->id . '" target="_blank">' . $__server['path'] . '/' . page_min_side::$active_player->id . '</a></li> <li>Personen åpner linken</li> <li>Når personen registrerer seg vil brukeren være vervet av deg</li> </ol> <p class="c"><a href="' . ess::$s['relative_path'] . '/node/60">Mer informasjon om verving »</a></p>'; if ($pagei->total == 0) { echo ' <p class="c">Du har ikke vervet noen spillere.</p>'; } else { echo ' <p>Du har vervet ' . $pagei->total . ' spiller' . ($pagei->total == 1 ? '' : 'e') . ':</p> <table class="table spacerfix center' . ($pagei->pages == 1 ? ' tablemb' : '') . '"> <thead> <tr> <td>Spiller <nobr>' . $sort->show_link(0, 1) . '</nobr></td> <td>Sist pålogget <nobr>' . $sort->show_link(2, 3) . '</nobr></td> <td>Tid vervet <nobr>' . $sort->show_link(4, 5) . '</nobr></td> <td>Rankbonus <nobr>' . $sort->show_link(6, 7) . '</nobr></td> </tr> </thead> <tbody>'; $color = true; while ($row = $result->fetch()) { echo ' <tr' . ($color = !$color ? ' class="color"' : '') . '> <td>' . game::profile_link($row['up_id'], $row['up_name'], $row['up_access_level']) . '</td> <td class="r">' . game::timespan($row['up_last_online'], game::TIME_ABS) . '</td> <td class="r">' . ess::$b->date->get($row['up_created_time'])->format() . '</td> <td class="r">' . game::format_number($row['u_recruiter_points_bonus']) . '</td> </tr>'; } echo ' </tbody> </table>' . ($pagei->pages > 1 ? ' <p class="c">' . $pagei->pagenumbers() . '</p>' : ''); } echo ' </div> </div>'; }
foreach ($search_online_time as $key => $item) { echo ' <option value="' . $key . '"' . ($search_online_time_id == $key ? ' selected="selected"' : '') . '>' . htmlspecialchars($item[0]) . '</option>'; } echo ' </select> </dd> </dl> </div> <h4>' . show_sbutton("Utfør søk") . '</h4> </div> </form>'; // søke? if (isset($_REQUEST['finn'])) { $user_search = requestval("finn"); $text_search = requestval("profiletext"); // finn ut delene av spørringen $user_parts = search_query($user_search, false); $text_parts = search_query($text_search); // sett opp søkespørringen $search = ""; if (count($user_parts[0]) > 0) { $search .= " AND up_name" . implode(" AND up_name", $user_parts[0]); } if (count($text_parts[0]) > 0) { $search .= " AND up_profile_text" . implode(" AND up_profile_text", $text_parts[0]); } // sortering $sort_info = $sort->active(); $query = "up_id, up_name, up_last_online, up_access_level, up_points, upr_rank_pos FROM users_players LEFT JOIN users_players_rank ON upr_up_id = up_id WHERE 1{$search_online[$search_online_id][1]}{$search_status[$search_status_id][1]}{$search}{$search_ranks_query} ORDER BY {$sort_info['params']}"; $pagei = new pagei(pagei::ACTIVE_GET, "side", pagei::PER_PAGE, 50);
/** Vis skjema for å sende inn ny henvendelse */ protected static function show_new_form() { ess::$b->page->add_js_domready(' $("previewButton").addEvent("click", function() { $("previewContainer").set("html", "<p>Laster inn forhåndsvisning..</p>"); $("previewOuter").setStyle("display", "block"); if ($("previewOuter").getPosition().y > window.getScroll().y + window.getSize().y) { $("previewOuter").goto(-15); } preview($("textContent").get("value"), $("previewContainer")); });'); echo ' <div class="bg1_c small"> <h2 class="bg1">Ny henvendelse<span class="left2"></span><span class="right2"></span></h2> <div class="bg1"> <boxes /> <p>Husk og les gjennom <a href="' . ess::$s['relative_path'] . '/node">hjelpesidene</a> før du sender inn din henvendelse. Finner du ikke det du ser etter kan du sende inn en henvendelse her som alle i Crewet får mulighet til å svare på.</p> <form action="./" method="post"> <dl class="dl_20"> <dt>Kategori</dt> <dd> <select name="kategori">' . (!isset(self::$kategorier[requestval("kategori")]) ? ' <option>Velg kategori..</option>' : ''); // hent alle kategoriene foreach (self::$kategorier as $id => $row) { echo ' <option value="' . intval($id) . '"' . (requestval('kategori') == $id ? ' selected="selected"' : '') . '>' . htmlspecialchars($row['name']) . '</option>'; } echo ' </select> </dd> <dt>Tittel</dt> <dd><input type="text" name="tittel" value="' . htmlspecialchars(requestval('tittel')) . '" class="styled w200" maxlength="80" /></dd> <dt>Beskrivelse</dt> <dd><textarea name="innhold" id="textContent" style="width: 90%" rows="10">' . htmlspecialchars(requestval('innhold')) . '</textarea></dd> </dl> <p class="c">' . show_sbutton("Send inn spørsmål") . ' ' . show_button("Forhåndsvis", 'accesskey="p" id="previewButton"') . '</p> <div style="display: none" id="previewOuter"> <p>Forhåndsvisning:</p> <div class="p" id="previewContainer"></div> </div> </form> </div> </div>'; }