- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/helper/mailboxdirectoryhelper.php
- Класс: BitrixMailHelperMailboxDirectoryHelper
- Вызов: MailboxDirectoryHelper::addSyncDirs
public function addSyncDirs($dirs, $dbDirs)
{
$diffDirs = array_diff_key($dirs, $dbDirs);
$addRows = array_map(
function ($dir)
{
if (!isset($dir['is_sync']))
{
$dir['is_sync'] = !preg_grep('/^ x5c ( Drafts | Trash | Junk | Spam ) $/ix', $dir['flags']);
}
return [
'MAILBOX_ID' => $this->mailboxId,
'NAME' => Emoji::encode($dir['name']),
'PATH' => Emoji::encode($dir['path']),
'LEVEL' => isset($dir['level']) ? $dir['level'] : 1,
'PARENT_ID' => isset($dir['parent_id']) ? $dir['parent_id'] : null,
'ROOT_ID' => isset($dir['root_id']) ? $dir['root_id'] : null,
'FLAGS' => MailboxDirectoryHelper::getFlags($dir['flags']),
'DELIMITER' => $dir['delim'],
'DIR_MD5' => md5(Emoji::encode($dir['path'])),
'IS_SYNC' => $dir['is_sync'],
'IS_INCOME' => mb_strtoupper($dir['name']) === 'INBOX',
'IS_OUTCOME' => preg_grep('/^ x5c Sent $/ix', $dir['flags']),
'IS_DRAFT' => preg_grep('/^ x5c Drafts $/ix', $dir['flags']),
'IS_TRASH' => preg_grep('/^ x5c Trash $/ix', $dir['flags']),
'IS_SPAM' => preg_grep('/^ x5c ( Junk | Spam ) $/ix', $dir['flags']),
'IS_DISABLED' => preg_grep('/^ x5c Noselect $/ix', $dir['flags']),
];
},
$diffDirs
);
if (!empty($addRows))
{
MailboxDirectory::addMulti($addRows, true);
}
}