Example #1
0
 /**
  */
 protected function _getSeqUidLookup(Horde_Imap_Client_Ids $ids, $reverse = false)
 {
     $ob = array('lookup' => array(), 'uids' => $this->getIdsOb());
     if (!empty($this->_temp['mailbox']['lookup']) && count($ids) && ($ids->sequence || $reverse)) {
         $need = $this->getIdsOb(null, $ids->sequence);
         $t = $this->_temp['mailbox']['lookup'];
         foreach ($ids as $val) {
             if ($ids->sequence) {
                 if (isset($t[$val])) {
                     $ob['lookup'][$val] = $t[$val];
                     $ob['uids']->add($t[$val]);
                 } else {
                     $need->add($val);
                 }
             } else {
                 if (($key = array_search($val, $t)) !== false) {
                     $ob['lookup'][$key] = $val;
                     $ob['uids']->add($val);
                 } else {
                     $need->add($val);
                 }
             }
         }
         if (!count($need)) {
             return $ob;
         }
         $ids = $need;
     }
     $res = parent::_getSeqUidLookup($ids, $reverse);
     if (!empty($res['lookup'])) {
         $ob['lookup'] = $ob['lookup'] + $res['lookup'];
     }
     if (isset($res['uids'])) {
         $ob['uids']->add($res['uids']);
     }
     return $ob;
 }