Changeset 5172 for trunk/expressoMail1_2/inc/class.exporteml.inc.php
- Timestamp:
- 11/11/11 16:42:49 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.exporteml.inc.php
r5134 r5172 183 183 // apenas um arquivo a ser exportado, 184 184 // não seja criado em zip 185 // 186 // Funcao altarada para exportar uma ou 187 // varia mensagens de um pesquisa 188 185 189 function makeAll($params) { 190 //Exporta menssagens selecionadas na pesquisa 191 if($params['folder'] === 'false'){ 192 193 $this->folder = $params['folder']; 194 $error = False; 195 $fileNames = ""; 196 197 $sel_msgs = explode(",", $params['msgs_to_export']); 198 @reset($sel_msgs); 199 $sorted_msgs = array(); 200 foreach($sel_msgs as $idx => $sel_msg) { 201 $sel_msg = explode(";", $sel_msg); 202 if(array_key_exists($sel_msg[0], $sorted_msgs)){ 203 $sorted_msgs[$sel_msg[0]] .= ",".$sel_msg[1]; 204 } 205 else { 206 $sorted_msgs[$sel_msg[0]] = $sel_msg[1]; 207 } 208 } 209 210 unset($sorted_msgs['']); 211 212 213 // Verifica se as n mensagens selecionadas 214 // se encontram em um mesmo folder 215 if (count($sorted_msgs)==1){ 216 217 $array_names_keys = array_keys($sorted_msgs); 218 $this->folder = mb_convert_encoding($array_names_keys[0], "UTF7-IMAP","UTF-8, ISO-8859-1, UTF7-IMAP"); 219 $msg_number = explode(',', $sorted_msgs[$array_names_keys[0]]); 220 $tempDir = $this->tempDir; 221 $this->connectImap(); 222 223 //verifica se apenas uma mensagem foi selecionada e exportar em .eml 224 if(count($msg_number) == 1){ 225 $header = $this->getHeader($msg_number[0]); 226 $body = $this->getBody($msg_number[0]); 227 $sEMLData = $this->parseEml($header, $body); 228 $fileName = $this->CreateFileEml($sEMLData, $tempDir, $msg_number[0]."_".$_SESSION[ 'phpgw_session' ][ 'session_id' ]); 229 230 231 imap_close($this->mbox_stream); 232 if (!$fileName) { 233 return false; 234 }else{ 235 return $tempDir.'/'.$fileName; 236 } 237 } 238 239 //cria um .zip com as mensagens selecionadas 240 for($i = 0; $i < count($msg_number); $i++) 241 { 242 $header = $this-> getHeader($msg_number[$i]); 243 $body = $this-> getBody($msg_number[$i]); 244 $sEMLData = $this -> parseEml($header, $body); 245 $fileName = $this -> CreateFileEml($sEMLData, $tempDir, $msg_number[$i]); 246 247 if(!$fileName) 248 { 249 $error = True; 250 break; 251 } else{ 252 $fileNames .= "\"".$fileName."\" "; 253 } 254 } 255 imap_close($this->mbox_stream); 256 257 $nameFileZip = 'False'; 258 if($fileNames && !$error) 259 { 260 $nameFileZip = $this -> createFileZip($fileNames, $tempDir); 261 if($nameFileZip) 262 { 263 $file = $tempDir.'/'.$nameFileZip; 264 } else { 265 $file = false; 266 } 267 } 268 else 269 { 270 $file = false; 271 } 272 273 return $file; 274 275 //exporta mensagens de diferentes pastas 276 }else{ 277 $array_names_keys = array_keys($sorted_msgs); 278 279 for($i = 0; $i < count($array_names_keys); $i++){ 280 $this->folder = mb_convert_encoding($array_names_keys[$i], "UTF7-IMAP","UTF-8, ISO-8859-1, UTF7-IMAP"); 281 $msg_number = explode(',', $sorted_msgs[$array_names_keys[$i]]); 282 $tempDir = $this->tempDir; 283 $this->connectImap(); 284 285 for($j = 0; $j < count($msg_number); $j++) 286 { 287 $header = $this-> getHeader($msg_number[$j]); 288 $body = $this-> getBody($msg_number[$j]); 289 $sEMLData = $this -> parseEml($header, $body); 290 $fileName = $this -> CreateFileEml($sEMLData, $tempDir, $msg_number[$j]); 291 292 if(!$fileName) 293 { 294 $error = True; 295 break; 296 } else{ 297 $fileNames .= "\"".$fileName."\" "; 298 } 299 } 300 imap_close($this->mbox_stream); 301 } 302 $nameFileZip = 'False'; 303 if($fileNames && !$error) 304 { 305 $nameFileZip = $this -> createFileZip($fileNames, $tempDir); 306 if($nameFileZip) 307 { 308 $file = $tempDir.'/'.$nameFileZip; 309 } else { 310 $file = false; 311 } 312 } 313 else 314 { 315 $file = false; 316 } 317 return $file; 318 } 319 }else{ 186 320 // Exportacao de mensagens arquivadas localmente 187 321 if($params['l_msg'] == "t") … … 235 369 { 236 370 $this-> folder = $params['folder']; 237 $this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8");371 $this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8, ISO-8859-1, UTF7-IMAP"); 238 372 $array_ids = explode(',', $params['msgs_to_export']); 239 373 $error = False; … … 293 427 return $file; 294 428 } 429 } 295 430 } 296 431
Note: See TracChangeset
for help on using the changeset viewer.