- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/blacklist.php
- Класс: BitrixMailBlacklistTable
- Вызов: BlacklistTable::addMailsBatch
static function addMailsBatch(array $list, $userId = null)
{
if (empty($list))
{
return 0;
}
if (is_null($userId))
{
$userId = 0;
}
$sqlHelper = Application::getConnection()->getSqlHelper();
$addList = [];
foreach ($list as $index => $item)
{
$itemToAdd = [
'SITE_ID' => SITE_ID,
'MAILBOX_ID' => 0,
'USER_ID' => $userId,
'ITEM_TYPE' => BlacklistItemType::resolveByValue($item),
'ITEM_VALUE' => $item,
];
$addList[] = $itemToAdd;
}
if (count($addList) === 0)
{
return 0;
}
$keys = implode(', ', array_keys(current($addList)));
$values = [];
foreach ($addList as $item)
{
$values[] = implode(
", ",
[
"'" . $sqlHelper->forSql($item['SITE_ID']) . "'",
(int)$item['MAILBOX_ID'],
(int)$item['USER_ID'],
$item['ITEM_TYPE'],
"'" . $sqlHelper->forSql($item['ITEM_VALUE']) . "'",
]
);
}
$values = implode('), (', $values);
$tableName = static::getTableName();
$sql = $sqlHelper->getInsertIgnore($tableName, "($keys)", " VALUES($values)");
Application::getConnection()->query($sql);
return Application::getConnection()->getAffectedRowsCount();
}