• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/helper/mailboxdirectoryhelper.php
  • Класс: BitrixMailHelperMailboxDirectoryHelper
  • Вызов: MailboxDirectoryHelper::syncChildren
public function syncChildren($parent)
{
	$pattern = sprintf('%s%s%%', $parent->getPath(), $parent->getDelimiter());
	$mailboxHelper = Mailbox::createInstance($this->mailboxId);
	$dirs = $mailboxHelper->listDirs($pattern);

	if ($dirs === false)
	{
		$this->errors = $mailboxHelper->getErrors();

		return false;
	}

	$dbDirs = $this->getOneLevelByParentId($parent);

	$params = [
		'level'     => $parent->getLevel() + 1,
		'parent_id' => $parent->getId(),
		'root_id'   => $parent->getRootId() ?: $parent->getId(),
		'is_sync'   => MailboxDirectoryTable::INACTIVE,
	];

	$dirs = array_map(function ($item) use ($params)
	{
		return array_merge($item, $params);
	}, $dirs);

	$this->addSyncDirs($dirs, $dbDirs);

	if (!empty($dbDirs))
	{
		$this->updateSyncDirs($dirs, $dbDirs);
		$this->removeSyncDirs($dirs, $dbDirs);
	}

	return true;
}