/** */ public function getList($query = array(), $mask = 0) { global $injector; $init = false; $out = array(); $remote = $injector->getInstance('IMP_Remote'); $raccount = $remote[strval($this)]; switch ($raccount->login()) { case $raccount::LOGIN_BAD_CHANGED: $remote[strval($this)] = $raccount; break; case $raccount::LOGIN_OK_CHANGED: $remote[strval($this)] = $raccount; // Fall-through // Fall-through case $raccount::LOGIN_OK: $init = true; break; } $query = array_filter(array_map(array($remote, 'getMailboxById'), $query)); if (empty($query)) { $mask |= self::INIT; } if ($mask & self::INIT) { $out[] = array('a' => IMP_Ftree::ELT_REMOTE | IMP_Ftree::ELT_NOSELECT | IMP_Ftree::ELT_NONIMAP, 'v' => self::REMOTE_KEY); $out[] = array('a' => ($init ? IMP_Ftree::ELT_REMOTE_AUTH : 0) | IMP_Ftree::ELT_REMOTE | IMP_Ftree::ELT_IS_SUBSCRIBED | IMP_Ftree::ELT_NONIMAP, 'p' => self::REMOTE_KEY, 'v' => strval($this)); } if ($init) { foreach (parent::getList($query, $mask) as $val) { $out[] = array_filter(array('a' => $val['a'] | IMP_Ftree::ELT_REMOTE_MBOX, 'p' => isset($val['p']) ? $raccount->mailbox($val['p']) : strval($raccount), 'v' => $raccount->mailbox($val['v']))); } } return $out; }
/** */ public function getList($query = array(), $mask = 0) { global $injector; $out = array(); $init = $this->imp_imap->init; $remote = $injector->getInstance('IMP_Remote'); $raccount = $remote[strval($this)]; $query = array_filter(array_map(array($remote, 'getMailboxById'), $query)); if (empty($query)) { $mask |= self::INIT; } if ($mask & self::INIT) { $out[] = array('a' => IMP_Ftree::ELT_REMOTE | IMP_Ftree::ELT_NOSELECT | IMP_Ftree::ELT_NONIMAP, 'v' => self::REMOTE_KEY); $out[] = array('a' => ($init ? IMP_Ftree::ELT_REMOTE_AUTH : 0) | IMP_Ftree::ELT_REMOTE | IMP_Ftree::ELT_IS_SUBSCRIBED | IMP_Ftree::ELT_NONIMAP, 'p' => self::REMOTE_KEY, 'v' => strval($this)); } if ($init) { foreach (parent::getList($query, $mask) as $val) { $out[] = array_filter(array('a' => $val['a'] | IMP_Ftree::ELT_REMOTE_MBOX, 'p' => isset($val['p']) ? $raccount->mailbox($val['p']) : strval($raccount), 'v' => $raccount->mailbox($val['v']))); } } return $out; }