예제 #1
0
파일: Contacts.php 프로젝트: Kuzat/kofradia
 /**
  * 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));
 }