zoukankan      html  css  js  c++  java
  • PHP 邮箱操作的Action

    <?php
    
    class MessageControlAction extends Action {
    
        // function MailShow ($start)      //显示邮箱
        // {
    
        //     // echo "<br><hr>".$start ."<hr><br>";
    
        //     $mail = M('sysinfo');
        //     $where['parameter'] = 'mailPageNum';                    
        //     $mailListLength = $mail->where($where)->field('content')->select();       //获取系统设置里面单页显示的信息条数
           
        //     $message = M('message');
        //     $emailCount = $message->count();      //数据一共多少条
        //     $arruser = $message->order('date desc')->limit('5')->select();      //取出所有数据
    
        //     //这里总数减一,是因为邮箱第一个数据不做有效数据.
        //     $mailCount = (($emailCount - 1) / $mailListLength[0]['content']);     //计算一共的页数, 用信息的条数, 除以每一页的条数.
        //     echo $mailCount;
    
        // }
    
        function index($start = 0)       //第一次打开, 初始化
        {
            
            $mail = M('sysinfo');
            $where['parameter'] = 'mailPageNum';                    
            $mailListLength = $mail->where($where)->field('content')->select();       //获取系统设置里面单页显示的信息条数
           
    
            $message = M('message');
            $emailCount = $message->count();
            $arruser = $message->order('date desc')->limit($mailListLength[0]['content'])->select();      //取出所有数据
    
            //这里总数减一,是因为邮箱第一个数据不做有效数据.
            $mailCount = ceil($emailCount / $mailListLength[0]['content']);     //计算一共的页数, 用信息的条数, 除以每一页的条数.
            
            if ($mailCount > 1)         //有分页的情况
            {
                $this->assign('mailCount', '1/' . $mailCount);
                $this->display("message");
                $this->initMailList($arruser, $start, $mailListLength[0]['content'], $emailCount);
            }
            else                        //没有分页
            {
                $this->assign('mailCount', '0/' . $mailCount);
                $this->display("message");
                $this->initMailList($arruser, $start, count($arruser), $emailCount);
            }
        }
    
        //判断字符串长度, 含utf8中文计算长度
        function utf8_strlen($str) {        
            $count = 0;        
            for($i = 0; $i < strlen($str); $i++)
            {        
                $value = ord($str[$i]);        
                if($value > 127) 
                {        
                    $count++;        
                    if($value >= 192 && $value <= 223){
                        $i++;  
                    } 
                              
                    elseif($value >= 224 && $value <= 239) 
                    {
                        $i = $i + 2; 
                    }
                               
                    elseif($value >= 240 && $value <= 247) 
                    {
                        $i = $i + 3; 
                    }
                               
                    else die('Not a UTF-8 compatible string');        
                }        
                $count++;        
            }        
            return $count;        
        }    
    
        //初始化邮箱
        function initMailList($arruser, $start, $offset, $mailLen)
        {
            //var_dump($arruser);
            $this->PrintMail($arruser, $start, $offset);
            if ($mailLen == 0)          //没有邮件
            {
                 return;
            } 
            else if ($start == 0 && $mailLen > ($start + $offset))       //就一页, 数据小于分页显示的数量
            {
                $this->initMailPageControl(0, 1);                                            
                return;
            }
            else if ($start == 0 && ($start + $offset) > $mailLen)     //显示第一页,并且邮件长度不足一页显示的
            {
                $this->initMailPageControl(0, 1);                           //第一页,没有上一页
                return;
            }
            else        //就是不需要显示分页,因为不足显示的类表长度,所有不需要上下分页.
            {
                // $this->initMailPageControl(1, 1);
                return;
            }
            
        }
    
        //初始化邮箱翻页操作, 
        function initMailPageControl($left, $right)
        {
            if ($left == true)
            {
                echo "<button class='proPage' style='background-color:#eee;color:#000; position: absolute;left: 300px; border-radius: 9px; top: 500px; margin:3px 0 3px 0;  82px; height: 30px;border: 1px solid #aaa;text-align:center;'><--上一页</button>";
            }
            else
            {
                echo "<button class='proPage' style='background-color:#fff;color:#999; position: absolute;left: 300px; border-radius: 9px; top: 500px; margin:3px 0 3px 0;  82px; height: 30px;border: 1px solid #aaa;text-align:center;'><--上一页</button>";
            }
    
            if ($right == true) 
            {
                echo "<button class='nextPage' style='background-color:#eee;color:#000; position: absolute;left: 385px; border-radius: 9px; top: 500px; margin:3px 0 3px 0;   82px; height: 30px; border: 1px solid #aaa;text-align:center;'>下一页--></button></div>";
            }
            else
            {
                echo "<button class='nextPage' style='background-color:#fff;color:#999; position: absolute;left: 385px; border-radius: 9px; top: 500px; margin:3px 0 3px 0;   82px; height: 30px; border: 1px solid #aaa;text-align:center;'>下一页--></button></div>";
            }
        }
    
    
        //打印邮件
        function PrintMail($arruser, $start, $offset)
        {
            // echo "<br><br><br><br>".$start . " ===== ". $end;
            $strShow = "<div class='mailSet' style='cursor: pointer;position:absolute; left:3px; top:50px;'><table class='mailTanle' border='0' cellpadding='0' cellspacing='0' width='730px'>";
            if (0 >= $offset)
            {
                return;
            }
    
            $i = 1;
    
            foreach ($arruser as $keyOne=>$value)
            {   
                //初始化
                $strOne = '';
                $strTwo = '';
                
                $strOne .= "<tr>";
                $strOne .= "<td border='0'>"; 
                $strOne .= "<div class='mailShow' style='border: 1px solid #6BC784; font-size: 17px; font-family:宋体; height:30px;";
                //这里会添加 红旗字符串, 标红,
                $strTwo .= "' id='mailShowId" . ($start + $i) . "'>";
                $strTwo .= "<input type='checkbox' id='checkbox" . ($start + $i) . "'class='checkbox' style='position: relative; float:left; margin:10px 10px 0 10px; 13px; height:13px; border:0px solid #369; border-color:red; background-color:#fff; color:red; ' value='" . ($start + $i) . "' name='email". $i . "'>";
                foreach ($value as $k=>$var)
                {   
    
                    if ($k == 'isRead')
                    {
                        if($value['isRead'] == '0')             //未读
                        {
                            $strTwo .= "<img style='position:relative; top: 10px; float:left;15px; height:12px; margin:0 10px 0 0; border-radius:3px;' class='Nread' id='isread" . ($start + $i) . "'>" ;
                        }
                        else if ($value['isRead'] == '1')       //已读
                        {
                            $strTwo .= "<div style='position:relative; top: 10px; float:left;15px; height:12px; margin:0 10px 0 0; border-radius:3px;' class='Yread' id='isread" . ($start + $i) . "'>" . "&nbsp;&nbsp;" ."</div>";
                        }
    
                    }
                    if ($k == 'name') 
                    {
                        $maxStr = 0;
                        $nameLength = $this->utf8_strlen($value["name"]);           //计算名字长度,
                        if (preg_match("/[x7f-xff]/", $value["name"]))            //判断是否有中文
                        {
                            $maxStr = 5;          //有中文, 长度最大为6个汉字
                        }
                        else {
                            $maxStr = 10;         //没有中文,为12个英文字符.
                        }
                        
                        if ($nameLength <= $maxStr )
                        {
                            $strTwo .= "<div style='font-size:15px; font-weight: bold; top: 8px; 110px; text-align:left; margin: 0 10px 0 5px; height:100%; position:relative; float:left;'>"  
                            . $value['name'] . "</div>";   
                        }
                        else {
                            $strTwo .= "<div style='font-size:15px; font-weight: bold; top: 8px; 110px; text-align:left; margin: 0 10px 0 5px; height:100%; position:relative; float:left;'>"  
                            . mb_substr($value['name'], 0, $maxStr, 'utf-8') . "...</div>";     //截取后显示
                        }
                            
    
                    }
    
                    if ($k == 'isFlag')
                    {
                        if($value['isFlag'] == '0')             //没标记
                        {
                            $falgStr = "color:#000";
                        }
                        else if ($value['isFlag'] == '1')       //已标记
                        {
                            $falgStr = "color:red";
                        }
                    }
    
                    if ($k == 'message')
                    {
                        $strTwo .= "<div style='top: 6px; 445px; position:relative; float:left;'>" . 
                             "<img style='14px;  height:14px; margin:0 10px 0 0; border-radius:30px;' class='message_img_del' id='message_img_del_" . ($start + $i) . "'>" .
                             "<img style='15px;  height:15px; margin:0 20px 0 0; border-radius:30px;' class='message_img_flag' id='message_img_flag_" . ($start + $i) . "'>" ;
                        
                        if (strlen($value['message']) < 20)
                        {
                            $strTwo .=   $value['message'] . "...</div>";                     
                        }
                        else
                        {   
                            //mb_substr防止中文乱码
                            $strTwo .= mb_substr($value['message'], 0, 20, 'utf-8') . "...</div>" ;
                        }   
                    }
                    if ($k == 'date')
                    {
                        $date = substr(date('Y-m-d', $value['date']), 2);
                        $strTwo .= "<span style='position:relative; top:8px; float:right; font-size:14px; text-align:center;'>" . $date . "</span>";
                    }
                } 
    
                $strTwo .= "</div>";
                $strTwo .= "</td>"; 
                $strTwo .= "</tr>";
                $strShow .= $strOne . $falgStr . $strTwo;
    
                $i++;
                if ($i > $offset)       //判断,然后跳出循环
                {
                    break;
                }
            }
            $strShow .= "</table>";
    
            echo  $strShow;
        }
    
    
        function mailNextPage() {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else                        //post提交
            {
                $start = $this->_post('pageEndMail');
                $mail = M('sysinfo');
                $where['parameter'] = 'mailPageNum';                    
                $mailListLength = $mail->where($where)->field('content')->select();       //获取系统设置里面单页显示的信息条数
    
    
                $message = M('message');
                $emailCount = $message->count();      //取出所有数据
    
                //这里总数减一,是因为邮箱第一个数据不做有效数据.
                $mailCount = ceil(count($arruser) / $mailListLength[0]['content']);     //计算一共的页数, 用信息的条数, 除以每一页的条数.
                
                // echo $start. " =====  ". ($start + $mailListLength[0]['content']) . "=====".$emailCount;
                //$maildata = $message->order('date desc')->limit($start. "," . $mailListLength[0]['content'])->select();
            
                if (($emailCount - $mailListLength[0]['content']) >= $start)
                {
                    $maildata = $message->order('date desc')->limit($start. "," . $mailListLength[0]['content'])->select();
                    $this->initMailList($maildata, $start, $mailListLength[0]['content'], $emailCount);
                    //var_dump($maildata);
                }
                else
                {
                    // $this->assign('mailCount', '0/' . $mailCount);
                    // $this->display("message");
                    $maildata = $message->order('date desc')->limit($start . "," . ($emailCount - $start))->select();
                    $this->initMailList($maildata, $start, ($emailCount - $start), 0);
                }
            }
    
        }
    
    
        function mailProPage()
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else                        //post提交
            {
                $start = $this->_post('pageEndMail') - 1;
                $mail = M('sysinfo');
                $where['parameter'] = 'mailPageNum';                    
                $mailListLength = $mail->where($where)->field('content')->select();       //获取系统设置里面单页显示的信息条数
    
                $message = M('message');
                $emailCount = $message->count();      //数据一共多少条
    
                //这里总数减一,是因为邮箱第一个数据不做有效数据.
                $mailCount = ceil(count($arruser) / $mailListLength[0]['content']);     //计算一共的页数, 用信息的条数, 除以每一页的条数.
                
                // echo $start. " =====  ". ($start - $mailListLength[0]['content']) . "=====".$emailCount;
    
                if ($start - $mailListLength[0]['content'] >= 0)
                {
                    $maildata = $message->order('date desc')->limit(($start - $mailListLength[0]['content']). "," . $mailListLength[0]['content'])->select();
                    $this->initMailList($maildata, $start - $mailListLength[0]['content'], $mailListLength[0]['content'], $emailCount);
                }
                else
                {
                   ;
                }
            }
        }
    
        function mailControlPage() 
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else                        //post提交
            {
                $showPage = $this->_post('pageAim');        //将要显示的页面
                $len = $this->_post('len');                 //总共的页面数
    
                $mail = M('sysinfo');
                $where['parameter'] = 'mailPageNum';                    
                $mailListLength = $mail->where($where)->field('content')->select();       //获取系统设置里面单页显示的信息条数
    
                $message = M('message');
                $emailCount = $message->count();      //数据一共多少条
    
                $start = ($showPage - 1) * $mailListLength[0]['content'];
                $offset = 0;
                if ($emailCount - ($showPage - 1) * $mailListLength[0]['content'] > $mailListLength[0]['content'])
                {
                    $offset = $mailListLength[0]['content'];
                }
                else
                {
                    $offset = $emailCount - ($showPage - 1) * $mailListLength[0]['content'];
                }
    
                // echo  $start . "===" . ($emailCount-1) . "===" . $offset;
                $maildata = $message->order('date desc')->limit($start . "," . $offset)->select();
                $this->initMailList($maildata, $start, $offset, $emailCount);
            }
        }
    
        //查询倒序 第N个数据的id号  参数num 是邮件在所有邮件中的倒序位置
        function findIdforNum($num)
        {
            $message = M('message');
            $id = $message->order('date desc')->limit(($num - 1) . "," . $num)->field('id')->select();
    
            return $id[0]['id'];
        }
    
        function mailLableRead()
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else {
                $mailId = $this->_post('mailId');
                // $message = M('message');
                $id = $this->findIdforNum($mailId);
                $message = M('message');
                $data['isRead'] = 1;
                if (false == $message->where("id = " . $id)->save($data))
                {
                    echo 0;
                }
                else {
                    echo "<div style='position:relative; top: 9px; float:left;15px; height:15px; margin:0 10px 0 0; border-radius:3px;' class='Yread' id='isread" . $mailId . "'>" . "&nbsp;&nbsp;" ."</div>";
                }
            }
        }
    
        function mailLableFlag()
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else {
                $flagId = $this->_post('flagId');
                $isFlag = $this->_post('isFlag');
    
                $message = M('message');
                $id = $this->findIdforNum($flagId);
            
               // echo $id;
                if ($isFlag == 1)        //为真, 就标记
                {  
                    $data['isFlag'] = 1;
                    if (false == $message->where("id = " . $id)->save($data))
                    {
                        echo 0;
                    }
                    else {      //成功
                        echo 1;
                    }
    
                }   
                else        // 取消标记
                {
                    $data['isFlag'] = 0;
                    if (false == $message->where("id = " . $id)->save($data))
                    {
                        echo 0;
                    }
                    else {      //成功
                        echo 1;
                    }
    
                }
    
            }
        }
    
        function mailLableDel() 
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else 
            {
                $mailId = $this->_post('mailId').trim();                       //邮箱的倒序排列
                $start = $this->_post('start').trim();                         //是哪一页的第1个的启示id
                $end = $this->_post('end').trim();                             //是哪一页的第最一个id
                $pagelable = $this->_post('pagelable').trim();                 //分页显示的数据
    
                $id = $this->findIdforNum($mailId);
                $message = M('message');
                $mailListLength = $this->getMailListLength();
                
    
                if (false == $message->where("id = " . $id)->delete())
                {
                    echo 0;
                }
                else 
                {
                    $emailCount = $message->count();      //数据一共多少条
                    
                    if ($pagelable != 0)    //如果等于 0 , 就意味着只有一页, 不等于0,就是超过一页
                    {
                        $lenPage = (int)substr($pagelable, stripos($pagelable,"/") + 1);
                        $showPage = (int)substr($pagelable, stripos($pagelable,"/") - 1, 1);
    
                        if ($showPage == $lenPage)      //显示等于长度,就是最后一页
                        {
                            if ($start == $end)         //最后一页只有一条数据, 就向前翻一页
                            {
                                // echo "$start == $end";
                                //echo (($lenPage - 1) * $mailListLength[0]['content']) . '===' . $mailListLength[0]['content'];
                                $maildata = $message->order('date desc')->limit((($lenPage - 2) * $mailListLength[0]['content']). "," . $mailListLength[0]['content'])->select();
                                $this->initMailList($maildata, (($lenPage - 2) * $mailListLength[0]['content']), $mailListLength[0]['content'], $emailCount);   
                            }
    
                            else if ($start < $end)          //不至一条
                            {
                                // echo (($lenPage - 1) * $mailListLength[0]['content']) . "====" . ($emailCount - ($lenPage - 1) * $mailListLength[0]['content']);
                                $maildata = $message->order('date desc')->limit((($lenPage - 1) * $mailListLength[0]['content']). ",". ($emailCount - ($lenPage - 1) * $mailListLength[0]['content']))->select();
                                $this->initMailList($maildata, ($lenPage - 1) * $mailListLength[0]['content'], $emailCount - ($lenPage - 1) * $mailListLength[0]['content'], $emailCount);   
                            }
                        }
    
                        else if ($showPage < $lenPage)      //显示 小于 总长度
                        {
                            
                            if ($emailCount <= $mailListLength[0]['content'])      //当只有2也的时候, 依然存在, 删除之后总数小于等于列表长度的可能
                            {
                                $maildata = $message->order('date desc')->select();
                                $this->initMailList($maildata, 0, $emailCount, $emailCount);
                            }
                            else
                            {
                                $maildata = $message->order('date desc')->limit((($showPage - 1) * $mailListLength[0]['content']). "," . $mailListLength[0]['content'])->select();
                                $this->initMailList($maildata, (($showPage - 1) * $mailListLength[0]['content']), $mailListLength[0]['content'], $emailCount);                            
                            }
       
                        }
                    }
    
                    else        //$pagelable=0, 意味着就一页
                    {
                        if ($emailCount == 0)   //邮箱空
                        {
                            echo "";
                        }
                        else if ($emailCount <= $mailListLength[0]['content'])
                        {
                            $maildata = $message->order('date desc')->select();
                            $this->initMailList($maildata, 0, $emailCount, $emailCount);
                        }
                        else
                        {
                            $maildata = $message->order('date desc')->limit(0 . "," . $mailListLength[0]['content'])->select();
                            $this->initMailList($maildata, 0, $mailListLength[0]['content'], $emailCount );
                        }
    
                        
                    }
                   
                }
            }
        }
    
        function mailPageChangeShow()
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else 
            {
                $mailId = (int)$this->_post('mailId').trim();                       //邮箱的倒序排列
                $mailListLength = $this->getMailListLength();
                $message = M('message');
                $emailCount = $message->count();
                $arruser = $message->order('date desc')->limit($mailListLength[0]['content'])->select();      //取出所有数据
                //这里总数减一,是因为邮箱第一个数据不做有效数据.
                $maillength = ceil($emailCount / $mailListLength[0]['content']);     //计算一共的页数, 用信息的条数, 除以每一页的条数.
                $mailShow =  ceil($mailId / $mailListLength[0]['content']);          //计算一共的页数, 用信息的条数, 除以每一页的条数.
                
                if ($emailCount <= $mailListLength[0]['content'])      //只有一页
                {   
                    echo 0;     //让page跳转隐藏, 因为只有一页
                    return;
                }
                else if ($maillength <  $mailShow)
                {
                    $mailShow = $maillength;
                }
    
                echo $mailShow . "/" . $maillength . "<lable style='font-size:10px;'>∨</lable>";
                
            }
        }
    
        function mailDelPageChangeShow()
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else 
            {
                $mailId = (int)$this->_post('mailId').trim() - 1;                       //邮箱的倒序排列
                $mailListLength = $this->getMailListLength();
                
                $message = M('message');
                $emailCount = $message->count();
                $maillength = ceil($emailCount / $mailListLength[0]['content']);     //计算一共的页数, 用信息的条数, 除以每一页的条数.
                // echo $emailCount  . " === " .$maillength;
                if ($mailId > $emailCount)
                {
                    $mailId -= $mailListLength[0]['content'];
                }
    
                $mailShow =  ceil($mailId / $mailListLength[0]['content']);          //计算一共的页数, 用信息的条数, 除以每一页的条数.
                
                if ($mailId == 0)
                {
                    $mailShow = 1;
                }
    
                if ($emailCount <= $mailListLength[0]['content'])      //只有一页
                {   
                    echo '0';     //让page跳转隐藏, 因为只有一页
                    return;
                }
                else if ($maillength >  $mailShow)
                {
                    $mailShow = $maillength;
                    
                }
                echo $mailShow . "/" . $maillength . "<lable style='font-size:10px;'>∨</lable>";
                
                
            }
        }
    
    
        function delMailButton()
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else 
            {
                $pagelable = $this->_post('pagelable').trim();               //邮箱的倒序排列
                $end = (int)$this->_post('end').trim();                      //邮箱的倒序排列
                $singal = $this->_post('singal');                            //删除的数组标号
                $start = (int)$this->_post('start');                         //邮箱列表第一个ID标号           
                
                $message = M('message');
                $signalLabel = false;
                $deleteNum = 0; 
    
                for ($k = $start, $i = 0; $i < strlen($singal); $i++, $k++)     //顺序删除,被选择的邮件
                {
                    $id = $this->findIdforNum($k);      //获取邮件真实id
                    if ($singal[$i] == '1')             //如是1, 就删除
                    {
                        $idArr[$i] = $id;
                        $signalLabel = ture;
                        $deleteNum++;
                    }
                }
    
                if($signalLabel == false)   //没有要删除的数据
                {
                    echo "没有要删除的邮件";
                    return;
                }
    
                $where['id'] = array('in', $idArr);
                // var_dump($where);
                
                if (false == $message->where($where)->delete())
                {
                    echo false;
                    return;
                }
                else
                {
                    $mailListLength = $this->getMailListLength();
    
                    $emailCount = $message->count();      //数据一共多少条
                    
                    if ($pagelable != 0)    //如果等于 0 , 就意味着只有一页, 不等于0,就是超过一页
                    {
                        $lenPage = (int)substr($pagelable, stripos($pagelable,"/") + 1);
                        $showPage = (int)substr($pagelable, stripos($pagelable,"/") - 1, 1);
    
                        if ($showPage == $lenPage)      //显示等于长度,就是最后一页
                        {
                            if (($start - 1 + $deleteNum) == $end)         //最后一页全部删除, 就向前翻一页
                            {
                                $maildata = $message->order('date desc')->limit((($lenPage - 2) * $mailListLength[0]['content']). "," . $mailListLength[0]['content'])->select();
                                $this->initMailList($maildata, (($lenPage - 2) * $mailListLength[0]['content']), $mailListLength[0]['content'], $emailCount);   
                            }
    
                            else if (($start - 1 + $deleteNum) < $end)          //最后一页没有全部删除
                            {
                                $maildata = $message->order('date desc')->limit((($lenPage - 1) * $mailListLength[0]['content']). ",". ($emailCount - ($lenPage - 1) * $mailListLength[0]['content']))->select();
                                $this->initMailList($maildata, ($lenPage - 1) * $mailListLength[0]['content'], $emailCount - ($lenPage - 1) * $mailListLength[0]['content'], $emailCount);   
                            }
                        }
    
                        else if ($showPage < $lenPage)      //显示小于总长度
                        {
                            //如果剩余的数据多过这一页,就全部添加完整,
                            if (($start - 1 + $mailListLength[0]['content']) <=  $emailCount)
                            {
                               // echo "如果剩余的数据多过这一页,就全部添加完整,";
                                $maildata = $message->order('date desc')->limit((($showPage - 1) * $mailListLength[0]['content']). "," . $mailListLength[0]['content'])->select();
                                $this->initMailList($maildata, (($showPage - 1) * $mailListLength[0]['content']), $mailListLength[0]['content'], $emailCount);   
                            }
                            else        //如果剩余的数据,不足添加完整的一页,就把剩下的数据输出
                            {
                               // echo "如果剩余的数据,不足添加完整的一页,就把剩下的数据输出";
                                $maildata = $message->order('date desc')->limit((($showPage - 1) * $mailListLength[0]['content']). "," . ($emailCount - ($start - 1)))->select();
                                $this->initMailList($maildata, (($showPage - 1) * $mailListLength[0]['content']), ($emailCount - ($start - 1)), $emailCount);   
                            }
                        }
                    }
    
                    else        //$pagelable=0, 意味着就一页
                    {
                        if ($emailCount == 0)   //邮箱空
                        {
                            echo "没有邮件了";
                        }
                        else if ($emailCount <= $mailListLength[0]['content'])
                        {
                            $maildata = $message->order('date desc')->select();
                            $this->initMailList($maildata, 0, $emailCount, $emailCount);
                        }
                        else
                        {
                            $maildata = $message->order('date desc')->limit(0 . "," . $mailListLength[0]['content'])->select();
                            $this->initMailList($maildata, 0, $mailListLength[0]['content'], $emailCount );
                        }
    
                    }
    
                }
    
                   
            }
    
        }
    
        function getMailListLength()
        {
            $mail = M('sysinfo');
            $where['parameter'] = 'mailPageNum';                    
            $mailListLength = $mail->where($where)->field('content')->select();       //获取系统设置里面单页显示的信息条数
            return $mailListLength;
        }
    
    
        function markIsReadMail()         //标记邮件为未读
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else 
            {   
                $funArgument = (int)$this->_post('funArgument');                    //修改已读或者未读的数据
                $start = (int)$this->_post('start').trim();                         //邮箱的第一个id
                $end = (int)$this->_post('end').trim();                             //邮箱的最后一个id
                $singal = $this->_post('singal').trim();                            //邮箱的倒序排列
                $mailListLength = $this->getMailListLength();                       //获取一页的长度
                
                $message = M('message');
                $signalLabel = false;       //标记位, 如果为真,就执行
                $markNum = 0; 
    
                for ($k = $start, $i = 0; $i < strlen($singal); $i++, $k++)     //顺序删除,被选择的邮件
                {
                    $id = $this->findIdforNum($k);      //获取邮件真实id
                    if ($singal[$i] == '1')             //如是1, 就标记为未读
                    {
                        $idArr[$i] = $id;
                        $signalLabel = ture;
                        $deleteNum++;
                    }
                }
    
                if($signalLabel == false)   //没有要更新的数据
                {
                    echo "没有要标记的邮件";
                    echo false;
                    return;
                }
    
                $where['id'] = array('in', $idArr);
                $data['isRead'] = $funArgument;        
    
                if (false == $message->where($where)->save($data))
                {
                    echo false;
                    return;
                }
                else
                {
                    $start -= 1;
                    // echo $start . "=====" .$end;
                    $maildata = $message->order('date desc')->limit($start. "," . $end)->select();
                    //var_dump($maildata);
                    $this->initMailList($maildata, $start, $mailListLength[0]['content'], $emailCount);       
                }
                
            }
    
        }
    
    
        function markFlagMail()
        {
            if (!$this->isPost())       //不是post提交
            {
                ;
            }
            else 
            {   
                $funArgument = (int)$this->_post('funArgument');                    //修改已读或者未读的数据
                $start = (int)$this->_post('start').trim();                         //邮箱的第一个id
                $end = (int)$this->_post('end').trim();                             //邮箱的最后一个id
                $singal = $this->_post('singal').trim();                            //邮箱的倒序排列
                $mailListLength = $this->getMailListLength();                       //获取一页的长度
                
                $message = M('message');
                $signalLabel = false;       //标记位, 如果为真,就执行
                $markNum = 0; 
    
                for ($k = $start, $i = 0; $i < strlen($singal); $i++, $k++)     //顺序删除,被选择的邮件
                {
                    $id = $this->findIdforNum($k);      //获取邮件真实id
                    if ($singal[$i] == '1')             //如是1, 就标记为未读
                    {
                        $idArr[$i] = $id;
                        $signalLabel = ture;
                        $deleteNum++;
                    }
                }
    
                if($signalLabel == false)   //没有要更新的数据
                {
                    // echo "没有要标记的邮件";
                    // echo false;
                    return;
                }
    
                $where['id'] = array('in', $idArr);
                $data['isFlag'] = $funArgument;        
    
                if (false == $message->where($where)->save($data))
                {
                    // echo 'false';
                    return;
                }
                else
                {
                    // echo "true";
                    $start -= 1;
                    $maildata = $message->order('date desc')->limit($start. "," . $end)->select();
                    $this->initMailList($maildata, $start, $end, $emailCount);       
                }
                
            }
        }
    
        //打开邮箱
        function mailOpenMail()
        {
    
            $start = (int)$this->_get('start').trim();                         //邮箱的第一个id
            $end = (int)$this->_get('end').trim();                             //邮箱的最后一个id
            $mailId = (int)$this->_get('mailId').trim();                       //邮箱的最后一个id
            $isRead = (int)$this->_get('isRead').trim();                       //邮箱的最后一个id
            $message = M('message');
            $id = $this->findIdforNum($mailId);      //获取邮件真实id                
          
            if ($isRead == 1)
            {
                $data['isRead'] = 1;
                $where['id'] = $id;
                if (false == $message->where($where)->save($data))
                {
                    //echo "更新为可读失败";
                    return;
                }
            }        
    
            $data = $message->where('id='.$id)->select();
            $sender = $data[0]['name'];
            $time = date('Y-m-d H:i:s',  $data[0]['date']);
            $content = $data[0]['message'];
            if ($data[0]['email'] == '')
            {
                $email = " ";
            }
            else
            {
                $email =  "《" . $data[0]['email'] . "》";
            }
    
            $this->assign('sender', $sender);
            $this->assign('time', $time);
            $this->assign('email', $email);
            $this->assign('content', $content);
            $this->display('mailShow');
            
        }
    
    
    
    }
    ?>
  • 相关阅读:
    VIM 第二天--快捷键
    Vim 第一天
    The Salt Master has cached the public key报错解决办法
    nginx启用TCP反向代理日志配置
    FastDFS数据迁移
    nginx修改上传文件大小限制
    ipv6禁用导致rpcbind服务启动失败解决办法
    ELK之elasticdump迁移es数据
    MySQL+Amoeba实现数据库读写分离
    使用Zabbix监控RabbitMQ消息队列
  • 原文地址:https://www.cnblogs.com/hgonlywj/p/4842719.html
Copyright © 2011-2022 走看看