function DoGetFoldersList() { $_dbStorage = $_settings = $_xmlObj = $_xmlRes = $_accountId = null; $this->_initFuncArgs($_dbStorage, $_settings, $_xmlObj, $_xmlRes, $_accountId); $_idAcct = (int) $_xmlObj->GetParamValueByName('id_acct'); $_syncType = (int) $_xmlObj->GetParamValueByName('sync'); $_changeAccount = false; if ($_syncType != -1) { if ($_idAcct != $_SESSION[ACCOUNT_ID] && CXmlProcessing::CheckAccountAccess($_idAcct, $_xmlRes)) { if ($_syncType != 2) { $_changeAccount = true; $_SESSION[ACCOUNT_ID] = $_idAcct; } } else { $_idAcct = $_SESSION[ACCOUNT_ID]; } } $_folders = null; $_account =& CXmlProcessing::AccountCheckAndLoad($_xmlRes, $_idAcct, false, false); $_processor = new MailProcessor($_account); $_syncRes = true; switch ($_syncType) { case -1: case 0: case 1: $_folders =& $_processor->GetFolders(); break; case 2: $_syncRes = $_processor->SynchronizeFolders(); if ($_syncRes) { $_folders =& $_processor->GetFolders(); } break; } if (!$_syncRes) { CXmlProcessing::PrintErrorAndExit(getGlobalError(), $_xmlRes); } else { if ($_folders != null) { $_foldersList = new XmlDomNode('folders_list'); $_foldersList->AppendAttribute('sync', $_syncType); $_foldersList->AppendAttribute('id_acct', $_idAcct); $_foldersList->AppendAttribute('namespace', $_account->NameSpace); CXmlProcessing::GetFoldersTreeXml($_folders, $_foldersList, $_processor); $_xmlRes->XmlRoot->AppendChild($_foldersList); } else { CXmlProcessing::PrintErrorAndExit(PROC_CANT_GET_FLDS, $_xmlRes); } } }