- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/mailservices.php
- Класс: BitrixMailMailServicesTable
- Вызов: MailServicesTable::delete
static function delete($primary): EntityDeleteResult
{
$serviceForDelete = static::getByPrimary($primary)->fetch();
if (!$serviceForDelete)
{
$deleteResult = new EntityDeleteResult();
$deleteResult->addError(new EntityEntityError(LocalizationLoc::getMessage('mail_mailservice_not_found')));
return $deleteResult;
}
$deleteResult = parent::delete($primary);
if ($deleteResult->isSuccess())
{
$serviceId = is_array($primary) ? $primary['ID'] : $primary;
if (in_array($serviceForDelete['SERVICE_TYPE'], array('controller', 'domain', 'crdomain')))
{
$mbData = array('ACTIVE' => 'N', 'SERVICE_ID' => 0);
}
else
{
$emptyService = static::getList(array(
'filter' => array(
'=SITE_ID' => $serviceForDelete['SITE_ID'],
'ACTIVE' => 'Y',
'=SERVER' => '',
'=PORT' => '',
'=ENCRYPTION' => '',
'=LINK' => ''
),
'limit' => 1
))->fetch();
$mbData = $emptyService
? array('SERVICE_ID' => $emptyService['ID'], 'NAME' => $emptyService['NAME'])
: array('ACTIVE' => 'N', 'SERVICE_ID' => 0);
}
$selectResult = CMailbox::getList(array(), array('SERVICE_ID' => $serviceId));
while ($mailbox = $selectResult->fetch())
CMailbox::update($mailbox['ID'], $mbData);
}
return $deleteResult;
}