/** * Behandle en utgivelse */ protected function pub_handle() { // hent informasjon $ffn = ff_avis_utgivelse::get(getval("ffn"), $this->ff); // finnes ikke? if (!$ffn) { $this->ff->redirect(); } redirect::store("avis?ff_id={$this->ff->id}&u&ffn={$ffn->id}"); ess::$b->page->add_title($ffn->data['ffn_title']); // rediger utgivelse if (isset($_GET['edit'])) { $this->pub_edit($ffn); } elseif (isset($_GET['edit_price'])) { $this->pub_price($ffn); } elseif (isset($_GET['delete'])) { $this->pub_delete($ffn); } elseif (isset($_GET['logo'])) { $this->pub_logo($ffn); } elseif (isset($_GET['add_ffna'])) { $this->pub_ffna_add($ffn); } elseif (isset($_GET['remove_ffna'])) { $this->pub_ffna_remove($ffn); } elseif (isset($_GET['move_ffna'])) { $this->pub_ffna_move($ffn); } elseif (isset($_GET['preview'])) { $this->pub_preview($ffn); } elseif (isset($_GET['publish'])) { $this->pub_publish($ffn); } elseif (isset($_GET['unpublish']) && $this->ff->mod) { $this->pub_publish_remove($ffn); } else { $this->pub_show($ffn); } }
/** * 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(); }
/** * Vis informasjon om betaling for FF */ protected function page_pay_handle() { $pay_info = $this->ff->pay_info(); if (isset($_POST['pay'])) { // har vi ikke gått over tiden if ($pay_info['in_time']) { ess::$b->page->add_message("Du har ikke mulighet til å betale nå."); } elseif (login::$user->player->data['up_cash'] <= $pay_info['price']) { ess::$b->page->add_message("Du har ikke nok penger på hånda."); } else { // utfør betalingen $result = $this->ff->pay_action(); if ($result !== false) { ess::$b->page->add_message("Du har betalt driftskostnaden på <b>" . game::format_cash($result) . "</b>. Neste gang driftskostnaden skal trekkes er " . ess::$b->date->get($this->ff->data['ff_pay_next'])->format() . "."); $this->ff->redirect(); } else { ess::$b->page->add_message("Noe gikk galt ved betaling. Prøv på nytt."); redirect::handle("panel?ff_id={$this->ff->id}&a=pay"); } } } ess::$b->page->add_title("Driftskostnad"); // hent oversikt over medlemmer og vis hvor mye hver av dem har ranket som teller for FF $rank_info = $this->ff->get_rank_info(); ess::$b->page->add_css(' .ff_panel_pay { padding-bottom: 1em } .ff_panel_pay .progressbar p { color: #EEEEEE } .ff_panel_pay .progressbar { margin-bottom: 2px; background-color: #2D2D2D } .ff_panel_pay .progressbar .progress { background-color: #434343 }'); echo ' <div class="section w350 ff_panel_pay"> <h2>Driftskostnad</h2> <p class="h_right"><a href="panel?ff_id=' . $this->ff->id . '">Tilbake</a></p> <boxes /> <p>For at ' . $this->ff->type['refobj'] . ' ikke skal dø ut, må det betales inn et beløp på <u>100 mill</u> i tillegg til kostnad per ekstra medlemsplass til spillet hver 10. dag.</p> <p>Når medlemmene i ' . $this->ff->type['refobj'] . ' ranker, vil beløpet som må innbetales synke med 1 og 1 mill avhengig av hvor mye som rankes.</p> <p>' . ucfirst($this->ff->type['refobj']) . ' mister ikke ranken hvis et medlem forlater ' . $this->ff->type['refobj'] . '.</p> <p>Beløpet vil bli trukket fra banken for ' . $this->ff->type['refobj'] . ' automatisk ved innbetalingstidspunkt. Hvis det ikke er nok penger i banken, vil ' . $this->ff->type['refobj'] . ' få frist på å innbetale beløpet manuelt innen 24 timer. Beløpet vil da øke med 50 %.</p>' . (!$pay_info['in_time'] ? ' <div class="section" style="width: 220px"> <h2>Betaling av driftskostnad</h2> <p class="error_box">' . ucfirst($this->ff->type['refobj']) . ' har overskredet tidspunktet for innbetaling. Betaling må skje manuelt av ' . $this->ff->type['priority'][1] . '/' . $this->ff->type['priority'][2] . '.</p> <dl class="dd_right"> <dt>Betalingsfrist</dt> <dd>' . ess::$b->date->get($pay_info['next'])->format() . '<br />' . game::timespan($pay_info['next'], game::TIME_ABS) . '</dd> <dt>Beløp</dt> <dd>' . game::format_cash($pay_info['price']) . '</dd> </dl>' . ($this->ff->access(2) ? ' <form action="panel?ff_id=' . $this->ff->id . '&a=pay" method="post"> <p class="c">' . show_sbutton("Betal driftskostnaden", 'name="pay"') . '</p> </form>' : '') . ' <p>Hvis beløpet ikke blir betalt innen betalingsfristen vil ' . $this->ff->type['refobj'] . ' bli oppløst.</p> </div>' : ' <dl class="dd_right"> <dt>Neste innbetaling</dt> <dd>' . ess::$b->date->get($pay_info['next'])->format() . '</dd> <dt>Utgangspunkt for beløp (' . fwords("%d eksta spillerplass", "%d ekstra spillerplasser", $pay_info['members_limit']) . ')</dt> <dd>' . game::format_cash($pay_info['price_max']) . '</dd> <dt>Foreløpig beløp</dt> <dd>' . game::format_cash($pay_info['price']) . '</dd> </dl>') . ' <p>Medlemmers bidrag:</p>'; if (count($rank_info['players']) == 0) { echo ' <p>' . ucfirst($this->ff->type['refobj']) . ' har ingen medlemmer.</p>'; } else { foreach ($rank_info['players'] as $info) { echo ' <div class="progressbar"> <div class="progress' . ($info['points'] < 0 ? ' ff_progress_negative' : '') . '" style="width: ' . round($info['percent_bar']) . '%"> <p>' . game::profile_link($info['member']->id, $info['member']->data['up_name'], $info['member']->data['up_access_level']) . ' (' . $info['member']->get_priority_name() . ($info['member']->data['ffm_parent_up_id'] ? ' underordnet <user id="' . $info['member']->data['ffm_parent_up_id'] . '" />' : '') . ') (' . game::format_number($info['percent_text'], 1) . ' %)</p> </div> </div>'; } } if (isset($rank_info['others'])) { echo ' <div class="progressbar"> <div class="progress' . ($rank_info['others']['points'] < 0 ? ' ff_progress_negative' : '') . '" style="width: ' . round($rank_info['others']['percent_bar']) . '%"> <p>Tidligere medlemmer av ' . $this->ff->type['refobj'] . ' (' . game::format_number($rank_info['others']['percent_text'], 1) . ' %)</p> </div> </div>'; } echo ' </div>'; $this->ff->load_page(); }
/** * Endre leiepris */ protected function type_garasjeutleie_price($price) { // nylig endret? $last = $this->ff->params->get("garasje_time_change"); $expire = time() - 86400 * 3; if ($last > $expire && !access::has("mod")) { ess::$b->page->add_message("Leieprisen ble sist forandret " . ess::$b->date->get($last)->format() . ". Du må vente " . game::counter($last - $expire, true) . " før leieprisen kan endres på nytt."); $this->ff->redirect(); } // valgt pris? if (isset($_POST['price'])) { $price_new = game::intval($_POST['price']); if ($price_new == $price) { ess::$b->page->add_message("Du må skrive inn en ny pris.", "error"); } elseif ($price_new < ff::GTA_GARAGE_PRICE_LOW) { ess::$b->page->add_message("Leieprisen kan ikke være under " . game::format_cash(ff::GTA_GARAGE_PRICE_LOW) . ".", "error"); } elseif ($price_new > ff::GTA_GARAGE_PRICE_HIGH) { ess::$b->page->add_message("Leieprisen kan ikke være over " . game::format_cash(ff::GTA_GARAGE_PRICE_HIGH) . ".", "error"); } else { // lagre ny pris $this->ff->params->update("garasje_price", $price_new); if (!access::has("mod")) { $this->ff->params->update("garasje_time_change", time(), true); } else { $this->ff->params->commit(); } ess::$b->page->add_message("Leieprisen ble endret til " . game::format_cash($price_new) . "."); $this->ff->redirect(); } } echo ' <div class="bg1_c xxsmall" style="width: 280px"> <h1 class="bg1">Leiepris for garasje<span class="left2"></span><span class="right2"></span></h1> <div class="bg1"> <boxes /> <form action="" method="post"> <dl class="dd_right"> <dt>Nåværende pris per plass</dt> <dd>' . game::format_cash($price) . '</dd> <dt>Ny leiepris per plass</dt> <dd><input type="text" class="styled w80" name="price" value="' . game::format_cash(game::intval(postval("price", $price))) . '" /></dd> </dl> <p class="c">' . show_sbutton("Lagre ny pris") . ' <a href="./?ff_id=' . $this->ff->id . '">Tilbake</a></p> <p>Leieprisen kan settes fra ' . game::format_cash(ff::GTA_GARAGE_PRICE_LOW) . ' til ' . game::format_cash(ff::GTA_GARAGE_PRICE_HIGH) . ' og kan kun justeres hver 3. time</p> </form> </div> </div>'; $this->ff->load_page(); }