Exemplo n.º 1
0
    /**
     * Behandle navnbytte
     */
    protected function page_navnbytte_handle()
    {
        ess::$b->page->add_title("Navnbytte");
        echo '
<!-- søk om navnbytte -->
<div class="section w200">
	<h2>Søk om navnbytte</h2><boxes />';
        // hent mulig søknad
        $result = \Kofradia\DB::get()->query("SELECT ds_id, ds_up_id, ds_time, ds_reason, ds_params FROM div_soknader WHERE ds_type = " . soknader::TYPE_FF_NAME . " AND ds_rel_id = {$this->ff->id} AND ds_reply_decision = 0");
        $soknad = $result->fetch();
        // har vi en aktiv søknad?
        if ($soknad) {
            $params = unserialize($soknad['ds_params']);
            // trekke tilbake søknaden?
            if (isset($_POST['withdraw'])) {
                if (soknader::delete($soknad['ds_id'])) {
                    $extra = '';
                    // gi tilbake penger?
                    if (isset($params['cost']) && $params['cost'] > 0) {
                        $this->ff->bank(ff::BANK_TILBAKEBETALING, $params['cost'], 'Navnsøknad tilbaketrukket: ' . $params['name']);
                        $extra = ' Beløpet på ' . game::format_cash($params['cost']) . ' ble satt tilbake på bankkontoen.';
                    }
                    ess::$b->page->add_message("Søknaden ble trukket tilbake.{$extra}");
                }
                redirect::handle("panel?ff_id={$this->ff->id}&a=navnbytte");
            }
            echo '
	<p>Søknad ble levert av <user id="' . $soknad['ds_up_id'] . '" /> ' . ess::$b->date->get($soknad['ds_time'])->format() . '.</p>
	<dl class="dd_right">
		<dt>Navn som søkes</dt>
		<dd>' . htmlspecialchars($params['name']) . '</dd>
		<dt>Kostnad</dt>
		<dd>' . (isset($params['cost']) ? game::format_cash($params['cost']) : '0 kr') . '</dd>
	</dl>
	<p><u>Begrunnelse:</u><br />' . game::format_data($soknad['ds_reason'], "bb-opt", "Ingen begrunnelse gitt.") . '</p>
	<p>Søknaden er under behandling.</p>
	<form action="" method="post">
		<p>' . show_sbutton("Trekk tilbake søknad", 'name="withdraw"') . '</p>
	</form>';
        } else {
            // kan vi levere gratis søknad?
            $soknad_free = $this->ff->mod || $this->ff->competition || !$this->ff->params->get("name_changed") || $this->ff->params->get("name_changed") < $this->ff->params->get("sold") || $this->ff->params->get("name_changed") < $this->ff->data['ff_time_reset'];
            // levere søknad?
            if (isset($_POST['name']) && isset($_POST['reason'])) {
                $name = trim(postval("name"));
                $reason = trim(postval("reason"));
                // fjern evt. flere mellomromstegn etter hverandre
                $name = preg_replace("/  +/u", " ", $name);
                $_POST['name'] = $name;
                // samme navn som før?
                if ($name == $this->ff->data['ff_name']) {
                    ess::$b->page->add_message("Du må velge et nytt navn å søke om.");
                } elseif (preg_match("/[^\\p{L}\\d ]/u", $name)) {
                    ess::$b->page->add_message("Navnet kan kun inneholde bokstaver, tall og mellomrom.", "error");
                } elseif (mb_strlen($name) < 2) {
                    ess::$b->page->add_message("Minimum lengde for navnet er 2 tegn.", "error");
                } elseif (mb_strlen($name) > 20) {
                    ess::$b->page->add_message("Maksimal lengde for navnet er 20 tegn.", "error");
                } elseif (empty($reason)) {
                    ess::$b->page->add_message("Du må fylle inn en begrunnelse.", "error");
                } else {
                    $success = $soknad_free;
                    // forsøk å trekk fra pengene
                    if (!$soknad_free) {
                        $success = $this->ff->bank(ff::BANK_BETALING, ff::NAME_CHANGE_COST, 'Navnsøknad: ' . $name);
                    }
                    // ikke nok penger i banken
                    if (!$success) {
                        ess::$b->page->add_message("Det er ikke nok penger i banken.", "error");
                    } else {
                        // legg til søknaden
                        soknader::add(soknader::TYPE_FF_NAME, array("name" => $name, "cost" => $soknad_free ? 0 : ff::NAME_CHANGE_COST), $reason, $this->ff->id);
                        ess::$b->page->add_message("Du har nå levert søknad om nytt navn til {$this->ff->type['refobj']}." . ($soknad_free ? '' : ' ' . game::format_cash(ff::NAME_CHANGE_COST) . ' ble trukket fra bankkontoen.'));
                        redirect::handle("panel?ff_id={$this->ff->id}&a=navnbytte");
                    }
                }
            }
            echo '
	<form action="" method="post">' . ($soknad_free ? $this->ff->competition ? '
		<p>Du kan under hele konkurranseperioden sende inn gratis søknad om navnbytte for ' . $this->ff->type['refobj'] . '. Så snart konkurranseperioden er over, vil det koste ' . game::format_cash(ff::NAME_CHANGE_COST) . ' å søke om navnbytte dersom navnet ble byttet under konkurranseperioden.</p>' : ($this->ff->mod ? '
		<p>Som moderator kan du sende inn gratis søknader på vegne av ' . $this->ff->type['refobj'] . '.</p>' : '
		<p>Du kan sende inn gratis søknad om navnbytte for ' . $this->ff->type['refobj'] . ' én gang (søknaden må innvilges for å telle). Neste gang vil det koste ' . game::format_cash(ff::NAME_CHANGE_COST) . '.</p>') : '') . '
		<dl class="dd_right">
			<dt>Ønsket navn</dt>
			<dd><input type="text" name="name" value="' . htmlspecialchars(postval("name", $this->ff->data['ff_name'])) . '" class="styled w100" /></dd>
			<dt>Kostnad (ved innvilgelse)</dt>
			<dd>' . ($soknad_free ? '0 kr' : game::format_cash(ff::NAME_CHANGE_COST)) . '</dd>
		</dl>
		<p>Begrunnelse</p>
		<p class="c"><textarea name="reason" rows="5" cols="30">' . htmlspecialchars(postval("reason")) . '</textarea></p>
		<p class="c">' . show_sbutton("Send inn søknad") . '</p>
	</form>';
        }
        echo '
	<p><a href="panel?ff_id=' . $this->ff->id . '">&laquo; Tilbake</a></p>
</div>';
        $this->ff->load_page();
    }
Exemplo n.º 2
0
		<p>Det er ingen' . ($all ? '' : ' ubehandlede') . ' søknader.</p>';
} else {
    echo '
		<table class="table tablemt center" style="width: 100%">
			<thead>
				<tr>
					<th>Type</th>
					<th>Innsender</th>
					<th>Tidspunkt</th>' . ($all ? '
					<th>Resultat</th>' : '') . '
				</tr>
			</thead>
			<tbody>';
    $i = 0;
    while ($row = $result->fetch()) {
        $type = soknader::get_type($row['ds_type']);
        $link = htmlspecialchars($type['title']);
        if (access::has($type['access'])) {
            $link = '<a href="soknader?ds_id=' . $row['ds_id'] . '" title="Vis søknad">' . $link . '</a>';
        } else {
            $link .= ' (' . access::name($type['access']) . ')';
        }
        echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td>' . $link . '</td>
					<td><user id="' . $row['ds_up_id'] . '" /></td>
					<td>' . $_base->date->get($row['ds_time'])->format() . '</td>' . ($all ? '
					<td>' . ($row['ds_reply_decision'] == 1 ? 'Innvilget' : ($row['ds_reply_decision'] == -1 ? 'Avslått' : 'Under behandling')) . '</td>' : '') . '
				</tr>';
    }
    echo '