/** * List polls */ public function action_index($page = 1) { \ess::$b->page->add_title("Avstemninger"); // hent avstemningene $pagei = new \pagei(\pagei::PER_PAGE, 10, \pagei::ACTIVE_GET, "side"); $pagei->__construct(\pagei::ACTIVE, intval($page)); $polls = Poll::getPolls($pagei, \login::$logged_in ? \login::$user : null); $data = array(); foreach ($polls as $poll) { $vote = \login::$logged_in ? $poll->getVote() : null; // finn alternativet med flest stemmer $votes_max = 0; foreach ($poll->options as $option) { if ($option->data['po_votes'] > $votes_max) { $votes_max = $option->data['po_votes']; } } $options = array(); foreach ($poll->options as $option) { $options[] = array("item" => $option, "percent" => $option->getPercent(), "is_vote" => $option == $vote, "width" => round($option->data['po_votes'] / $votes_max * 100)); } $data[] = array("item" => $poll, "options" => $options, "in_progress" => $poll->data['p_time_end'] > time()); } return View::forgeTwig("polls/poll_list", array("polls" => $data, "pagei" => $pagei)); }
/** Last inn siden (kalles til slutten av scriptet for å hente themet */ public function load() { $this->content .= ob_get_contents(); @ob_clean(); // load through twig template? $templates = array('guest_simple' => 'templates/guest/simple', 'guest' => 'templates/guest/wide', 'node' => 'templates/guest/node', 'doc' => 'templates/doc'); if (isset($templates[$this->theme_file])) { $template = $templates[$this->theme_file]; \Kofradia\View::forgeTwig($template); $response = new \Kofradia\Response(); $response->setContents(\Kofradia\View::forgeTwig($template)); $response->output(); die; } global $_base; $_base->dt("page_load_pre"); // temafilen $theme_file = PATH_PUBLIC . "/themes/" . $this->theme . "/" . $this->theme_file . ".php"; // finnes ikke temafilen? if (!file_exists($theme_file)) { throw new HSException("Fant ikke temafilen <b>{$this->theme_file}.php</b> for temaet <b>{$this->theme}</b>."); } if (mb_strpos($this->content, '<boxes />') === false) { $this->content = '<boxes />' . $this->content; } // hent temafilen require $theme_file; // hent full html kode som ble generert $content = ob_get_contents(); @ob_clean(); echo $this->postParse($content); die; }
/** * Show 'takk til'-page */ public function action_credits() { \ess::$b->page->add_title("Takk til"); $pagei = new \pagei(\pagei::PER_PAGE, 15); $donations = Donation::getDonations($pagei); return View::forge("misc/takk_til", array("donations" => $donations)); }
/** * Show full list */ public function action_list() { \ess::$b->page->add_title("Donasjoner"); // hent donasjonene på denne siden $pagei = new \pagei(\pagei::ACTIVE_GET, "side", \pagei::PER_PAGE, 30); $list = Donation::getDonations($pagei); return View::forgeTwig("donations/list", array("pagei" => $pagei, "donations" => $list)); }
/** * List of last utpressinger */ public function action_log() { $this->needUser(); $this->ut = new \Kofradia\Game\Utpressing($this->user->player); \ess::$b->page->add_title("Utpressing"); \ess::$b->page->add_title("Siste utpressinger"); \kf_menu::$data['utpressing'] = true; $pagei = new \pagei(\pagei::PER_PAGE, 20, \pagei::ACTIVE_GET, "side"); $expire = time() - 43200; $rows = $this->ut->getLast($pagei, $expire); return View::forge('game/utpressing/log', array("list" => $rows, "pagei" => $pagei)); }
/** * Show list of GitHub-events * This is allowed for all users, including guests */ public function show_list() { if (\login::$logged_in) { $github = \Kofradia\Users\GitHub::get(\login::$user); $events = $events = $github->getUnseenEvents(); $github->setUpdated(); // any new? if ($events) { // show the new ones return View::forge("github/list_new", array("events" => $events)); } } // show full list $pagei = new \pagei(\pagei::PER_PAGE, 40, \pagei::ACTIVE_GET, "page"); $events = Hendelser::getEvents($pagei); // show the list return View::forge("github/list", array("events" => $events, "pagei" => $pagei)); }
/** * Shows the result of a query in a simple table * * @param \PDOStatement */ public static function debugResult($result) { $query = $result->queryString; $fields = array(); $table = array(); if ($result->rowCount() == 0) { $fields = array("empty"); } else { $row = $result->fetch(); foreach (array_keys($row) as $field) { $fields[] = $field; } do { $table[] = $row; } while ($row = $result->fetch()); } echo View::forge("app/db/debugger", array("query" => $query, "fields" => $fields, "table" => $table)); }
/** * Shows a recordlist of online users within each hour */ public function action_online_top() { \ess::$b->page->add_title("Antall pålogget rekorder"); // hent stats $result = \Kofradia\DB::get()->query("SELECT name, extra, value, time FROM sitestats"); $sitestats = array(); $sitestats_max = array(); while ($row = $result->fetch()) { $sitestats[$row['name']][$row['extra']] = $row; $sitestats[$row['name']][$row['extra']] = $row; if (!array_key_exists($row['name'], $sitestats_max)) { $sitestats_max[$row['name']] = $row; } else { if ($row['value'] > $sitestats_max[$row['name']]['value']) { $sitestats_max[$row['name']] = $row; } } } return View::forge("stats/online_top", array("sitestats" => $sitestats, "sitestats_max" => $sitestats_max)); }
<?php // data: // \Kofradia\Users\Contact $contact $is_block = $contact->isBlock(); $player = $contact->getTargetPlayer(); echo ' <h1>Oppdater ' . (!$is_block ? 'kontakt' : 'blokkering') . '</h1>'; echo \Kofradia\View::forge("users/contacts/form_add_edit", array("edit" => true, "is_block" => $is_block, "player" => $player, "contact" => $contact));
<h1 id="kontakter">Kontakter</h1> <p>Her er en oversikt over dine kontakter. Disse kontaktene får et eget bilde ved siden av spillernavnet når spillernavnet blir vist på siden. For å legge til en kontakt må du trykke på kontaktlinken øverst i profilen til vedkommende.</p> <?php if (!$friends) { ?> <p>Du har ingen kontakter.</p> <?php } else { echo \Kofradia\View::forge("users/contacts/list_group", array("contacts" => $friends, "sort" => $friends_sort, "is_block" => false)); } ?> <h1 id="blokkeringer">Blokkeringsliste</h1> <p>Her er en oversikt over hvem du har blokkert. Disse kontaktene kan ikke sende deg meldinger og får et bilde ved sidenav spillernavnet når spillernavnet blir vist på siden. For å legge til en blokkering må du trykke på blokkeringslinken øverst i profilen til vedkommende.</p> <p>Begrunnelsen som er satt opp hos vedkommende vil komme opp som begrunnelse når en blokkert spiller forsøker å sende deg en melding og liknende.</p> <?php if (!$blocks) { ?> <p>Du har ikke blokkert noen spillere.</p> <?php } else { echo \Kofradia\View::forge("users/contacts/list_group", array("contacts" => $blocks, "sort" => $blocks_sort, "is_block" => true)); }
/** * View list of contacts */ public function action_list() { $sort_k = new \sorts("sort", "/kontakter"); $sort_k->append("asc", "Navn", "up_name"); $sort_k->append("desc", "Navn", "up_name DESC"); $sort_k->append("asc", "Sist aktiv", "up_last_online DESC"); $sort_k->append("desc", "Sist aktiv", "up_last_online"); $sort_k->append("asc", "Lagt til som kontakt", "uc_time"); $sort_k->append("desc", "Lagt til som kontakt", "uc_time DESC"); $sort_k->set_active(getval('sort'), 0); $sort_b = new \sorts("sort", "/kontakter"); $sort_b->append("asc", "Navn", "up_name"); $sort_b->append("desc", "Navn", "up_name DESC"); $sort_b->append("asc", "Sist aktiv", "up_last_online DESC"); $sort_b->append("desc", "Sist aktiv", "up_last_online"); $sort_b->append("asc", "Lagt til som blokkering", "uc_time"); $sort_b->append("desc", "Lagt til som blokkering", "uc_time DESC"); $sort_b->set_active(getval('sort'), 0); $sort_by = $sort_k->active()['params']; $contacts = Contact::getContacts($this->user, $sort_by); $by_type = array(Contact::TYPE_FRIEND => array(), Contact::TYPE_BLOCK => array()); foreach ($contacts as $contact) { $by_type[$contact->getType()][] = $contact; } return View::forge("users/contacts/list", array("friends" => $by_type[Contact::TYPE_FRIEND], "blocks" => $by_type[Contact::TYPE_BLOCK], "friends_sort" => $sort_k, "blocks_sort" => $sort_b)); }
/** * Vis side for feilmelding hvis det er noen feilmelding */ protected function show_errors() { // ingen feilmelding? if (!isset($_SESSION[$GLOBALS['__server']['session_prefix'] . 'login_error'])) { return; } // vis feilside $login_error = $_SESSION[$GLOBALS['__server']['session_prefix'] . 'login_error'][0]; $info = $_SESSION[$GLOBALS['__server']['session_prefix'] . 'login_error'][1]; unset($_SESSION[$GLOBALS['__server']['session_prefix'] . 'login_error']); \ess::$b->page->theme_file = "guest"; switch ($login_error) { case "deactivated": \ess::$b->page->add_title("Deaktivert"); return \Kofradia\View::forgeTwig('users/login/deactivated', array("email" => $info['u_email'], "date" => $info['u_deactivated_time'], "reason" => \game::bb_to_html($info['u_deactivated_reason']))); default: throw new HSException("Ukjent innloggingsfeil ({$login_error})"); } }
<?php // data: // array $events // pagei $pagei ?> <h1 class="c">Hendelser i GitHub</h1> <?php echo \Kofradia\View::forge("github/show_events", array("events" => $events)); ?> <p class="c"><?php echo $pagei->pagenumbers(); ?> </p> <p class="c"><a href="https://github.com/hswno/kofradia/pulse" target="_blank">Gå til GitHub</a></p>
/** * Hent boks med livefeed */ public function action_livefeed() { $lf = \livefeed::get_latest(3); return \Kofradia\View::forgeTwig('users/login/helpers/livefeed', array("data" => $lf)); }