From 80152b333ca5d856dcf09f5ca10a9ffd80ba117f Mon Sep 17 00:00:00 2001 From: alecpl Date: Wed, 7 Sep 2011 11:07:03 +0000 Subject: - Rewritten messages caching (merged devel-mcache branch): Indexes are stored in a separate table, so there's no need to store all messages in a folder Added threads data caching Flags are stored separately, so flag change doesn't cause DELETE+INSERT, just UPDATE - Partial QRESYNC support - Improved FETCH response handling - Improvements in response tokenization method --- program/include/rcube_mime_struct.php | 88 ++++------------------------------- 1 file changed, 8 insertions(+), 80 deletions(-) (limited to 'program/include/rcube_mime_struct.php') diff --git a/program/include/rcube_mime_struct.php b/program/include/rcube_mime_struct.php index c64942566..ed28af31f 100644 --- a/program/include/rcube_mime_struct.php +++ b/program/include/rcube_mime_struct.php @@ -1,77 +1,7 @@ - | - | Author: Ryo Chijiiwa | - +-----------------------------------------------------------------------+ - - $Id$ - -*/ - -/** - * Helper class to process IMAP's BODYSTRUCTURE string - * - * @package Mail - * @author Aleksander Machniak - */ -class rcube_mime_struct -{ - private $structure; - - - function __construct($str=null) - { - if ($str) - $this->structure = $this->parseStructure($str); - } - - /* - * Parses IMAP's BODYSTRUCTURE string into array - */ - function parseStructure($str) - { - $line = substr($str, 1, strlen($str) - 2); - $line = str_replace(')(', ') (', $line); - - $struct = rcube_imap_generic::tokenizeResponse($line); - if (!is_array($struct[0]) && (strcasecmp($struct[0], 'message') == 0) - && (strcasecmp($struct[1], 'rfc822') == 0)) { - $struct = array($struct); - } - - return $struct; - } - - /* - * Parses IMAP's BODYSTRUCTURE string into array and loads it into class internal variable - */ - function loadStructure($str) + function getStructurePartType($structure, $part) { - if (empty($str)) - return true; - - $this->structure = $this->parseStructure($str); - return (!empty($this->structure)); - } - - function getPartType($part) - { - $part_a = $this->getPartArray($this->structure, $part); + $part_a = self::getPartArray($structure, $part); if (!empty($part_a)) { if (is_array($part_a[0])) return 'multipart'; @@ -82,9 +12,9 @@ class rcube_mime_struct return 'other'; } - function getPartEncoding($part) + function getStructurePartEncoding($structure, $part) { - $part_a = $this->getPartArray($this->structure, $part); + $part_a = self::getPartArray($structure, $part); if ($part_a) { if (!is_array($part_a[0])) return $part_a[5]; @@ -93,9 +23,9 @@ class rcube_mime_struct return ''; } - function getPartCharset($part) + function getStructurePartCharset($structure, $part) { - $part_a = $this->getPartArray($this->structure, $part); + $part_a = self::getPartArray($structure, $part); if ($part_a) { if (is_array($part_a[0])) return ''; @@ -112,7 +42,7 @@ class rcube_mime_struct return ''; } - function getPartArray($a, $part) + function getStructurePartArray($a, $part) { if (!is_array($a)) { return false; @@ -137,9 +67,7 @@ class rcube_mime_struct else return $a; } - else if (($part==0) || (empty($part))) { + else if (($part == 0) || (empty($part))) { return $a; } } - -} -- cgit v1.2.3