horde_listApis() публичный Метод

Return all active api interfaces.
public horde_listApis ( ) : array
Результат array An array of interface names.
Пример #1
0
 /**
  * Return an array of the server's folder objects.
  *
  * @return array  An array of Horde_ActiveSync_Message_Folder objects.
  */
 public function getFolders()
 {
     $multiplex = $this->_device->multiplex;
     if (empty($this->_folders)) {
         ob_start();
         try {
             $supported = $this->_connector->horde_listApis();
         } catch (Exception $e) {
             $this->_logger->err($e->getMessage());
             $this->_endBuffer();
             return array();
         }
         $folders = array();
         if (array_search('calendar', $supported) !== false) {
             $temp = $this->_connector->getFolders(Horde_ActiveSync::CLASS_CALENDAR, $multiplex);
             if (is_array($temp)) {
                 foreach ($temp as $id => $folder) {
                     try {
                         $folders[] = $this->_getFolder(Horde_ActiveSync::CLASS_CALENDAR . ':' . $id, array('class' => Horde_ActiveSync::CLASS_CALENDAR, 'primary' => $folder['primary'], 'display' => $folder['display']));
                     } catch (Horde_ActiveSync_Exception $e) {
                     }
                 }
             } else {
                 try {
                     $folders[] = $this->_getFolder($temp);
                 } catch (Horde_ActiveSync_Exception $e) {
                 }
             }
         }
         if (array_search('contacts', $supported) !== false) {
             $temp = $this->_connector->getFolders(Horde_ActiveSync::CLASS_CONTACTS, $multiplex);
             if (is_array($temp)) {
                 foreach ($temp as $id => $folder) {
                     try {
                         $folders[] = $this->_getFolder(Horde_ActiveSync::CLASS_CONTACTS . ':' . $id, array('class' => Horde_ActiveSync::CLASS_CONTACTS, 'primary' => $folder['primary'], 'display' => $folder['display']));
                     } catch (Horde_ActiveSync_Exception $e) {
                     }
                 }
             } else {
                 try {
                     $folders[] = $this->_getFolder($temp);
                 } catch (Horde_ActiveSync_Exception $e) {
                 }
             }
         }
         if (array_search('tasks', $supported) !== false) {
             $temp = $this->_connector->getFolders(Horde_ActiveSync::CLASS_TASKS, $multiplex);
             if (is_array($temp)) {
                 foreach ($temp as $id => $folder) {
                     try {
                         $folders[] = $this->_getFolder(Horde_ActiveSync::CLASS_TASKS . ':' . $id, array('class' => Horde_ActiveSync::CLASS_TASKS, 'primary' => $folder['primary'], 'display' => $folder['display']));
                     } catch (Horde_ActiveSync_Exception $e) {
                     }
                 }
             } else {
                 try {
                     $folders[] = $this->_getFolder($temp);
                 } catch (Horde_ActiveSync_Exception $e) {
                 }
             }
         }
         if (array_search('notes', $supported) !== false) {
             $temp = $this->_connector->getFolders(Horde_ActiveSync::CLASS_NOTES, $multiplex);
             if (is_array($temp)) {
                 foreach ($temp as $id => $folder) {
                     try {
                         $folders[] = $this->_getFolder(Horde_ActiveSync::CLASS_NOTES . ':' . $id, array('class' => Horde_ActiveSync::CLASS_NOTES, 'primary' => $folder['primary'], 'display' => $folder['display']));
                     } catch (Horde_ActiveSync_Exception $e) {
                     }
                 }
             } else {
                 try {
                     $folders[] = $this->_getFolder($temp);
                 } catch (Horde_ActiveSync_Exception $e) {
                 }
             }
         }
         if ($this->_version > Horde_ActiveSync::VERSION_TWELVEONE) {
             $folders[] = $this->_getFolder('RI', array('class' => 'RI'));
         }
         // Always return at least the "dummy" IMAP folders since some
         // clients refuse to consider a FOLDERSYNC successful without
         // at least an INBOX, even with email sync turned off.
         try {
             $folders = array_merge($folders, $this->_getMailFolders());
         } catch (Horde_ActiveSync_Exception $e) {
             $this->_logger->err($e->getMessage());
             $this->_endBuffer();
             return array();
         }
         $this->_endBuffer();
         $this->_folders = $folders;
     }
     return $this->_folders;
 }