• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/helper/mailboxdirectoryhelper.php
  • Класс: BitrixMailHelperMailboxDirectoryHelper
  • Вызов: MailboxDirectoryHelper::updateSyncDirs
public function updateSyncDirs($dirs, $dbDirs)
{
	$updateRows = array_udiff_assoc($dirs, $dbDirs, function ($a, $b)
	{
		$flagsA = MailboxDirectoryHelper::getFlags($a['flags']);
		$flagsB = $b->getFlags();

		$delimA = $a['delim'];
		$delimB = $b->getDelimiter();

		if ($flagsA !== $flagsB)
		{
			return $flagsA > $flagsB ? 1 : -1;
		}
		else if ($delimA !== $delimB)
		{
			return $delimA > $delimB ? 1 : -1;
		}

		return 0;
	});

	foreach ($updateRows as $row)
	{
		$dbDir = $this->getDirByPath(Emoji::encode($row['path']));

		if (!$dbDir)
		{
			continue;
		}

		MailboxDirectory::update(
			$dbDir->getId(),
			[
				'DELIMITER' => $row['delim'],
				'FLAGS' => MailboxDirectoryHelper::getFlags($row['flags']),
			]
		);
	}
}