Changeset 5435


Ignore:
Timestamp:
01/27/12 10:16:45 (12 years ago)
Author:
cristiano
Message:

Ticket #2424 - Mensagem alterando o layout, adicionado interação dos blocos style

File:
1 edited

Legend:

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

    r5420 r5435  
    11261126                                else 
    11271127                                { 
    1128                                         if ($tmp->host != 'unspecified-domain') 
     1128                                        if (isset($tmp->host) && $tmp->host != 'unspecified-domain') 
    11291129                                                $return['toaddress2'] .= $tmp->mailbox . "@" . $tmp->host; 
    11301130                                        else 
     
    18551855 
    18561856            $regs_found = array(); 
    1857             $tags_found = preg_match_all("@<style[^>]*>.*?</style[^>]*>@s", $body, $regs_found); 
     1857            $tags_found = preg_match_all("@<style[^>]*>.*?</style[^>]*>@si", $body, $regs_found); 
    18581858            $wrapper_class = 'ExpressoCssWrapper' . time(); 
    18591859                         
    1860             foreach ($regs_found as $block_found) { 
    1861                 if(!isset($block_found[0])) continue; 
    1862                  
    1863                 $n_start = strpos($block_found[0], '>') + 1; 
    1864                 $n_length = strrpos($block_found[0], '<') - $n_start; 
    1865                 $bf_innerHTML = substr($block_found[0], $n_start, $n_length); 
    1866                                
    1867                 $bf_innerHTML = mb_ereg_replace('<!--', '', $bf_innerHTML); 
    1868                 $bf_innerHTML = mb_ereg_replace('-->', '', $bf_innerHTML); 
    1869                
    1870                 $css->parse($bf_innerHTML); 
    1871  
    1872                 $prefix = ".$wrapper_class "; 
    1873                 if (isset($css->css[41]) && count($css->css[41] > 0)) 
    1874                     foreach ($css->css[41] as $key => $value) { 
    1875                         //explode multiple selectors per block  
    1876                         $selectors = explode(',', $key); 
    1877  
    1878                         foreach ($selectors as $selector) { 
    1879                             if (ereg('\*', $key)) { 
    1880                                 //skip selecto '*'  
    1881                                 continue; 
     1860            foreach ($regs_found as $k => &$v) { 
     1861                foreach ($v as $kk => $vv) { 
     1862                    $n_start = strpos($vv, '>') + 1; 
     1863                    $n_length = strrpos($vv, '<') - $n_start; 
     1864                    $bf_innerHTML = substr($vv, $n_start, $n_length); 
     1865                    $bf_innerHTML = mb_ereg_replace('<!--', '', $bf_innerHTML); 
     1866                    $bf_innerHTML = mb_ereg_replace('-->', '', $bf_innerHTML); 
     1867                     
     1868                    $css->parse($bf_innerHTML); 
     1869 
     1870                    $prefix = ".$wrapper_class "; 
     1871                    if (isset($css->css[41]) && count($css->css[41] > 0)) 
     1872                        foreach ($css->css[41] as $key => $value) { 
     1873                            //explode multiple selectors per block  
     1874                            $selectors = explode(',', $key); 
     1875 
     1876                            foreach ($selectors as $selector) { 
     1877                                if (ereg('\*', $key)) { 
     1878                                    //skip selecto '*'  
     1879                                    continue; 
     1880                                } 
     1881 
     1882                                $selector = eregi_replace('[^#\.]*body.*', '', $selector); 
     1883                                $css->css[41][$prefix . trim($selector)] = $value; 
    18821884                            } 
    1883  
    1884                             $selector = eregi_replace('[^#\.]*body.*', '', $selector); 
    1885                             $css->css[41][$prefix . trim($selector)] = $value; 
     1885                            unset($css->css[41][$key]); 
    18861886                        } 
    1887                         unset($css->css[41][$key]); 
    1888                     } 
    1889                                                
    1890                 $body = str_replace($block_found, '<style>' . $css->print->plain() . '</style>', $body); 
    1891         } 
    1892  
    1893  
     1887 
     1888                    $body = str_replace($vv, '<style>' . $css->print->plain() . '</style>', $body); 
     1889                } 
     1890            } 
     1891             
    18941892        // Malicious Code Remove 
    18951893        $dirtyCodePattern = "/(<([\w]+[\w0-9]*)(.*)on(mouse(move|over|down|up)|load|blur|change|error|click|dblclick|focus|key(down|up|press)|select)([\n\ ]*)=([\n\ ]*)[\"'][^>\"']*[\"']([^>]*)>)(.*)(<\/\\2>)?/misU"; 
Note: See TracChangeset for help on using the changeset viewer.