%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/mail/lib/helper/ |
Current File : /home/bitrix/www/bitrix/modules/mail/lib/helper/messagefolder.php |
<?php namespace Bitrix\Mail\Helper; use Bitrix\Main\Localization\Loc; /** * Class MessageFolder */ class MessageFolder { const TRASH = 'trash'; const SPAM = 'spam'; const INCOME = 'income'; const OUTCOME = 'outcome'; /** * @param array $message * @param array $mailboxOptions * @return string */ public static function getFolderNameByHash($messageFolderHash, $mailboxOptions) { $folderName = ''; if (!empty($mailboxOptions['imap']['dirsMd5'])) { $names = array_filter( $mailboxOptions['imap']['dirsMd5'], function ($hash) use ($messageFolderHash) { return $hash == $messageFolderHash; } ); if (count($names) == 1) { $folderName = array_keys($names)[0]; } } return $folderName; } public static function getFolderHashByType($folderType, $mailboxOptions) { $folderHash = ''; if (!empty($mailboxOptions['imap']['dirsMd5'])) { $name = static::getFolderNameByType($folderType, $mailboxOptions); $hashes = array_filter( $mailboxOptions['imap']['dirsMd5'], function ($_name) use ($name) { return $_name == $name; }, ARRAY_FILTER_USE_KEY ); if (count($hashes) == 1) { $folderHash = array_values($hashes)[0]; } } return $folderHash; } public static function getFolderNameByType($folderType, $mailboxOptions) { if (!empty($mailboxOptions['imap']) && is_array($mailboxOptions['imap'])) { $imapOptions = $mailboxOptions['imap']; if (!empty($imapOptions[$folderType]) && isset($imapOptions[$folderType][0])) { return $imapOptions[$folderType][0]; } } return null; } public static function getDisabledFolders($mailboxOptions) { $disabled = empty($mailboxOptions['imap']['disabled']) ? [] : $mailboxOptions['imap']['disabled']; $ignore = empty($mailboxOptions['imap']['ignore']) ? [] : $mailboxOptions['imap']['ignore']; return array_merge($disabled, $ignore); } public static function isDisabledFolder($folder, $mailboxOptions) { return in_array($folder, static::getDisabledFolders($mailboxOptions), true); } public static function getFormattedPath(array $path, $mailboxOptions) { $root = array_shift($path); if (strtolower($root) == 'inbox' && !static::isDisabledFolder($root, $mailboxOptions)) { $root = Loc::getMessage('MAIL_CLIENT_INBOX_ALIAS'); } array_unshift($path, $root); return $path; } public static function getFormattedName(array $path, $mailboxOptions, $full = true) { $path = static::getFormattedPath($path, $mailboxOptions); return $full ? join(' / ', $path) : end($path); } }