Ignore:
Timestamp:
01/15/09 19:06:49 (15 years ago)
Author:
eduardoalex
Message:

Ticket #401

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r613 r614  
    8282                        $msg_number = $sort_array_msg[$msg_range_begin-1]; 
    8383 
     84                        /*A função imap_headerinfo não traz o cabeçalho completo, e sim alguns 
     85                        * atributos do cabeçalho. Como eu preciso do atributo Importance  
     86                        * para saber se o email é importante ou não, uso abaixo a função 
     87                        * imap_fetchheader e busco o atributo importance nela para passar 
     88                        * para as funções ajax. Isso faz com que eu acesse o cabeçalho 
     89                        * duas vezes e de duas formas diferentes, mas em contrapartida, eu 
     90                        * não preciso reimplementar o método utilizando o fetchheader. 
     91                        * Como as mensagens são renderizadas em um número pequeno por vez, 
     92                        * não parece ter perda considerável de performance. 
     93                        */ 
     94                        $flag = preg_match('/importance *: *(.*)\r/i', 
     95                                        imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)) 
     96                                        ,$importance);           
     97                        $return[$i]['Importance'] = $flag==0?"":$importance[1]; 
     98                         
     99                         
    84100                        $header = $this->get_header($msg_number); 
    85101                        if (!is_object($header)) 
     
    9931009                foreach($msgs_to_exec as $msg_number => $command) 
    9941010                { 
     1011                        /*A função imap_headerinfo não traz o cabeçalho completo, e sim alguns 
     1012                        * atributos do cabeçalho. Como eu preciso do atributo Importance  
     1013                        * para saber se o email é importante ou não, uso abaixo a função 
     1014                        * imap_fetchheader e busco o atributo importance nela para passar 
     1015                        * para as funções ajax. Isso faz com que eu acesse o cabeçalho 
     1016                        * duas vezes e de duas formas diferentes, mas em contrapartida, eu 
     1017                        * não preciso reimplementar o método utilizando o fetchheader. 
     1018                        * Como na atualização são poucas as mensagens que devem ser renderizadas, 
     1019                        * a perda em performance é insignificante. 
     1020                        */ 
     1021                        $flag = preg_match('/importance *: *(.*)\r/i', 
     1022                                        imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)) 
     1023                                        ,$importance);           
     1024                        $return[$i]['Importance'] = $flag==0?"":$importance[1]; 
     1025                         
    9951026                        $header = $this->get_header($msg_number); 
    9961027                        if (!is_object($header)) 
     
    12351266                $msg_uid = $params['msg_id']; 
    12361267                $return_receipt = $params['input_return_receipt']; 
     1268                $is_important = $params['input_important_message']; 
    12371269                $body = $params['body']; 
    12381270                //echo "<script language=\"javascript\">javascript:alert('".$body."');</script>"; 
     
    13591391                        } 
    13601392                } 
     1393 
     1394//////////////////////////////////////////////////////////////////////////////////////////////////// 
     1395                // Important message 
     1396                if($is_important) 
     1397                        $mail->isImportant(); 
    13611398 
    13621399//////////////////////////////////////////////////////////////////////////////////////////////////// 
     
    18711908                elseif ($flag == "flagged") 
    18721909                        $return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Flagged", ST_UID); 
    1873                 elseif ($flag == "unflagged") 
    1874                         $return["status"] = imap_clearflag_full($this->mbox, $msgs_to_set, "\\Flagged", ST_UID); 
     1910                elseif ($flag == "unflagged") { 
     1911                        $flag_importance = false; 
     1912                        $msgs_number = explode(",",$msgs_to_set); 
     1913                        foreach($msgs_number as $msg_number) { 
     1914                                preg_match('/importance *: *(.*)\r/i', 
     1915                                        imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)) 
     1916                                        ,$importance);           
     1917                                if(strtolower($importance[1])=="high") { 
     1918                                        $flag_importance=true; 
     1919                                        break; 
     1920                                } 
     1921                                 
     1922                        } 
     1923 
     1924                        if(!$flag_importance)                    
     1925                                $return["status"] = imap_clearflag_full($this->mbox, $msgs_to_set, "\\Flagged", ST_UID); 
     1926                        else{ 
     1927                                $return["status"] = false; 
     1928                                $return["msg"] = $this->functions->getLang("At least one of selected message cant be marked as normal"); 
     1929                        } 
     1930                } 
    18751931                 
    18761932                if($this->mbox && is_resource($this->mbox)) 
Note: See TracChangeset for help on using the changeset viewer.