public function index() { $type = MailBox::$IN; if (isset($this->params['type'])) { $type = $this->params['type']; } try { $mailBox = new MailBox(User::getInstance(), $type); } catch (MailBoxNullException $e) { $this->error(ECode::$MAIL_NOBOX); } $this->notice = '邮件-' . $mailBox->desc; $p = isset($this->params['url']['p']) ? $this->params['url']['p'] : 1; App::import('vendor', "inc/pagination"); try { $pagination = new Pagination($mailBox, 10); $mails = $pagination->getPage($p); } catch (MailDataNullException $e) { $this->error(ECode::$MAIL_NOMAIL); } $info = false; if ($mailBox->getTotalNum() > 0) { App::import('Sanitize'); foreach ($mails as $v) { $info[] = array("read" => $v->isRead(), "num" => $v->num, "sender" => $v->OWNER, "title" => Sanitize::html($v->TITLE), "time" => date("Y-m-d H:i:s", $v->POSTTIME), "size" => $v->EFFSIZE); } } $this->set("type", $type); $this->set("info", $info); $this->set("totalNum", $mailBox->getTotalNum()); $this->set("curPage", $pagination->getCurPage()); $this->set("totalPage", $pagination->getTotalPage()); }
public function ajax_delete() { if (!$this->RequestHandler->isPost()) { $this->error(ECode::$SYS_REQUESTERROR); } if (!isset($this->params['type'])) { $this->error(ECode::$MAIL_NOBOX); } $type = $this->params['type']; try { $box = new MailBox(User::getInstance(), $type); } catch (MailBoxNullException $e) { $this->error(ECode::$MAIL_NOBOX); } if (!isset($this->params['num'])) { if (isset($this->params['form']['all'])) { //delete all try { $all = $box->getRecord(1, $box->getTotalNum()); foreach ($all as $mail) { $mail->delete(); } } catch (Exception $e) { continue; } } else { //delete normal foreach ($this->params['form'] as $k => $v) { if (!preg_match("/m_/", $k)) { continue; } $num = split("_", $k); try { $mail = Mail::getInstance($num[1], $box); $mail->delete(); } catch (Exception $e) { continue; } } } } else { try { //delete single $num = $this->params['num']; $mail = Mail::getInstance($num, $box); if (!$mail->delete()) { $this->error(ECode::$MAIL_DELETEERROR); } } catch (Exception $e) { $this->error(ECode::$MAIL_DELETEERROR); } } $ret['ajax_code'] = ECode::$MAIL_DELETEOK; $ret['default'] = "/mail/{$type}"; $ret['list'][] = array("text" => $box->desc, "url" => "/mail/{$type}"); $this->set('no_html_data', $ret); }