Example #1
0
 /**
  * @param string $_errorString
  * @param XmlDocument $_xmlObj
  * @param int $_code = null
  */
 function PrintErrorAndExit($_errorString, &$_xmlObj, $_code = null)
 {
     if ($_xmlObj) {
         $_errorNote = new XmlDomNode('error', $_errorString, true);
         if (null !== $_code) {
             $_errorNote->AppendAttribute('code', (int) $_code);
         }
         $_xmlObj->XmlRoot->AppendChild($_errorNote);
     }
     CXmlProcessing::PrintXML($_xmlObj);
 }
Example #2
0
/**
 * @param string $errorString
 * @param XmlDocument $xmlObj
 * @param int $code
 */
function printErrorAndExit($errorString, &$xmlObj, $code = null)
{
    $errorNote = new XmlDomNode('error', $errorString, true);
    if ($code !== null) {
        $errorNote->AppendAttribute('code', (int) $code);
    }
    $xmlObj->XmlRoot->AppendChild($errorNote);
    printXML($xmlObj);
}
Example #3
0
 /**
  * @param bool $splitLines
  * @return string
  */
 function ToString($splitLines = false)
 {
     $outStr = '<?xml version="1.0" encoding="utf-8"?>';
     if ($splitLines) {
         $outStr .= "\r\n";
     }
     if ($this->XmlRoot != null) {
         $outStr .= $this->XmlRoot->ToString($splitLines);
     }
     return $outStr;
 }
Example #4
0
                    $sug->AppendAttribute('name', 'word');
                    $sug->AppendAttribute('value', $suggestWord);
                    $node->AppendChild($sug);
                    unset($sug);
                }
                $node->AppendAttribute('action', 'suggest');
                $response->XmlRoot->AppendChild($node);
                break;
        }
    }
    print $response->ToString();
} else {
    // if error ocured
    $response = new XmlDocument();
    $response->CreateElement('webmail');
    $node = new XmlDomNode('spellcheck');
    $node->AppendAttribute('action', 'error');
    $node->AppendAttribute('errorstr', $sp->_error);
    $node->AppendChild($err);
    $response->XmlRoot->AppendChild($node);
    print $response->ToString();
}
/**
 * @param string $string
 * @return string
 */
function obLogResponse($string)
{
    global $log;
    $log->WriteLine(">>>[Spellchecker]>>>\r\n" . $string);
    return $string;
 function DoOperationMessagesFunction()
 {
     $_dbStorage = $_settings = $_xmlObj = $_xmlRes = $_accountId = null;
     $this->_initFuncArgs($_dbStorage, $_settings, $_xmlObj, $_xmlRes, $_accountId);
     $_account =& CXmlProcessing::AccountCheckAndLoad($_xmlRes, $_accountId, false, false);
     $_processor = new MailProcessor($_account);
     $_messagesRequestNode =& $_xmlObj->XmlRoot->GetChildNodeByTagName('messages');
     if (!$_messagesRequestNode) {
         CXmlProcessing::PrintErrorAndExit(WebMailException, $_xmlRes);
     }
     $_getmsg = isset($_messagesRequestNode->Attributes['getmsg']) && $_messagesRequestNode->Attributes['getmsg'] == '1';
     $_folderNodeRequest =& $_messagesRequestNode->GetChildNodeByTagName('folder');
     if (isset($_folderNodeRequest->Attributes['id'])) {
         $_folder = new Folder($_accountId, $_folderNodeRequest->Attributes['id'], ConvertUtils::WMBackHtmlSpecialChars($_folderNodeRequest->GetChildValueByTagName('full_name')));
     } else {
         CXmlProcessing::PrintErrorAndExit(WebMailException, $_xmlRes);
     }
     $_processor->GetFolderInfo($_folder, true);
     $_toFolderNodeRequest =& $_messagesRequestNode->GetChildNodeByTagName('to_folder');
     if (isset($_toFolderNodeRequest->Attributes['id'])) {
         $_toFolder = new Folder($_accountId, $_toFolderNodeRequest->Attributes['id'], ConvertUtils::WMBackHtmlSpecialChars($_toFolderNodeRequest->GetChildValueByTagName('full_name')));
     } else {
         CXmlProcessing::PrintErrorAndExit(WebMailException, $_xmlRes);
     }
     $_processor->GetFolderInfo($_toFolder, true);
     $_operationNode = new XmlDomNode('operation_messages');
     $_toFolderNode = new XmlDomNode('to_folder', $_toFolder->FullName, true);
     $_toFolderNode->AppendAttribute('id', $_toFolder->IdDb);
     $_operationNode->AppendChild($_toFolderNode);
     $_folderNode = new XmlDomNode('folder', $_folder->FullName, true);
     $_folderNode->AppendAttribute('id', $_folder->IdDb);
     $_operationNode->AppendChild($_folderNode);
     $_messagesNode = new XmlDomNode('messages');
     $_messagesNode->AppendAttribute('getmsg', $_getmsg ? '1' : '0');
     $_messageIdUidSet = array();
     $_folders = array();
     $_messagesKeys = array_keys($_messagesRequestNode->Children);
     foreach ($_messagesKeys as $_nodeKey) {
         $_messageNode =& $_messagesRequestNode->Children[$_nodeKey];
         if ($_messageNode->TagName != 'message') {
             continue;
         }
         if (!isset($_messageNode->Attributes['id']) || !isset($_messageNode->Attributes['charset']) || !isset($_messageNode->Attributes['size'])) {
             continue;
         }
         $_msgId = $_messageNode->Attributes['id'];
         $_msgCharset = $_messageNode->Attributes['charset'];
         $_msgSize = $_messageNode->Attributes['size'];
         $_msgUid = $_messageNode->GetChildValueByTagName('uid', true);
         $_msgFolder =& $_messageNode->GetChildNodeByTagName('folder');
         if (!isset($_msgFolder->Attributes['id'])) {
             continue;
         }
         $_msgFolderId = $_msgFolder->Attributes['id'];
         $_folders[$_msgFolderId] = $_msgFolder->GetChildValueByTagName('full_name', true);
         if (!isset($_messageIdUidSet[$_msgFolderId])) {
             $_messageIdUidSet[$_msgFolderId] = array();
         }
         $_messageIdUidSet[$_msgFolderId][$_msgId] = $_msgUid;
         $_message = new XmlDomNode('message');
         $_message->AppendAttribute('id', $_msgId);
         $_message->AppendAttribute('charset', $_msgCharset);
         $_message->AppendAttribute('size', $_msgSize);
         $_message->AppendChild(new XmlDomNode('uid', $_msgUid, true));
         $_msgFolderNode = new XmlDomNode('folder', $_folders[$_msgFolderId], true);
         $_msgFolderNode->AppendAttribute('id', $_msgFolderId);
         $_message->AppendChild($_msgFolderNode);
         $_messagesNode->AppendChild($_message);
         unset($_messageNode, $_msgFolder, $_message, $_msgFolderNode);
     }
     $_operationNode->AppendChild($_messagesNode);
     $_errorString = $_typeString = '';
     $_request = $_xmlObj->GetParamValueByName('request');
     switch ($_request) {
         case 'mark_all_read':
             $_messageIdUidSet = null;
             if ($_processor->SetFlags($_messageIdUidSet, $_folder, MESSAGEFLAGS_Seen, ACTION_Set)) {
                 $_typeString = 'mark_all_read';
             } else {
                 $_errorString = PROC_CANT_MARK_ALL_MSG_READ;
             }
             break;
         case 'mark_all_unread':
             $_messageIdUidSet = null;
             if ($_processor->SetFlags($_messageIdUidSet, $_folder, MESSAGEFLAGS_Seen, ACTION_Remove)) {
                 $_typeString = 'mark_all_unread';
             } else {
                 $_errorString = PROC_CANT_MARK_ALL_MSG_UNREAD;
             }
             break;
         case 'purge':
             if (!$_settings->Imap4DeleteLikePop3 && $_account->MailProtocol == MAILPROTOCOL_IMAP4) {
                 if ($_processor->PurgeFolder($_folder)) {
                     $_typeString = 'purge';
                 } else {
                     $_errorString = PROC_CANT_PURGE_MSGS;
                 }
             } else {
                 if ($_processor->EmptyTrash()) {
                     $_typeString = 'purge';
                 } else {
                     $_errorString = PROC_CANT_PURGE_MSGS;
                 }
             }
             break;
         case 'clear_spam':
             if ($_processor->EmptySpam()) {
                 $_typeString = 'clear_spam';
             } else {
                 $_errorString = PROC_CANT_PURGE_MSGS;
             }
             break;
     }
     $_deleteFolderAppendError = false;
     $_foldersArray = array();
     foreach ($_folders as $_idFolder => $_fullNameFolder) {
         if (isset($_foldersArray[$_idFolder])) {
             $_folder =& $_foldersArray[$_idFolder];
         } else {
             $_folder = new Folder($_accountId, $_idFolder, $_fullNameFolder);
             $_processor->GetFolderInfo($_folder, true);
             $_foldersArray[$_idFolder] =& $_folder;
         }
         switch ($_request) {
             case 'no_move_delete':
                 if ($_processor->DeleteMessages($_messageIdUidSet[$_idFolder], $_folder, true)) {
                     $_typeString = 'no_move_delete';
                 } else {
                     $_errorString = PROC_CANT_DEL_MSGS;
                 }
                 break;
             case 'delete':
                 if ($_processor->DeleteMessages($_messageIdUidSet[$_idFolder], $_folder)) {
                     $_typeString = 'delete';
                 } else {
                     if ($_processor->IsMoveError) {
                         $_typeString = 'delete';
                         $_deleteFolderAppendError = true;
                     }
                     $_errorString = PROC_CANT_DEL_MSGS;
                 }
                 break;
             case 'undelete':
                 if ($_processor->SetFlags($_messageIdUidSet[$_idFolder], $_folder, MESSAGEFLAGS_Deleted, ACTION_Remove)) {
                     $_typeString = 'undelete';
                 } else {
                     $_errorString = PROC_CANT_UNDEL_MSGS;
                 }
                 break;
             case 'mark_read':
                 if ($_processor->SetFlags($_messageIdUidSet[$_idFolder], $_folder, MESSAGEFLAGS_Seen, ACTION_Set)) {
                     $_typeString = 'mark_read';
                 } else {
                     $_errorString = PROC_CANT_MARK_MSGS_READ;
                 }
                 break;
             case 'mark_unread':
                 if ($_processor->SetFlags($_messageIdUidSet[$_idFolder], $_folder, MESSAGEFLAGS_Seen, ACTION_Remove)) {
                     $_typeString = 'mark_unread';
                 } else {
                     $_errorString = PROC_CANT_MARK_MSGS_UNREAD;
                 }
                 break;
             case 'flag':
                 if ($_processor->SetFlags($_messageIdUidSet[$_idFolder], $_folder, MESSAGEFLAGS_Flagged, ACTION_Set)) {
                     $_typeString = 'flag';
                 } else {
                     $_errorString = PROC_CANT_SET_MSG_FLAGS;
                 }
                 break;
             case 'unflag':
                 if ($_processor->SetFlags($_messageIdUidSet[$_idFolder], $_folder, MESSAGEFLAGS_Flagged, ACTION_Remove)) {
                     $_typeString = 'unflag';
                 } else {
                     $_errorString = PROC_CANT_REMOVE_MSG_FLAGS;
                 }
                 break;
             case 'copy_to_folder':
                 // TODO
                 if ($_processor->MoveMessages($_messageIdUidSet[$_idFolder], $_folder, $_toFolder)) {
                     $_typeString = 'copy_to_folder';
                 } else {
                     $_errorString = PROC_CANT_CHANGE_MSG_FLD;
                 }
                 break;
             case 'move_to_folder':
                 if ($_processor->MoveMessages($_messageIdUidSet[$_idFolder], $_folder, $_toFolder)) {
                     $_typeString = 'move_to_folder';
                 } else {
                     $_errorString = PROC_CANT_CHANGE_MSG_FLD;
                 }
                 break;
             case 'spam':
                 if ($_processor->SpamMessages($_messageIdUidSet[$_idFolder], $_folder, true)) {
                     $_typeString = 'spam';
                 } else {
                     $_errorString = PROC_CANT_SET_MSG_AS_SPAM;
                 }
                 break;
             case 'not_spam':
                 if ($_processor->SpamMessages($_messageIdUidSet[$_idFolder], $_folder, false)) {
                     $_typeString = 'not_spam';
                 } else {
                     $_errorString = PROC_CANT_SET_MSG_AS_NOTSPAM;
                 }
                 break;
         }
         unset($_folder);
         if (strlen($_errorString) > 0) {
             break;
         }
     }
     if (strlen($_errorString) == 0 && strlen($_typeString) > 0) {
         $_operationNode->AppendAttribute('type', $_typeString);
         $_xmlRes->XmlRoot->AppendChild($_operationNode);
     } else {
         if ($_deleteFolderAppendError) {
             $_operationNode->AppendAttribute('type', $_typeString);
             $_messagesNode->AppendAttribute('no_move', '1');
             $_xmlRes->XmlRoot->AppendChild($_operationNode);
         } else {
             if (strlen($_errorString) == 0) {
                 $_errorString = WebMailException;
             }
             $_xmlRes->XmlRoot->AppendChild(new XmlDomNode('error', $_errorString, true));
         }
     }
 }
Example #6
0
 /**
  * @return bool
  */
 function SaveToXml()
 {
     $xmlDocument =& new XmlDocument();
     $xmlDocument->CreateElement('Settings');
     $xmlDocument->XmlRoot->AppendAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema');
     $xmlDocument->XmlRoot->AppendAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
     $common = new XmlDomNode('Common');
     $common->AppendChild(new XmlDomNode('SiteName', ConvertUtils::WMHtmlSpecialChars($this->WindowTitle)));
     $common->AppendChild(new XmlDomNode('LicenseKey', ConvertUtils::WMHtmlSpecialChars($this->LicenseKey)));
     $common->AppendChild(new XmlDomNode('AdminPassword', ConvertUtils::WMHtmlSpecialChars($this->AdminPassword)));
     $common->AppendChild(new XmlDomNode('DBType', (int) $this->DbType));
     $common->AppendChild(new XmlDomNode('DBLogin', ConvertUtils::WMHtmlSpecialChars($this->DbLogin)));
     $common->AppendChild(new XmlDomNode('DBPassword', ConvertUtils::WMHtmlSpecialChars($this->DbPassword)));
     $common->AppendChild(new XmlDomNode('DBName', ConvertUtils::WMHtmlSpecialChars($this->DbName)));
     $common->AppendChild(new XmlDomNode('DBDSN', ConvertUtils::WMHtmlSpecialChars($this->DbDsn)));
     $common->AppendChild(new XmlDomNode('DBHost', ConvertUtils::WMHtmlSpecialChars($this->DbHost)));
     $common->AppendChild(new XmlDomNode('UseCustomConnectionString', (int) $this->UseCustomConnectionString));
     $common->AppendChild(new XmlDomNode('DBCustomConnectionString', ConvertUtils::WMHtmlSpecialChars($this->DbCustomConnectionString)));
     $common->AppendChild(new XmlDomNode('DBPrefix', ConvertUtils::WMHtmlSpecialChars($this->DbPrefix)));
     $common->AppendChild(new XmlDomNode('DefaultSkin', ConvertUtils::WMHtmlSpecialChars($this->DefaultSkin)));
     $common->AppendChild(new XmlDomNode('AllowUsersChangeSkin', (int) $this->AllowUsersChangeSkin));
     $common->AppendChild(new XmlDomNode('DefaultLanguage', ConvertUtils::WMHtmlSpecialChars($this->DefaultLanguage)));
     $common->AppendChild(new XmlDomNode('AllowUsersChangeLanguage', (int) $this->AllowUsersChangeLanguage));
     $xmlDocument->XmlRoot->AppendChild($common);
     $webmail = new XmlDomNode('WebMail');
     $webmail->AppendChild(new XmlDomNode('IncomingMailProtocol', (int) $this->IncomingMailProtocol));
     $webmail->AppendChild(new XmlDomNode('IncomingMailServer', ConvertUtils::WMHtmlSpecialChars($this->IncomingMailServer)));
     $webmail->AppendChild(new XmlDomNode('IncomingMailPort', (int) $this->IncomingMailPort));
     $webmail->AppendChild(new XmlDomNode('OutgoingMailServer', ConvertUtils::WMHtmlSpecialChars($this->OutgoingMailServer)));
     $webmail->AppendChild(new XmlDomNode('OutgoingMailPort', (int) $this->OutgoingMailPort));
     $webmail->AppendChild(new XmlDomNode('ReqSmtpAuth', (int) $this->ReqSmtpAuth));
     $webmail->AppendChild(new XmlDomNode('AllowAdvancedLogin', (int) $this->AllowAdvancedLogin));
     $webmail->AppendChild(new XmlDomNode('HideLoginMode', (int) $this->HideLoginMode));
     $webmail->AppendChild(new XmlDomNode('DefaultDomainOptional', ConvertUtils::WMHtmlSpecialChars($this->DefaultDomainOptional)));
     $webmail->AppendChild(new XmlDomNode('ShowTextLabels', (int) $this->ShowTextLabels));
     $webmail->AppendChild(new XmlDomNode('AutomaticCorrectLoginSettings', (int) $this->AutomaticCorrectLoginSettings));
     $webmail->AppendChild(new XmlDomNode('EnableLogging', (int) $this->EnableLogging));
     $webmail->AppendChild(new XmlDomNode('DisableErrorHandling', (int) $this->DisableErrorHandling));
     $webmail->AppendChild(new XmlDomNode('AllowAjax', (int) $this->AllowAjax));
     $webmail->AppendChild(new XmlDomNode('MailsPerPage', (int) $this->MailsPerPage));
     $webmail->AppendChild(new XmlDomNode('EnableAttachmentSizeLimit', (int) $this->EnableAttachmentSizeLimit));
     $webmail->AppendChild(new XmlDomNode('AttachmentSizeLimit', ConvertUtils::WMHtmlSpecialChars($this->AttachmentSizeLimit)));
     $webmail->AppendChild(new XmlDomNode('EnableMailboxSizeLimit', (int) $this->EnableMailboxSizeLimit));
     $webmail->AppendChild(new XmlDomNode('MailboxSizeLimit', ConvertUtils::WMHtmlSpecialChars($this->MailboxSizeLimit)));
     $webmail->AppendChild(new XmlDomNode('DefaultTimeZone', ConvertUtils::WMHtmlSpecialChars($this->DefaultTimeZone)));
     $webmail->AppendChild(new XmlDomNode('AllowUsersChangeTimeZone', (int) $this->AllowUsersChangeTimeZone));
     $webmail->AppendChild(new XmlDomNode('DefaultUserCharset', ConvertUtils::GetCodePageNumber($this->DefaultUserCharset)));
     $webmail->AppendChild(new XmlDomNode('AllowUsersChangeCharset', (int) $this->AllowUsersChangeCharset));
     $webmail->AppendChild(new XmlDomNode('AllowDHTMLEditor', (int) $this->AllowDhtmlEditor));
     $webmail->AppendChild(new XmlDomNode('AllowUsersChangeEmailSettings', (int) $this->AllowUsersChangeEmailSettings));
     $webmail->AppendChild(new XmlDomNode('AllowDirectMode', (int) $this->AllowDirectMode));
     $webmail->AppendChild(new XmlDomNode('DirectModeIsDefault', (int) $this->DirectModeIsDefault));
     $webmail->AppendChild(new XmlDomNode('AllowNewUsersRegister', (int) $this->AllowNewUsersRegister));
     $webmail->AppendChild(new XmlDomNode('AllowUsersAddNewAccounts', (int) $this->AllowUsersAddNewAccounts));
     $webmail->AppendChild(new XmlDomNode('StoreMailsInDb', (int) $this->StoreMailsInDb));
     $webmail->AppendChild(new XmlDomNode('EnableWmServer', (int) $this->EnableWmServer));
     $webmail->AppendChild(new XmlDomNode('WmServerRootPath', ConvertUtils::WMHtmlSpecialChars($this->WmServerRootPath)));
     $webmail->AppendChild(new XmlDomNode('WmServerHost', ConvertUtils::WMHtmlSpecialChars($this->WmServerHost)));
     $webmail->AppendChild(new XmlDomNode('WmAllowManageXMailAccounts', (int) $this->WmAllowManageXMailAccounts));
     $webmail->AppendChild(new XmlDomNode('AllowContacts', (int) $this->AllowContacts));
     $webmail->AppendChild(new XmlDomNode('AllowCalendar', (int) $this->AllowCalendar));
     $xmlDocument->XmlRoot->AppendChild($webmail);
     $calendar = new XmlDomNode('Calendar');
     $calendar->AppendChild(new XmlDomNode('DefaultTimeFormat', (int) $this->Cal_DefaultTimeFormat));
     $calendar->AppendChild(new XmlDomNode('DefaultDateFormat', (int) $this->Cal_DefaultDateFormat));
     $calendar->AppendChild(new XmlDomNode('ShowWeekends', (int) $this->Cal_ShowWeekends));
     $calendar->AppendChild(new XmlDomNode('WorkdayStarts', (int) $this->Cal_WorkdayStarts));
     $calendar->AppendChild(new XmlDomNode('WorkdayEnds', (int) $this->Cal_WorkdayEnds));
     $calendar->AppendChild(new XmlDomNode('ShowWorkDay', (int) $this->Cal_ShowWorkDay));
     $calendar->AppendChild(new XmlDomNode('WeekStartsOn', (int) $this->Cal_WeekStartsOn));
     $calendar->AppendChild(new XmlDomNode('DefaultTab', (int) $this->Cal_DefaultTab));
     $calendar->AppendChild(new XmlDomNode('DefaultCountry', ConvertUtils::WMHtmlSpecialChars($this->Cal_DefaultCountry)));
     $calendar->AppendChild(new XmlDomNode('DefaultTimeZone', (int) $this->Cal_DefaultTimeZone));
     $calendar->AppendChild(new XmlDomNode('AllTimeZones', (int) $this->Cal_AllTimeZones));
     $xmlDocument->XmlRoot->AppendChild($calendar);
     return $xmlDocument->SaveToFile(INI_DIR . '/settings/settings.xml');
 }