function handler_remove($page, $id = null) { S::assert_xsrf_token(); $val = ValidateFilter::fromId($id, false); if ($val === false) { $page->trigError("This item doesn't exist"); return; } $val->select(ValidateSelect::validate()); if ($val->writer()->id() != S::user()->id()) { throw new Exception("Invalid crendentials"); } S::logger()->log('proposal/remove', array('type' => $val->type(), 'writer' => $val->writer()->id(), 'group' => $val->group()->id(), 'created' => $val->created()->toDb(), 'item' => $val->itemToDb())); $val->item()->sendmailcancel(S::user()); $val->clean(); pl_redirect(Env::v('url')); }