| | |
| | | if (is_array($a_folders) && $name == '*' && !empty($this->conn->data['LIST'])) { |
| | | foreach ($a_folders as $idx => $folder) { |
| | | if (($opts = $this->conn->data['LIST'][$folder]) |
| | | && in_array('\\NonExistent', $opts) |
| | | && in_array_nocase('\\NonExistent', $opts) |
| | | ) { |
| | | $this->conn->unsubscribe($folder); |
| | | unset($a_folders[$idx]); |
| | |
| | | if ($subscription) { |
| | | // It's possible we already called LIST command, check LIST data |
| | | if (!empty($this->conn->data['LIST']) && !empty($this->conn->data['LIST'][$folder]) |
| | | && in_array('\\Subscribed', $this->conn->data['LIST'][$folder]) |
| | | && in_array_nocase('\\Subscribed', $this->conn->data['LIST'][$folder]) |
| | | ) { |
| | | $a_folders = array($folder); |
| | | } |
| | |
| | | |
| | | // @TODO: Honor MAXSIZE and DEPTH options |
| | | foreach ($queries as $attrib => $entry) { |
| | | if ($result = $this->conn->getAnnotation($folder, $entry, $attrib)) { |
| | | $result = $this->conn->getAnnotation($folder, $entry, $attrib); |
| | | |
| | | // an error, invalidate any previous getAnnotation() results |
| | | if (!is_array($result)) { |
| | | return null; |
| | | } |
| | | else { |
| | | foreach ($result as $fldr => $data) { |
| | | $res[$fldr] = array_merge((array) $res[$fldr], $data); |
| | | } |