Changeset 6775 for sandbox/webservice


Ignore:
Timestamp:
07/12/12 18:20:18 (12 years ago)
Author:
niltonneto
Message:

Ticket #2507 - Corrigido problema referente à paginação da lista de mensagens.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/webservice/api/rest/mail/MessagesResource.php

    r6701 r6775  
    1010                if($this-> isLoggedIn())  
    1111                {                                        
     12                        $max_email_per_page = intval($this->getParam('resultsPerPage') ? $this->getParam('resultsPerPage') : 
     13                                        $this->getImap()->prefs['max_email_per_page']); 
    1214 
    1315                        if($this->getParam('folderID') && $this->getParam('msgID') > 0) { 
     
    3941                                        $params = array( 
    4042                                                        'condition' => implode(",",$condition),                                                  
    41                                                         'page'          => intval($this->getParam('page') ? $this->getParam('page') : "0"), 
     43                                                        'page'          => ($this->getParam('page') ? intval($this->getParam('page')) - 1 : 0), 
    4244                                                        'sort_type' => "SORTDATE" 
    4345                                                ); 
     
    4648                                        $imap_msgs = $this->getImap()->search_msg($params); 
    4749 
     50                                        if(!$imap_msgs){ 
     51                                                return $this->getResponse(); 
     52                                        } 
    4853                                        if($imap_msgs['num_msgs'] > 0) { 
    4954                                                foreach($imap_msgs['data'] as $imap_msg) { 
     
    7479                        } 
    7580                        else{ 
    76                                 $max_email_per_page = intval($this->getParam('resultsPerPage') ? $this->getParam('resultsPerPage') : 
    77                                         $this->getImap()->prefs['max_email_per_page']); 
    78          
    7981                                $current_page = intval($this->getParam('page') ? $this->getParam('page') : 1); 
    8082         
     
    150152                        } 
    151153                } 
     154                $num_msgs  = 0; 
     155                $num_pages = 1;          
     156                $num_msgs = intval($imap_msgs['num_msgs']); 
     157                if($num_msgs > $max_email_per_page) { 
     158                        $num_pages = $num_msgs / $max_email_per_page; 
     159                        if($num_pages > intval($num_pages)) 
     160                                $num_pages = intval($num_pages) + 1; 
     161                } 
     162                 
    152163                $result = array ( 
    153164                                'messages'        => $all_msgs, 
     165                                'numMessages' => $num_msgs, 
     166                                'numPages'        => $num_pages, 
    154167                                'timeZone'        => $imap_msgs['offsetToGMT'] ? $imap_msgs['offsetToGMT'] : "", 
    155168                                'totalUnseen' => $imap_msgs['tot_unseen'] ? $imap_msgs['tot_unseen'] : "" 
Note: See TracChangeset for help on using the changeset viewer.