/** * 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 . '">« Tilbake</a></p> </form> </div>'; $this->ff->load_page(); }