Example #1
0
 /**
  * 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);
     }
 }
Example #2
0
 /**
  * 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();
 }
Example #3
0
    /**
     * 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 . '&amp;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();
    }
Example #4
0
    /**
     * 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();
    }