Return all active api interfaces.
public horde_listApis ( ) : array | ||
Результат | array | An array of interface names. |
/** * 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; }