示例#1
0
 /** @example: $imap_mngr = &IMAPManager::singleton(); */
 static function &singleton($restoreSettings = true, $initCache = false)
 {
     static $object;
     if (!isset($object)) {
         $object = new IMAPManager();
         if ($restoreSettings) {
             $object->restoreSettings(CID);
         }
         //init imap cache
         if ($initCache) {
             $object->cache =& IMAPCache::singleton();
             if (!empty($object->user)) {
                 //если доступ был настроен
                 $object->cache->init();
             }
         }
     }
     return $object;
 }
示例#2
0
 /**
  * # Получаем статус ящика (_statusCache, imap_status).
  * @param string $mailbox  полное название ящика '{hostname}mailbox'.
  * @return stdClass        объект imap_status() или пустая строка.
  */
 function getStatus($mailbox)
 {
     if (!isset($this->_statusCache[$mailbox])) {
         $imap_manager =& IMAPManager::singleton();
         $this->_statusCache[$mailbox] = @imap_status($imap_manager->stream(), $imap_manager->getServerString($mailbox), SA_ALL);
         if (!$this->_statusCache[$mailbox]) {
             unset($this->_statusCache[$mailbox]);
             if ($err = imap_last_error()) {
                 //Horde::logMessage($err, __FILE__, __LINE__, PEAR_LOG_NOTICE);
             }
         }
     }
     return empty($this->_statusCache[$mailbox]) ? '' : $this->_statusCache[$mailbox];
 }