Example #1
0
    /**
     * Behandle navnbytte for moderator
     */
    protected function page_navnbytte_mod_handle()
    {
        ess::$b->page->add_title("Navnbytte for moderator");
        // 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) {
            ess::$b->page->add_message(ucfirst($this->ff->type['refobj']) . ' har allerede en søknad om navnbytte liggende som må behandles først.', "error");
            redirect::handle();
        }
        if (isset($_POST['name'])) {
            $name = trim(postval("name"));
            // 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");
            } else {
                $name_old = $this->ff->data['ff_name'];
                // endre navnet
                $this->ff->change_name($name, null, true);
                ess::$b->page->add_message("Navnet på {$this->ff->type['refobj']} ble endret fra " . htmlspecialchars($name_old) . " til " . htmlspecialchars($name) . ".");
                $this->ff->redirect();
            }
        }
        echo '
<div class="section w200">
	<h2>Bytte navn for ' . $this->ff->type['refobj'] . '</h2>
	<boxes />
	<form action="" method="post">
		<p>Som moderator kan du fritt endre navnet til ' . $this->ff->type['refobj'] . '.</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>
		</dl>
		<p class="c">' . show_sbutton("Endre navnet") . '</p>
		<p><a href="panel?ff_id=' . $this->ff->id . '">&laquo; Tilbake</a></p>
	</form>
</div>';
        $this->ff->load_page();
    }