/** * Add new contact */ public function action_add($up_id) { $is_block = getval("type") == "block"; if (!($player = \player::get($up_id))) { \ess::$b->page->add_message("Fant ikke spilleren.", "error"); return \redirect::handle("/kontakter", \redirect::ROOT); } // død? if ($player->data['up_access_level'] == 0) { \ess::$b->page->add_message('Spilleren <user id="' . $player->id . '" /> er død og kan ikke legges til.', "error"); return $player->redirect_to(); } // meg selv? if ($player->id == $this->user->player->id) { \ess::$b->page->add_message("Du kan ikke legge til deg selv.", "error"); return $player->redirect_to(); } // avbryte? if (isset($_POST['abort'])) { return $player->redirect_to(); } // allerede lagt til? $contacts = $this->user->getContacts(); foreach ($contacts as $contact) { if ($contact->getTargetPlayerID() == $player->id && $contact->isBlock() == $is_block) { \ess::$b->page->add_message('<user id="' . $player->id . '" /> er allerede i listen.', "error"); return $player->redirect_to(); } } // har vi info? if (isset($_POST['add']) && validate_sid(false)) { // begrunnelse $info = trim(postval("info")); if (!Contact::validateInfoLength($info)) { \ess::$b->page->add_message(($contact->isBlock() == 1 ? 'Begrunnelsen' : 'Informasjonen') . " var for lang. Kan ikke være mer enn " . Contact::MAX_INFO_LENGTH . " tegn (regnet uten BB koder).", "error"); } else { $contact = Contact::create($this->user, $player, $info, $is_block); if (!$contact) { \ess::$b->page->add_message("Kunne ikke legge til spilleren. Ukjent feil."); } else { \ess::$b->page->add_message('<user id="' . $player->id . '" /> er nå ' . ($is_block ? 'blokkert' : 'lagt til i din kontaktliste') . '.'); return \redirect::handle("/kontakter", \redirect::ROOT); } } } return View::forge("users/contacts/add", array("is_block" => $is_block, "player" => $player)); }