- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/helper/mailbox.php
- Класс: BitrixMailHelperMailbox
- Вызов: Mailbox::getDirsWithUnseenMailCounters
public function getDirsWithUnseenMailCounters()
{
global $USER;
$mailboxId = $this->mailbox['ID'];
if (!HelperMessage::isMailboxOwner($mailboxId, $USER->GetID()))
{
return false;
}
$syncDirs = $this->getDirsHelper()->getSyncDirs();
$defaultDirPath = $this->getDirsHelper()->getDefaultDirPath();
$dirs = [];
$dirsMd5WithCountOfUnseenMails = $this->getDirsMd5WithCounter($mailboxId);
$defaultDirPathId = null;
foreach ($syncDirs as $dir)
{
$newDir = [];
$newDir['path'] = $dir->getPath(true);
$newDir['name'] = $dir->getName();
$newDir['count'] = 0;
$currentDirMd5WithCountsOfUnseenMails = $dirsMd5WithCountOfUnseenMails[$dir->getDirMd5()];
if ($currentDirMd5WithCountsOfUnseenMails !== null)
{
$newDir['count'] = $currentDirMd5WithCountsOfUnseenMails['UNSEEN'];
}
if($newDir['path'] === $defaultDirPath)
{
$defaultDirPathId = count($dirs);
}
$dirs[] = $newDir;
}
if (empty($dirs))
{
$dirs = [
[
'count' => 0,
'path' => $defaultDirPath,
'name' => $defaultDirPath,
],
];
}
//inbox always on top
array_unshift( $dirs, array_splice($dirs, $defaultDirPathId, 1)[0] );
return $dirs;
}