Example #1
0
 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());
 }
Example #2
0
 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);
 }